kaiserAtten function

double kaiserAtten(
  1. int numtaps,
  2. double width
)

Compute the attenuation of a Kaiser FIR filter. Given the number of taps N and the transition width width, compute the attenuation a in dB, given by Kaiser's formula: a = 2.285 * (N - 1) * pi * width + 7.95

Parameters

  • numtaps : The number of taps in the FIR filter.
  • width : The desired width of the transition region between passband and stopband (or, in general, at any discontinuity) for the filter, expressed as a fraction of the Nyquist frequency.

Returns

  • a : The attenuation of the ripple, in dB.

See Also

  • kaiserord, kaiser_beta

Examples

// Suppose we want to design a FIR filter using the Kaiser window method
// that will have 211 taps and a transition width of 9 Hz for a signal that
// is sampled at 480 Hz.  Expressed as a fraction of the Nyquist frequency,
// the width is 9/(0.5*480) = 0.0375.  The approximate attenuation (in dB)
// is computed as follows:
print(kaiser_atten(211, 0.0375));

/* output:
64.48099630593983
*/

Implementation

double kaiserAtten(int numtaps, double width) {
  var a = 2.285 * (numtaps - 1) * pi * width + 7.95;
  return a;
}