电子与信息工程学院 电子科学与技术专业 数字信号处理课程实验报告 float fYn[IIRNUMBER]={ 0.0 }; float fInput,fOutput;
float fSignal1,fSignal2;//输入信号中正弦信号与噪声信号的相位 float fStepSignal1,fStepSignal2; float f2PI; int i;
float fIn[256],fOut[256];//定义用以显示输入输出信号 int nIn,nOut; main() {
nIn=0; nOut=0; fInput=fOutput=0; f2PI=2*PI;
fSignal1=0.0;//初始化正弦相位信号 fSignal2=PI*0.1;//初始化噪声相位信号
// fStepSignal1=2*PI/30; // fStepSignal2=2*PI*1.4; }
float InputWave() {
for ( i=IIRNUMBER-1;i>0;i-- )//每循环一次后波形右移一次 {
fStepSignal1=2*PI/50;//定义正弦信号的步进相位 fStepSignal2=2*PI/2.5;//定义噪声信号的步进相位 while ( 1 ) { }
fInput=InputWave(); fIn[nIn]=fInput; nIn++; nIn%=256;
fOutput=IIR();//对输入信号做IIR滤波 fOut[nOut]=fOutput; nOut++; { }
nOut=0;
// break point
if ( nOut>=256 )
电子与信息工程学院 电子科学与技术专业 数字信号处理课程实验报告 }
float IIR() { }
float fSum; fSum=0.0;
for ( i=0;i return(fSum); fSum+=(fXn[i]*fAn[i]); fSum+=(fYn[i]*fBn[i]); } fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0;//生成输入信号,噪声由余fYn[0]=0.0; fSignal1+=fStepSignal1; //每循环输入信号步进一定相位,模拟波的行进 if ( fSignal1>=f2PI ) fSignal1-=f2PI; fSignal2+=fStepSignal2; if ( fSignal2>=f2PI ) fSignal2-=f2PI; return(fXn[0]); fXn[i]=fXn[i-1]; fYn[i]=fYn[i-1]; 弦信号给出

