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]=
New in 9
New to Mathematica? Find your learning path »
Have a question? Ask support »