Signal Processing Toolbox |
Discrete-time, overlap-add, FIR filter
Syntax
Description
This object uses the overlap-add method of block FIR filtering, which is very efficient for streaming data.
Hd = dfilt.fftfir(b,len)
returns a discrete-time, FFT, FIR filter, Hd
, with numerator coefficients, b
and block length, len
. The block length is the number of input points to use for each overlap-add computation.
Hd = dfilt.fftfir(b)
returns a discrete-time, FFT, FIR filter, Hd
, with numerator coefficients, b
and block length, len=
100.
Hd = dfilt.fftfir
returns a default, discrete-time, FFT, FIR filter, Hd
, with the numerator b=1
and block length, len=
100. This filter passes the input through to the output unchanged.
The fftfir
uses an overlap-add block processing algorithm, which is represented as follows,
where len
is the block length and M
is the length of the numerator-1, (length(b)-1
), which is also the number of states. The output of each convolution is a block that is longer than the input block by a tail of (length(b)-1
) samples. These tails overlap the next block and are added to it. The states reported by dfilt.fftfir
are the tails of the final convolution.
Examples
Create an FFT FIR discrete-time filter with coefficients from a 30th order lowpass equiripple design:
b = firpm(30,[0 .1 .2 .5]*2,[1 1 0 0]); Hd = dfilt.fftfir(b) Hd = FilterStructure: 'Overlap-Add FIR' Numerator: [1x31 double] BlockLength: 100 NonProcessedSamples: [] PersistentMemory: false
To view the frequency domain coefficients used in the filtering, use the following command.
See Also
dfilt
, dfilt.dffir
, dfilt.dfasymfir
, dfilt.dffirt
, dfilt.dfsymfir
dfilt.dfsymfir | dfilt.latticeallpass |
© 1994-2005 The MathWorks, Inc.