GNU Radio 3.7.1 C++ API
gr::filter::dc_blocker_cc Class Reference

a computationally efficient controllable DC blocker More...

#include <dc_blocker_cc.h>

Inheritance diagram for gr::filter::dc_blocker_cc:

List of all members.

Public Types

typedef boost::shared_ptr
< dc_blocker_cc
sptr

Public Member Functions

virtual int group_delay ()=0

Static Public Member Functions

static sptr make (int D, bool long_form)

Detailed Description

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.


Member Typedef Documentation


Member Function Documentation

virtual int gr::filter::dc_blocker_cc::group_delay ( ) [pure virtual]
static sptr gr::filter::dc_blocker_cc::make ( int  D,
bool  long_form 
) [static]

Make a DC blocker block.

Parameters:
D(int) the length of the delay line
long_form(bool) whether to use long (true, default) or short form

The documentation for this class was generated from the following file: