FIR Filter Library
mikroBasic 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 |
sub function FIR_Radix(dim ptrCoeffs as ^const q15, dim FilterOrder as word, dim ptrInput as ^q15, dim InputLength as word, dim Index as word) as q15 |
---|---|
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 dim FILTER_ORDER as word inputSamples as integer[3] outputSamples as integer[6] i as word const COEFF_B as integer[4] = (0x0000, 0x1255, 0x1255, 0x0000) sub procedure Init() inputSamples[0] = 0x4000 inputSamples[1] = 0x2000 inputSamples[2] = 0x1000 FILTER_ORDER = 3 end sub main: Init() for i= 0 to 5 outputSamples[i] = FIR_Radix(@COEFF_B, FILTER_ORDER+1, @inputSamples, 3, i) next i asm nop end asm ' 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!