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
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio