GNU Radio 3.7.1 C++ API
|
a computationally efficient controllable DC blocker More...
#include <dc_blocker_ff.h>
Public Types | |
typedef boost::shared_ptr < dc_blocker_ff > | sptr |
Public Member Functions | |
virtual int | group_delay ()=0 |
Static Public Member Functions | |
static sptr | make (int D, bool long_form=true) |
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.
virtual int gr::filter::dc_blocker_ff::group_delay | ( | ) | [pure virtual] |
static sptr gr::filter::dc_blocker_ff::make | ( | int | D, |
bool | long_form = true |
||
) | [static] |
Make a DC blocker block.
D | (int) the length of the delay line |
long_form | (bool) whether to use long (true, default) or short form |