Digital Signal Processing Reference
In-Depth Information
y2out += h2700[i]*dly2[i];//y2(n)+=h2700(i)*x(n-i)
for (i = N-1; i > 0; i—) //from bottom of buffer
{
dly1[i] = dly1[i-1]; //update samples of 1st buffer
dly2[i] = dly2[i-1]; //update samples of 2nd buffer
}
if (out_type==1) //if slider is in position 1
output_sample(dly1[0]); //corrupted input(voice+sines)
if (out_type==2)
output_sample(y2out>>15); //output of 2nd filter (voice)
return;
//return from ISR
}
void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Digital filtering with Adaptive FIR filter
//AdaptIDFIR.c Adaptive FIR for system ID of an FIR (uses
C67 tools)
#include “bp55.cof” //fixed FIR filter coefficients
#include “noise_gen.h” //support noise generation file
#define beta 1E-13 //rate of convergence
#define WLENGTH 60 //# of coefficients for adaptive FIR
float w[WLENGTH+1]; //buffer coeff for adaptive FIR
int dly_adapt[WLENGTH+1]; //buffer samples of adaptive FIR
int dly_fix[N+1]; //buffer samples of fixed FIR
short out_type = 1; //output for adaptive/fixed FIR
int fb; //feedback variable
shift_reg sreg; //shift register
int prand(void)
//pseudo-random sequence {-1,1}
{
 
Search WWH ::




Custom Search