📄 fir4types.c
字号:
//Fir4types.c Four FIR filters: Lowpass, Highpass, bandpass, Bandstop
#include "lp1500.cof" //coeff file LP @ 1500 Hz
#include "hp2200.cof" //coeff file HP @ 2200 Hz
#include "bp1750.cof" //coeff file BP @ 1750 Hz
#include "bs790.cof" //coeff file BS @ 790 Hz
short FIR_number = 1; //start with 1st LP filter
int yn = 0; //initialize filter's output
short dly[N]; //delay samples
short h[4][N]; //filter characteristics 3xN
interrupt void c_int11() //ISR
{
short i;
dly[0] = input_sample(); //newest input @ top of buffer
yn = 0; //initialize filter output
for (i = 0; i< N; i++)
yn +=(h[FIR_number][i]*dly[i]); //y(n) += h(LP#,i)*x(n-i)
for (i = N-1; i > 0; i--) //starting @ bottom of buffer
dly[i] = dly[i-1]; //update delays with data move
output_sample(yn >> 15); //output filter
return; //return from interrupt
}
void main()
{
short i;
for (i=0; i<N; i++)
{
dly[i] = 0; //init buffer
h[1][i] = hlp[i]; //start addr of LP1500 coeff
h[2][i] = hhp[i]; //start addr of HP2200 coeff
h[3][i] = hbp[i]; //start addr of BP1750 coeff
h[4][i] = hbs[i]; //start addr of BS790 coeff
}
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -