Mikroelektronika MIKROE-724 データシート

ページ / 726
mikroBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
637
FIR_Radix
Prototype
sub function FIR_Radix(dim FilterOrder as word, dim ptrCoeffs as longint,dim 
BuffLength as
 word, dim ptrInput as word, dim Index as word) as word
Description This function applies FIR filter to 
ptrInput
.
Parameters 
FilterOrder:
 order of the filter + 1 
ptrCoeffs:
 pointer to filter coefficients in program memory 
BuffLength
 number of input samples 
ptrInput:
 pointer to input samples 
Index:
 index of current sample 
Returns
 
with: 
N
 - buffer length 
k
 - current index
Requires
Nothing.
Example
const BUFFFER_SIZE = 32
const FILTER_ORDER = 20   
const COEFF_B as integer[FILTER_ORDER+1]  = (
      0x0000, 0x0048, 0x0133, 0x02D3, 0x052B, 0x0826,
      0x0BA0, 0x0F62, 0x1329, 0x16AA, 0x199A, 0x16AA,
      0x1329, 0x0F62, 0x0BA0, 0x0826, 0x052B, 0x02D3,
      0x0133, 0x0048, 0x0000
      )
dim input as word[BUFFFER_SIZE] ydata      ‘ Input buffer
    inext as word                          ‘ Input buffer index
...
dim CurrentValue as word
CurrentValue = FIR_Radix(FILTER_ORDER+1,   ‘ Filter order
                          word(@COEFF_B),  ‘ B coefficients of the filter
                          BUFFFER_SIZE,    ‘ Input buffer length
                          word(@input),    ‘ Input buffer
                          inext)           ‘ Current sample
Notes
Input samples must be in Y data space.
FIR Filter Library
mikroBasic PRO for dsPIC30/33 and PIC24 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