discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Question on IF filter design for FM demodulation


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Question on IF filter design for FM demodulation
Date: Fri, 7 Jan 2005 15:56:48 -0800
User-agent: Mutt/1.5.6i

On Fri, Jan 07, 2005 at 06:34:16PM -0500, Achilleas Anastasopoulos wrote:
> 
> 
> 
> I am amazed that even this design (wfm_rcv.py) works:
> 
> Before the downconversion at the FPGA the entire FM band (88-108 MHz) is 
> present inside the useful spectrum (with the desired station centered at 
> 5.75 MHz).
> Then the digital downconversion brings the desired station at 0.
> So far so good.

The tuner module's IF is about 6 MHz wide, so a good chunk, but not
all of the FM spectrum, is seen by the A/D.

> However, decimating at the FPGA by a factor of 250 will essentially 
> spread the entire spectrum of the desired station (not a problem),
> but also all other (neighboring) stations will be aliased on top of the 
> desired one. These stations will appear in the desired band completely 
> unattenuated.

In the FPGA, the frequency translation (complex mixing with cos/sin)
is performed before filtering and decimation, not the other way
around.  Thus, we get good attenuation of the other stations.

> It seems to me that before decimation at the FPGA, a LPF is required
> (probably in two stages as Matt suggested).
> Can this be done in the FPGA of the USRP?

Yes.  The decimation and lowpass filtering are combined.  The
decimator is currently built using a 4 stage CIC filter.  The receive
path in the FPGA looks conceptually like this:
http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html#fpga
Although in reality the frequency translation and sin/cos generation
are implemented with the CORDIC algorithm.  The decimating FIR filter
is the 4 stage CIC filter.  (We'll be adding a half-band filter to
improve the image rejection and flatness of the passband.)

Eric




reply via email to

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