discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Welcome and brief update


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Welcome and brief update
Date: Sun, 12 Jan 2003 18:04:12 -0800
User-agent: Mutt/1.3.25i

On Fri, Jan 10, 2003 at 03:13:56PM -0800, Chris Albertson wrote:
> 
> If you want ideas...
> 
> I think you need to look at your (potential) users and why they are
> attracted to GNU Radio.  I think very few of them will just say
> "wow a _software_ radio! Cool."  No, if GNU Radio is to be a hit
> outside of a very rarified group of true geeks it will have to do
> something.  Either something that nothing else can do or do it
> cheaper or "free-er".

I concur.

> The weak link in any software radio is the ADC.  With present
> technology there are two ways to go, Lots of bits or lots of samples.
> You can have 24-bits or 100M sample per second but not 100M 24-bit
> samples.   I think this means you either go for wideband or for weak
> signals.  Ignore the middle ground.  You don't need a 
> 3 Ghz Pentuim IV to pick up an AM broadcast station.
> You can't get HDTV bandwidth down a sound card and you
> can't get 100db noise floor (required for weak signal work.) with a
> 12-bit ADC.  So you have to choose one at a time.

Nicely put.

> One other thing you can do with present technology is to use two
> ADC chips and do the conversion in quadrature.  Once you have
> coherent radios you can do interresting things like combine signals
> from multiple radios in phase.  Synthentic phased arrays ans so
> on.  Radio astronamers do this kind of stuff.  Once you have a
> Synthentic phased array then someone will start thinksing
> "software radar"

Yep.  I know there are folks on the list interested in pursuing this.

> In the wide band area, it seem there is a lot you can do that is
> not done:  You could in theory recieve the entire amature 2 meter band
> at once.

I think this particular idea is a great application for GNU Radio.  We
should be able to build something that looks at the entire swath of
spectrum, finds interesting stuff (project in itself), figures out
what's the appropriate demodulator to use (another project), and then
builds a pipeline on the fly with the appropriate software channel
selection filter/downconverter/decimator and demodulator.  This could
of course also log to disk.  Think of it as TiVo for Amatuers.

FYI, we've already got the channel selection
filter/downconverter/decimator block.  It's called GrFreqXlatingFIRfilter

/*!
 * \brief FIR filter with frequency translation
 *
 * This class efficiently combines a frequency translation
 * (typically "down conversion") with a FIR filter (typically low-pass)
 * and decimation.  It is ideally suited for a "channel selection filter"
 * and can be efficiently used to select and decimate a narrow band signal
 * out of wide bandwidth input.
 *
 * Typically, this template is instantiated with oType == VrComplex, thus
 * producing I & Q outputs.
 *
 * Uses a single input stream to produce a single output stream.
 * Additional inputs and/or outputs are ignored.
 */

template<class iType, class oType = VrComplex>
class GrFreqXlatingFIRfilter : public VrDecimatingSigProc<iType, oType>
{
 public:
  /*!
   * Construct a FIR filter with the given taps and a composite frequency
   * translation that shifts center_freq down to zero Hz.  The frequency 
   * translation logically comes before the filtering operation.
   */
  GrFreqXlatingFIRfilter (int decimation_factor,
                          const vector<float> &taps,
                          float center_freq);
 [snip]
}


> There is another opensource software radio project "linrad"
> that is going the weak signal route.  Already it seems to work better
> then most off the self radios for it's purpose.  They are using
> high-end sound cards for ther 106db dynamic range.

Yep.  It might be fun to reproduce this work inside of the GNU radio
framework.  

Thanks for thoughful commentary,
Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]