Filter Delay

From GNU Radio
Revision as of 22:14, 21 April 2021 by Duggabe (talk | contribs) (revised per PR/4542)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The purpose of this block is to compensate the delay that a linear-phase filter introduces.

It does that by introducing a delay of half the length of the FIR tap vector on passed-through samples.

The block takes one or two float stream and outputs a stream composed of pairs of floats. (In GNU Radio, pairs of floats are identical to complex numbers, where the real and imaginary parts are the first and second element, respectively.)

If only one float stream is input, the first element of each output item is a delayed version of this input and the second element is the filtered output.

If two floats are connected to the input, then the first element of each output item is the delayed version of the first input, and the second element is the filtered second input.

The delay in the first elements of the output accounts for the group delay introduced by the filter in the second elements path under the assumption of linear-phase filtering. The filter taps need to be calculated before initializing this block.


The vector of real-valued tags. Half of the length of this vector is the delay introduced by this block.

Example Flowgraph[edit]

Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately. The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.

Source Files[edit]

C++ files
Header files
Public header files
Block definition