SignalUtils::KaiserFirLength Function

int KaiserFirLength(DewArray<double> W, double Ripple, double FS = 2);

Estimate the length of a windowed FIR filter.

#NameTypeDescription
1WDewArray<double>
2Rippledouble
3FS = 2double
Remarks:

Returns the length of the FIR filter, windowed with the Kaiser window, where the maximum allowed ripple of the pass band is Ripple and sampling frequency is FS. The W array holds two parameters: the start and the stop of the narrowest transition band, relative to the specified sampling frequency.

The equation can be found in [1] p. 453, eq. 7.93. The length of the filter designed with kaiser window is about 10% bigger then the length of the filter with the same specifications designed with the remez algorithm. The ripple of the passband and the stopband attenuation of a FIR filter designed with a Kaiser window are related with the equations:

Att[dB] = -20*Log10(Ripple);

Ripple = Exp10(Att/-20);

References:

[1] Discrete-time signal processing, Oppenheim and Schafer, Prentice-Hall, 1989.

See Also: OptimalFir::RemezFirLength, SignalUtils::KaiserImpulse, OptimalFir::RemezImpulse
Declared in Dew::Signal::Units::SignalUtils · Dew.Signal/Units.SignalUtils.h · Cross-compiler