?? firprn.c
字號:
//FIRPRN.c FIR with internally generated input noise sequence
#include "bp55.cof" //BP @ Fs/4 coeff file in float
#include "noise_gen.h" //header file for noise sequence
int dly[N]; //delay samples
short fb; //feedback variable
shift_reg sreg;
short prn(void) //pseudorandom noise generation
{
short prnseq; //for pseudorandom sequence
if(sreg.bt.b0) //sequence {1,-1}
prnseq = -16000; //scaled negative noise level
else
prnseq = 16000; //scaled positive noise level
fb =(sreg.bt.b0)^(sreg.bt.b1); //XOR bits 0,1
fb ^=(sreg.bt.b11)^(sreg.bt.b13); //with bits 11,13 ->fb
sreg.regval<<=1; //shift register 1 bit to left
sreg.bt.b0 = fb; //close feedback path
return prnseq; //return sequence
}
interrupt void c_int11() //ISR
{
int i;
int yn = 0; //initialize filter's output
dly[0] = prn(); //input noise sequence
for (i = 0; i< N; i++)
yn +=(h[i]*dly[i]); //y(n)+= h(i)*x(n-i)
for (i = N-1; i > 0; i--) //start @ bottom of buffer
dly[i] = dly[i-1]; //data move to update delays
output_sample(yn); //output filter
return; //return from interrupt
}
void main()
{
short i;
sreg.regval = 0xFFFF; //shift register to nominal values
fb = 1; //initial feedback value
for (i = 0; i<N; i++)
dly[i] = 0; //init buffer
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -