iirfilter_6.c

来自「用于TM1300/PNX1300系列DSP(主要用于视频处理)的各种滤波器源码」· C语言 代码 · 共 30 行

C
30
字号


#include <stdlib.h>
#include <math.h>
#include <ops/custom_defs.h>

#define SHIFT 3  /* see case study on IIR filter in Cookbook */

int iirFilter_6( int *inputData, int *outputData, 
                 int *coeff, int *state, int sampleNumber )
{
    int i;

    for( i=0; i < sampleNumber; i++ )
    {
        outputData[i] = (   IMULM( coeff[0], inputData[i] ) 
                          + IMULM( coeff[1], state[0] ) 
                          + IMULM( coeff[2], state[1] ) 
                          - IMULM( coeff[3], state[2] ) 
                          - IMULM( coeff[4], state[3] ) ) << SHIFT;
       
        state[1] = state[0];
        state[0] = inputData[i];
        state[3] = state[2];
        state[2] = outputData[i];
    } 

    return 0;  
}      

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?