| Signal Processing Toolbox | Search  Help Desk |
| fir2 | Examples See Also |
Window-based finite impulse response filter design - arbitrary response.
Syntax
b = fir2(n,f,m) b = fir2(n,f,m,window) b = fir2(n,f,m,npt) b = fir2(n,f,m,npt,window) b = fir2(n,f,m,npt,lap) b = fir2(n,f,m,npt,lap,window)
Description
fir2 designs windowed digital FIR filters with arbitrarily shaped frequency response. (For standard lowpass, bandpass, highpass, and bandstop configurations, use fir1.)
b = fir2(n,f,m)
returns row vector b containing the n+1 coefficients of an order n FIR filter. The frequency-magnitude characteristics of this filter match those given by vectors f and m:
f is a vector of frequency points in the range from 0 to 1, where 1 corresponds to half the sampling frequency (the Nyquist frequency). The first point of f must be 0 and the last point 1. The frequency points must be in increasing order.
m is a vector containing the desired magnitude response at the points specified in f.
f and m must be the same length.
plot(f,m) to view the filter shape.
The output filter coefficients, b, are ordered in descending powers of z:
b = fir2(n,f,m,window)
uses the window specified in column vector window for the filter design. The vector window must be n+1 elements long. If no window is specified, fir2 employs a Hamming window.
b = fir2(n,f,m,npt)
and
b = fir2(n,f,m,npt, window)
specify the number of points npt for the grid onto which fir2 interpolates the frequency response, with or without a window specification.
b = fir2(n,f,m,npt,lap)
and
b = fir2(n,f,m,npt,lap,window)
specify the size of the region, lap, that fir2 inserts around duplicate frequency points, with or without a window specification.
See the "Algorithm" section for more on npt and lap.
Algorithm
The desired frequency response is interpolated onto a dense, evenly spaced grid of lengthnpt. npt is 512 by default. If two successive values of f are the same, a region of lap points is set up around this frequency to provide a smooth but steep transition in the requested frequency response. By default, lap is 25. The filter coefficients are obtained by applying an inverse fast Fourier transform to the grid and multiplying by a window; by default, this is a Hamming window.
Example
Design a 30th-order lowpass filter and overplot the desired frequency response with the actual frequency response:f = [0 0.6 0.6 1]; m = [1 1 0 0]; b = fir2(30,f,m); [h,w] = freqz(b,1,128); plot(f,m,w/pi,abs(h))
![]()
See Also
butter |
Butterworth analog and digital filter design. |
cheby1 |
Chebyshev type I filter design (passband ripple). |
cheby2 |
Chebyshev type II filter design (stopband ripple). |
ellip |
Elliptic (Cauer) filter design. |
fir1 |
Window-based finite impulse response filter design - standard response. |
maxflat |
Generalized digital Butterworth filter design. |
remez |
Parks-McClellan optimal FIR filter design. |
yulewalk |
Recursive digital filter design. |