GNU Radio 3.6.5 C++ API
|
a computationally efficient controllable DC blocker More...
#include <gr_dc_blocker_ff.h>
Public Member Functions | |
~gr_dc_blocker_ff () | |
int | get_group_delay () |
int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
just like gr_block::general_work, only this arranges to call consume_each for you | |
Friends | |
GR_CORE_API gr_dc_blocker_ff_sptr | gr_make_dc_blocker_ff (int D, bool long_form) |
a computationally efficient controllable DC blocker
This block implements a computationally efficient DC blocker that produces a tighter notch filter around DC for a smaller group delay than an equivalent FIR filter or using a single pole IIR filter (though the IIR filter is computationally cheaper).
The block defaults to using a delay line of length 32 and the long form of the filter. Optionally, the delay line length can be changed to alter the width of the DC notch (longer lines will decrease the width).
The long form of the filter produces a nearly flat response outside of the notch but at the cost of a group delay of 2D-2.
The short form of the filter does not have as flat a response in the passband but has a group delay of only D-1 and is cheaper to compute.
The theory behind this block can be found in the paper:
R. Yates, "DC Blocker Algorithms," IEEE Signal Processing Magazine, Mar. 2008, pp 132-134.
gr_dc_blocker_ff::~gr_dc_blocker_ff | ( | ) |
int gr_dc_blocker_ff::get_group_delay | ( | ) |
Get the blocker's group delay that is based on length of delay lines
int gr_dc_blocker_ff::work | ( | int | noutput_items, |
gr_vector_const_void_star & | input_items, | ||
gr_vector_void_star & | output_items | ||
) | [virtual] |
just like gr_block::general_work, only this arranges to call consume_each for you
The user must override work to define the signal processing code
Implements gr_sync_block.
GR_CORE_API gr_dc_blocker_ff_sptr gr_make_dc_blocker_ff | ( | int | D, |
bool | long_form | ||
) | [friend] |
Build the DC blocker.
D | (int) the length of the delay line |
long_form | (bool) whether to use long (true, default) or short form |