GNU Radio 3.6.5 C++ API

gr::filter::dc_blocker_ff Class Reference

a computationally efficient controllable DC blocker More...

#include <dc_blocker_ff.h>

Inheritance diagram for gr::filter::dc_blocker_ff:
gr_sync_block gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter gr::filter::dc_blocker_ff_impl

List of all members.

Public Types

typedef boost::shared_ptr
< dc_blocker_ff

Public Member Functions

virtual int group_delay ()=0

Static Public Member Functions

static sptr make (int D, bool long_form=true)

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_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

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