LeastSquaresFilterKernel

LeastSquaresFilterKernel[{{ω1,,ωk-1},{a1,,ak}},n]
creates a k-band finite impulse response (FIR) filter kernel of length n designed using a least squares method, given the specified frequencies and amplitudes .

LeastSquaresFilterKernel[{"type",spec},n]
uses the full filter specification .

Details and OptionsDetails and Options

  • LeastSquaresFilterKernel returns a numeric list of length n of the impulse response coefficients of an FIR filter that has the minimum mean-squared error.
  • The impulse response of the filter is computed using the inverse discrete-time Fourier transform.
  • In LeastSquaresFilterKernel[{"type",spec},n], filter specification can be any of the following:
  • {"Lowpass",ωc}lowpass filter with cutoff frequency
    {"Highpass",ωc}highpass filter with cutoff frequency
    {"Bandpass",{ωc1,ωc2}}bandpass filter with pass band from to
    {"Bandstop",{ωc1,ωc2}}bandstop filter with stop band from to
    {"Multiband",{ω1,,ωk-1},{a1,,ak}}multiband filter specification with k bands
    {"Differentiator",ωc}differentiator filter with cutoff frequency
    {"Hilbert",ωc}Hilbert filter with cutoff frequency
  • If is omitted, is assumed.
  • Frequencies should be given in an ascending order such that .
  • Amplitude value corresponds to the frequency band to , and amplitude corresponds to the frequency band to π.
  • Amplitude values should be non-negative. Typically, values specify a stopband, and values specify a passband.
  • The kernel, ker, returned by LeastSquaresFilterKernel can be used in ListConvolve[ker,data] to apply the filter to data.
  • LeastSquaresFilterKernel takes a WorkingPrecision option, which specifies the precision to use in internal computations. The default setting is WorkingPrecision->MachinePrecision.

ExamplesExamplesopen allclose all

Basic Examples  (2)Basic Examples  (2)

A lowpass FIR kernel:

In[1]:=
Click for copyable input
Out[1]=

Magnitude plot of the filter and the cutoff frequency:

In[2]:=
Click for copyable input
Out[2]=

A multiband FIR kernel:

In[1]:=
Click for copyable input
Out[1]=

Magnitude plot of the filter and its "brickwall" specification:

In[2]:=
Click for copyable input
Out[2]=
Introduced in 2012
(9.0)