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....



CalcSincBPKernel


Unit: SDL_math2
Class: none
Declaration: [1] procedure CalcSincBPKernel (KLeng: integer; CutOffFQ1, CutOffFQ2: double; Windowing: integer; var FilterKernel: TDoubleArray);
[2] procedure CalcSincBPKernel (KLeng: integer; CutOffFQ1, CutOffFQ2: double; Windowing: integer; var FilterKernel: TVector);

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

The parameter KLeng determines the roll-off of the filter. The parameters CutOffFQ1 and CutOffFQ2 control the cutoff frequencies, which are specified as a fraction of the sampling rate. Thus the cutoff frequencies may assume values between 0 and 0.500. The two frequencies may be specified in any order, if the first frequency is higher than the second they are automatically exchanged by the routine.

The following figure shows the influence of the kernel length on the roll-off at a fixed cutoff frequency (left diagram, fc1 = 0.1, fc2 = 0.35) 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