Adaptive FIR filter with gr_complex input, gr_complex output and gr_complex taps.
This is a base class to implement an adaptive FIR filter. Generally, another block will inherit from this one to build a new type of adaptive filter such as an equalizer.
This class implements two functions that are designed to be overloaded by the child class: error(gr_complex out) and update_tap(gr_complex tap, gr_complex in).
The error() function calculates the error value that will be used to adjust the taps. The update_tap function then uses the error and the input signal value to update a particular tap. Typically, the error is calculated for a given output and then this is used in a loop to update all of the filter taps in a loop:
See digital::cma_equalizer_cc and digital::lms_dd_equalizer_cc for example usage.
Constructor Specific Documentation:
Adaptive FIR filter with gr_complex input, gr_complex output and gr_complex taps.
Parameters: |
|
---|
Adaptive FIR filter with gr_complex input, gr_complex output and float taps.
This is a base class to implement an adaptive FIR filter. Generally, another block will inherit from this one to build a new type of adaptive filter such as an equalizer.
This class implements two functions that are designed to be overloaded by the child class: error(gr_complex out) and update_tap(float tap, gr_complex in).
The error() function calculates the error value that will be used to adjust the taps. The update_tap function then uses the error and the input signal value to update a particular tap. Typically, the error is calculated for a given output and then this is used in a loop to update all of the filter taps in a loop:
Constructor Specific Documentation:
Adaptive FIR filter with gr_complex input, gr_complex output and float taps.
Parameters: |
|
---|
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:
Constructor Specific Documentation:
Make a DC blocker block.
Parameters: |
|
---|
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:
Constructor Specific Documentation:
Make a DC blocker block.
Parameters: |
|
---|
Fast FFT filter with float input, float output and float taps.
This block implements a real-value decimating filter using the fast convolution method via an FFT. The decimation factor is an interger that is greater than or equal to 1.
The filter takes a set of real-valued taps to use in the filtering operation. These taps can be defined as anything that satisfies the user’s filtering needs. For standard filters such as lowpass, highpass, bandpass, etc., the filter.firdes and filter.optfir classes provide convenient generating methods.
This filter is implemented by using the FFTW package to perform the required FFTs. An optional argument, nthreads, may be passed to the constructor (or set using the set_nthreads member function) to split the FFT among N number of threads. This can improve performance on very large FFTs (that is, if the number of taps used is very large) if you have enough threads/cores to support it.
Constructor Specific Documentation:
Build an FFT filter block.
Parameters: |
|
---|
Fast FFT filter with gr_complex input, gr_complex output and gr_complex taps.
This block implements a complex decimating filter using the fast convolution method via an FFT. The decimation factor is an interger that is greater than or equal to 1.
The filter takes a set of complex (or real) taps to use in the filtering operation. These taps can be defined as anything that satisfies the user’s filtering needs. For standard filters such as lowpass, highpass, bandpass, etc., the filter.firdes and filter.optfir classes provide convenient generating methods.
This filter is implemented by using the FFTW package to perform the required FFTs. An optional argument, nthreads, may be passed to the constructor (or set using the set_nthreads member function) to split the FFT among N number of threads. This can improve performance on very large FFTs (that is, if the number of taps used is very large) if you have enough threads/cores to support it.
Constructor Specific Documentation:
Build an FFT filter blocks.
Parameters: |
|
---|
Filter-Delay Combination Block.
The block takes one or two float stream and outputs a complex stream.
If only one float stream is input, the real output is a delayed version of this input and the imaginary output is the filtered output.
If two floats are connected to the input, then the real output is the delayed version of the first input, and the imaginary output is the filtered output.
The delay in the real path accounts for the group delay introduced by the filter in the imaginary path. The filter taps needs to be calculated before initializing this block.
Constructor Specific Documentation:
Build a filter with delay block.
Parameters: | taps – |
---|
Hilbert transformer.
real output is input appropriately delayed. imaginary output is hilbert filtered (90 degree phase shift) version of input.
Constructor Specific Documentation:
Build a Hilbert transformer filter block.
Parameters: | ntaps – |
---|
IIR filter with float input, float output and double taps.
This filter uses the Direct Form I implementation, where contains the feed-forward taps, and the feedback ones.
The old style of the IIR filter uses feedback taps that are negative of what most definitions use (scipy and Matlab among them). This parameter keeps using the old GNU Radio style and is set to TRUE by default. When taps generated from scipy, Matlab, or gr_filter_design, use the new style by setting this to FALSE.
The input and output satisfy a difference equation of the form
y[n] - sum_{k=1}^{M} a_k y[n-k] = sum_{k=0}^{N} b_k x[n-k]
with the corresponding rational system function
H(z) = frac{sum_{k=0}^{M} b_k z^{-k}}{1 - sum_{k=1}^{N} a_k z^{-k}}
Constructor Specific Documentation:
Parameters: |
|
---|
Uniformly modulated polyphase DFT filter bank: analysis
Uniformly modulated polyphase DFT filter bank: synthesis
single pole IIR filter with complex input, complex output
The input and output satisfy a difference equation of the form
y[n] - (1-alpha) y[n-1] = alpha x[n]
with the corresponding rational system function
H(z) = frac{alpha}{1 - (1-alpha) z^{-1}}
Note that some texts define the system function with a + in the denominator. If you’re using that convention, you’ll need to negate the feedback tap.
Constructor Specific Documentation:
Parameters: |
|
---|
single pole IIR filter with float input, float output
The input and output satisfy a difference equation of the form
y[n] - (1-alpha) y[n-1] = alpha x[n]
with the corresponding rational system function
H(z) = frac{alpha}{1 - (1-alpha) z^{-1}}
Note that some texts define the system function with a + in the denominator. If you’re using that convention, you’ll need to negate the feedback tap.
Constructor Specific Documentation:
Parameters: |
|
---|