Frequency Xlating FIR Filter

From GNU Radio
Jump to navigation Jump to search

This block performs a frequency translation on the signal, as well as downsamples the signal by running a decimating FIR filter on it. It can be used as a channelizer, to pull out a narrowband portion of a wideband signal, without that narrowband portion having to be centered in frequency.


(note- taken from

This block does not support C++ output, so it cannot be used when the output language of a flowgraph in GRC is C++.

See this page for more details.


The integer ratio between the input and the output signal’s sampling rate.
The vector of the complex or real taps of the FIR filter. You can generate these taps within the parameter box using firdes, for example:
Real taps:
 firdes.low_pass(1,samp_rate,samp_rate/(2*decimation), transition_bw)
Complex taps:
 firdes.complex_band_pass(1, samp_rate, -samp_rate/(2*decimation), samp_rate/(2*decimation), transition_bw)
Note: transition_bw is the transition bandwidth of the filter in Hz. The lower it is, the more taps the function will generate, and the more CPU time it will take to apply this filter. This parameter will determine the CPU usage and thus the execution speed of the block.
Center Frequency
The frequency translation offset frequency.
Sample Rate
The sample rate of the input signal.

Example Flowgraph[edit]

This flowgraph uses the Frequency Xlating FIR Filter block to center Frequency Shift Keying tones around zero. Then a Quadrature Demod block can detect the high and low tones as positive or negative values.

RTTY rcv.png

Source Files[edit]

C++ files
Header files
Block definition