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 sample.

Null

The impulse response is obtained by taking the inverse discrete-time Fourier transform of the filter specification.

In[1]:=

Out[0]=

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 sample.

In[1]:=

Out[1]=

This method minimizes the mean-squared error between the ideal specification and the resulting FIR filter.

In[2]:=

Out[2]=

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.

In[3]:=

Out[3]=

Apply the window to the lowpass FIR filter h.

In[4]:=

Out[5]=

Different windows return different attenuations. Select a window type by the degree of the desired attenuation.

Compare attenuation levels of four selected windows

In[6]:=

Out[6]=

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.

In[7]:=

Out[7]=

In[8]:=

Out[8]=

Create an odd-length, even-symmetry lowpass filter.

In[9]:=

Out[10]=

Show the ideal lowpass filter, amplitude samples, and the resulting filter.

In[11]:=

Out[11]=

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.

In[12]:=

Out[12]=

Plot the magnitude response of an equiripple multiband filter.

In[13]:=

Out[13]=

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.