Digital Filter Design
Digital Filter Design Methods | Output Response—Digital Filtering of Signals |
Poles and Zeros of Digital Filters |
LeastSquaresFilterKernel | create an FIR filter using the least-squares method |
FrequencySamplingFilterKernel | create an FIR filter using frequency sampling |
EquirippleFilterKernel | create an FIR filter using the equiripple method |
ToDiscreteTimeModel | create an IIR digital filter from an analog prototype |
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.
The impulse response is obtained by taking the inverse discrete-time Fourier transform of the filter specification:
This method minimizes the mean-squared error between the ideal specification and the resulting FIR filter:
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.
Different windows return different attenuations. Select a window type by the degree of the desired attenuation.
Frequency Sampling Method
Frequency sampling allows the creation of an FIR filter by specifying the filter's amplitude spectrum on the interval 0≤ ω≤ π at a finite number of uniformly spaced frequency locations.
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 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.
ToDiscreteTimeModel | discrete-time approximation of an analog filter |
TransferFunctionPoles | extract poles of analog filters |
TransferFunctionZeros | extract zeros of analog filters |
FIR Filters
ListConvolve | convolve an FIR filter with data |
ImageConvolve | convolve an FIR filter with image |
DiscreteConvolve | symbolic convolution of two signals |
IIR Filters
RecurrenceFilter | apply an IIR filter to a signal |
RecurrenceTable | iteratively solve the recurrence equation |
OutputResponse | output response of a filter |
Compute the impulse response using OutputResponse:
Compute the impulse response by solving the corresponding recurrence equation model of the filter using RecurrenceTable: