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!



