GNU Radio 3.6.5 C++ API

gr_dc_blocker_ff Class Reference

a computationally efficient controllable DC blocker More...

#include <gr_dc_blocker_ff.h>

Inheritance diagram for gr_dc_blocker_ff:
gr_sync_block gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter

List of all members.

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


GR_CORE_API gr_dc_blocker_ff_sptr gr_make_dc_blocker_ff (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.

Constructor & Destructor Documentation

gr_dc_blocker_ff::~gr_dc_blocker_ff ( )

Member Function Documentation

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.

Friends And Related Function Documentation

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

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