IIR数字滤波器设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

电子与信息工程学院电子科学与技术专业数字信号处理课程实验报告实验名称:IIR数字滤波器设计姓名:xxx学号:11111实验日期:2017.12.18一、实验目的(1)了解和熟悉ICETECK-DSP教学实验系统平台;(2)了解和熟悉DSP开发集成环境CodeComposerStudio3.3软件的设置和使用;(3)了解IIR数字滤波器的特性和设计原理;(4)掌握IIR数字滤波器的设计方法。二、实验设备(1)通用PC机一台;操作系统为Windows2000或WindowsXP,安装TI的DSP开发集成环境CodeComposerStudio3.3软件,安装DSP通用仿真器驱动程序,安装实验程序SetupF5509A.exe。(2)CETECK-DSP实验箱一台。三、实验准备(1)了解无限冲激响应数字滤波器的基础理论;(2)了解模拟滤波器的原理;(3)了解数字滤波器系数的确定方法;(4)根据要求设计低通IIR滤波器。滤波器设计指标:低通巴特沃斯滤波器在其通带边缘1kHz处的增益为-3dB,12kHz处的阻带衰减为30dB,采样频率25kHz。滤波器设计:确定待求通带边缘频率fp1Hz、待求阻带边缘频率fs1Hz和待求阻带衰减-20logδsdB。模拟边缘频率为:fp1=1000Hz,fs1=12000Hz阻带边缘衰减为:-20logδs=30dB用Ω=2πf/fs把由Hz表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1和Ωs1。Ωp1=2πfp1/fs=2π1000/25000=0.08π弧度Ωs1=2πfs1/fs=2π12000/25000=0.96π弧度计算预扭曲模拟频率以避免双线性变换带来的失真。由ω=2fstan(Ω/2)求得ωp1和ωs1,单位为弧度/秒。ωp1=2fstan(Ωp1/2)=6316.5弧度/秒ωs1=2fstan(Ωs1/2)=794727.2弧度/秒由已给定的阻带衰减-20logδs确定阻带边缘增益δs。因为-20logδs=30,所以logδs=-30/20,δs=0.03162计算所需滤波器的阶数:电子与信息工程学院电子科学与技术专业数字信号处理课程实验报告因此,一阶巴特沃斯滤波器就足以满足要求。一阶模拟巴特沃斯滤波器的传输函数为:H(s)=ωp1/(s+ωp1)=6316.5/(s+6316.5)由双线性变换定义s=2fs(z-1)/(z+1)得到数字滤波器的传输函数为:因此,差分方程为:y[n]=0.7757y[n-1]+0.1122x[n]+0.1122x[n-1]。四、实验内容和步骤(初步骤5外,其余步骤与FIR实验一致)(1)设置CCS(2)启动CCS(3)打开工程文件(4)编译并下载程序(5)打开观察窗口选择菜单View-Graph-Time/Frequency...进行相应设置。如图2-4所示:图2-4参数设置选择菜单View-Graph-Time/Frequency...进行相应设置。如图2-5所示:电子与信息工程学院电子科学与技术专业数字信号处理课程实验报告图2-5参数设置(6)清除显示(7)设置断点(8)运行并观察结果(9)退出CCS2.硬件仿真Emulator(1)设置CCS(2)启动CCS(3)余下步骤重复软件仿真(3)(4)(5)(6)(7)(8)(9)五、实验结果1.IIR软件仿真电子与信息工程学院电子科学与技术专业数字信号处理课程实验报告2.IIR硬件仿真六、实验心得与结果分析本次实验采用双线性Z变换实现IIR低通滤波器。本实验首先用一阶巴特沃斯低通滤波器模型设计低通模拟滤波器,再用双线性Z变换的方法,将模拟滤波器转换为数字滤波器,得到IIR滤波器的差分方程描述。在实验结果中可以看出,时域上输出信号明显比输入信号平滑,说明低通滤波的目的已经达到。从频域上可以看出。输出信号的高频部分有明显的衰减,而低频部分没有较大的衰减,实现了低通滤波。七、实验代码及注释#includemath.h#defineIIRNUMBER2#defineSIGNAL1F1000#defineSIGNAL2F4500#defineSAMPLEF10000#definePI3.1415926floatInputWave();//该函数用以产生含噪声的输入波形floatIIR();//该函数用以做IIR并得到输出结果floatfBn[IIRNUMBER]={0.0,0.7757};//传递函数分母部分参数floatfAn[IIRNUMBER]={0.1122,0.1122};//传递函数分子部分参数floatfXn[IIRNUMBER]={0.0};电子与信息工程学院电子科学与技术专业数字信号处理课程实验报告floatfYn[IIRNUMBER]={0.0};floatfInput,fOutput;floatfSignal1,fSignal2;//输入信号中正弦信号与噪声信号的相位floatfStepSignal1,fStepSignal2;floatf2PI;inti;floatfIn[256],fOut[256];//定义用以显示输入输出信号intnIn,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;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++;//breakpointif(nOut=256){nOut=0;}}}floatInputWave(){for(i=IIRNUMBER-1;i0;i--)//每循环一次后波形右移一次{电子与信息工程学院电子科学与技术专业数字信号处理课程实验报告fXn[i]=fXn[i-1];fYn[i]=fYn[i-1];}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]);}floatIIR(){floatfSum;fSum=0.0;for(i=0;iIIRNUMBER;i++){fSum+=(fXn[i]*fAn[i]);fSum+=(fYn[i]*fBn[i]);}return(fSum);}

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功