Digital Filter Design
Mathematica provides a comprehensive set of methods for designing digital filters.
Digital Filter Design Methods
Digital filter design methods.
Least-Squares Method
This method obtains a finite impulse response (FIR) from a given prototype filter specification in the frequency domain by means of the inverse discrete-time Fourier transform.
Define a zero-phase ideal lowpass filter with a cutoff frequency of 1.2 radians per second.
The impulse response is obtained by taking the inverse discrete-time Fourier transform of the filter specification.
| Out[90]= |  |
Evaluating this expression for integer values of
from
to
will return a filter of length
.
Create a lowpass FIR filter of length 15 with a cutoff frequency of 1.2 radians per second.
| Out[107]= |  |
This method minimizes the mean-squared error between the ideal specification and the resulting FIR filter.
| Out[73]= |  |
The least-squares method is also known as the window-based method. The mean-squared error can be diminished by applying a smoothing window to the FIR returned by LeastSquaresFilterKernel.
Create a Hann window of length 15.
| Out[114]= |  |
Apply the window to the lowpass FIR filter
h.
| Out[116]= |  |
Different windows return different attenuations. Select a window type by the degree of the desired attenuation.
Compare attenuation levels of four selected windows
| Out[130]= |  |
Frequency Sampling Method
Frequency sampling allows the creation of an FIR filter by specifying the filter's amplitude spectrum on the interval
at a finite number of uniformly spaced frequency locations.
Sample an ideal lowpass filter at

for

from 0 to 5.
| Out[137]= |  |
| Out[138]= |  |
Create an odd-length, even-symmetry lowpass filter.
| Out[140]= |  |
Show the ideal lowpass filter, amplitude samples, and the resulting filter.
| Out[142]= |  |
Equiripple Method
The Parks-McClellan-Rabiner (1979) algorithm is one of the most popular methods of designing linear-phase FIR filters. It minimizes the maximum deviation from the desired ideal frequency response and results in filters with equal ripples in each of the bands of the filter.
Create a multiband filter of length 55.
| Out[207]= |  |
Plot the magnitude response of an equiripple multiband filter.
| Out[208]= |  |
Create a Digital Filter from an Analog Prototype
A popular method of creating digital filters is to transform analog prototypes to their digital equivalents using the bilinear transformation. The result is an infinite impulse response (IIR) filter, represented as a TransferFunctionModel.
Create an IIR filter from an analog prototype.
Create an analog lowpass filter of Chebyshev type with a cutoff frequency at

radians per second.
| Out[131]= |  |
Transform the analog filter to a digital filter using bilinear transformation.
| Out[132]= |  |
Show the frequency response of the resulting IIR filter.
| Out[133]= |  |
Poles and Zeros of Digital Filters
Poles and zeros of analog filters.
Compute and show zeros of a lowpass filter.
| Out[142]= |  |
| Out[143]= |  |
| Out[150]= |  |
| Out[156]= |  |
Output Response—Digital Filtering of Signals
FIR Filters
Apply FIR filters to signals.
Create a lowpass equiripple filter.
| Out[267]= |  |
Import and filter an audio signal.
| Out[268]= |  |
| Out[271]= |  |
Lowpass filtering of a scanline of the red channel of an image.
| Out[274]= |  |
Lowpass filtering of an image.
| Out[275]= |  |
IIR Filters
Apply FIR filters to signals.
Define a transfer function of a digital Butterworth filter.
Compute the impulse response of the IIR filter.
| Out[98]= |  |
Compute the impulse response by using the coefficients of the transfer function model.
| Out[101]= |  |
| Out[99]= |  |
Compute the impulse response by solving the corresponding recurrence equation model of the filter using
RecurrenceTable.
| Out[100]= |  |
Lowpass filtering of a scanline of the red channel of an image.
| Out[104]= |  |
Lowpass filtering of an image.
| Out[105]= |  |