FIR Filter Library
mikroPascal PRO for PIC32 includes a library for finite impulse response (FIR) filter. All routines work with fractional Q15 format.
A finite impulse response (FIR) filter is a type of a digital filter, whose impulse response (the filter's response to a delta function) is finite because it settles to zero in a finite number of sample intervals.
Library Routines
FIR_Radix
Prototype |
function FIR_Radix(const ptrCoeffs : ^q15; FilterOrder : word; ptrInput : ^q15; InputLength : word; Index : word) : integer; |
---|---|
Description |
This function applies FIR filter to |
Parameters |
|
Returns |
Function returns value of the ![]() with : N - filter order
k - current index
|
Requires |
Nothing. |
Example |
// Filter setup: // Filter kind: FIR // Filter type: Lowpass filter // Filter order: 3 // Filter window: Blackman // Filter borders: // Wpass:4000 Hz program FIR; var FILTER_ORDER : word; inputSamples : array[3] of integer; outputSamples : array[6] of integer; i : word; const COEFF_B : array[4] of integer = (0x0000, 0x1255, 0x1255, 0x0000); procedure Init(); begin inputSamples[0] := 0x4000; inputSamples[1] := 0x2000; inputSamples[2] := 0x1000; BUFFFER_SIZE := 32; FILTER_ORDER := 3; end; begin Init(); for i:= 0 to 5 do outputSamples[i] := FIR_Radix(@COEFF_B, FILTER_ORDER+1, @inputSamples, 3, i); // outputSamples[0] = COEFF_B[0]*inputSamples[0]; // outputSamples[1] = COEFF_B[0]*inputSamples[1] + COEFF_B[1]*inputSamples[0]; // outputSamples[2] = COEFF_B[0]*inputSamples[2] + COEFF_B[1]*inputSamples[1] + COEFF_B[2]*inputSamples[0]; // . // . // . end. |
Notes |
None. |
Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
What do you think about this topic ? Send us feedback!