|Subject:||Re: [Discuss-gnuradio] Need for explanation of blocks in gnuradio|
|Date:||Thu, 10 Oct 2013 15:27:53 +0530|
the official documentation for the frequency xlating fir filter (http://gnuradio.org/doc/doxygen/classgr_1_1filter_1_1freq__xlating__fir__filter__ccc.html) says:
FIR filter combined with frequency translation with gr_complex input, gr_complex output and gr_complex taps.
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.
Uses a single input array to produce a single output array. Additional inputs and/or outputs are ignored.
And that's exactly what it does: It takes coefficients of a FIR filter, and applies them to the signal, simultaneously shifting its frequency. As far as I remember, it does that by dynamically updating the taps by multiplying them with a complex sinusoid of the negative desired shift frequency. These taps are then applied to the signal, before that get's shifted by the shift frequency. There is a discussion going on on the sign of the exponent, so look for Achilleas recent posts with the title "Bug in freq_xlating_fir_filter_XXX".
However, best explanation is probably the source code, if you're not content with the documentation. Enhancing documentation is always welcome! See gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t and gr-filter/lib/freq_xlating_fir_filter_XXX_impl.h.t; nothing overly complex.
Regarding to WBFM receive: You're right, documentation is sparse here. Strangely, the class itself (analog.wfm_rcv_pll) does not even show up in the current sphinx documentation. So there's only the sources left to consult:
gr-analog/python/analog/wfm_rcv_pll.py. Luckily, there's a lot of comments in the code, so maybe that will help you understand what's going on internally (so what really making that thing decode stereo radio ;) ).
Hope I was a bit helpful today,
Discuss-gnuradio mailing list
|[Prev in Thread]||Current Thread||[Next in Thread]|