[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Need for explanation of blocks in gnuradio
From: |
Marcus Müller |
Subject: |
Re: [Discuss-gnuradio] Need for explanation of blocks in gnuradio |
Date: |
Thu, 10 Oct 2013 11:51:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 |
Hi Sandhya,
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,
Marcus