iir.c
来自「基于dsp的无限冲激响应滤波器代码(在TMS3206211上实现)」· C语言 代码 · 共 33 行
C
33 行
//IIR.c IIR filter using cascaded Direct Form II
//Coefficients a's and b's correspond to b's and a's from MATLAB
#include "bs1750.cof" //BS @ 1750 Hz coefficient file
short dly[stages][2] = {0}; //delay samples per stage
interrupt void c_int11() //ISR
{
int i, input;
int un, yn;
input = input_sample(); //input to 1st stage
for (i = 0; i < stages; i++) //repeat for each stage
{
un=input-((b[i][0]*dly[i][0])>>15) - ((b[i][1]*dly[i][1])>>15);
yn=((a[i][0]*un)>>15)+((a[i][1]*dly[i][0])>>15)+((a[i][2]*dly[i][1])>>15);
dly[i][1] = dly[i][0]; //update delays
dly[i][0] = un; //update delays
input = yn; //intermediate output->input to next stage
}
output_sample(yn); //output final result for time n
return; //return from ISR
}
void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?