The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



CalcSincHPKernel


Unit: SDL_math2
Class: none
Declaration: [1] procedure CalcSincHPKernel (KLeng: integer; CutOffFQ: double; Windowing: integer; var FilterKernel: TDoubleArray);
[2] procedure CalcSincHPKernel (KLeng: integer; CutOffFQ: double; Windowing: integer; var FilterKernel: TVector);

The procedure CalcSincHPKernel calculates the coefficients of a highpass sinc filter. The coefficients which are returned in the array FilterKernel can be used by the function MovingKernelFilter to apply a highpass filter to a signal. The open array [1] or vector [2] FilterKernel is automatically resized to contain KLeng elements.

The parameter KLeng determines the roll-off of the filter. As a rule of thumb the transition bandwidth BW can be estimated by

BW = 4/KLeng.

The parameter CutOffFQ controls the cutoff frequency, which is specified as a fraction of the sampling rate. Thus the CutOffFQ parameter may assume values between 0 and 0.500. The following figure shows the influence of the kernel length on the roll-off at a fixed cutoff frequency (left diagram, fc = 0.2) and the roll-off of different cutoff frequencies using the same kernel length (right diagram, KLeng = 41).

The parameter Windowing determines the type of windowing applied to the filter kernel. Currently the following windowing modes are supported:

0 ... no windowing
1 ... Hamming window
2 ... Blackman window

Hint: Please note that the computation time of a filter is directly proportional to the length of the filter kernel.



Last Update: 2023-Feb-06