SignalUtils::KaiserImpulse Function

void KaiserImpulse(TVec *H, DewArray<double> W, double Ripple, TFilterType FilterType, double Gain = 1, double FS = 2, bool EnsuredOdd = false);

Design a FIR filter with a Kaiser window.

#NameTypeDescription
1HTVec *
2WDewArray<double>
3Rippledouble
4FilterTypeTFilterType
5Gain = 1double
6FS = 2double
7EnsuredOdd = falsebool
Remarks:

Compute a FIR impulse response filter with kaiser window applied and place the result in H. The transition regions are defined with the W array. There must be at least one (lowpass, highpass) and at most two (bandpass, bandstop) transition regions (2 or 4 elements). Filter type is defined with TFilterType.

FS is the sampling frequency. The length of the filter (H.Length) is based on the narrowest transition region in combination with the passband Ripple parameter. 20*Log10(Ripple) is also the required attenuation of the stopband in decibel. Gain defines the filter gain. The resulting H vector contains FIR type impulse response, which can be passed to the FirInit routine.

If EnsuredOdd is True, the filter length is guaranteed to have odd length. H.FloatPrecision value on input defines the precision (single or double) of the result on output.

See Also: SignalUtils::FirFilter, SignalUtils::KaiserFirLength, OptimalFir::RemezFirLength, OptimalFir::RemezImpulse, SignalUtils::Kaiser, SignalUtils::FirImpulse, SignalUtils::FractionalKaiserImpulse
Declared in Dew::Signal::Units::SignalUtils · Dew.Signal/Units.SignalUtils.h · Cross-compiler