欢迎来到天天文库
浏览记录
ID:48620922
大小:440.50 KB
页数:15页
时间:2020-01-30
《DSP实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DSP实验报告软件实验1无限冲激响应滤波器(IIR)算法一.实验目的1.掌握设计IIR数字滤波器的原理和方法。2.熟悉IIR数字滤波器特性。3.了解IIR数字滤波器的设计方法。二.实验设备PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装CodeComposerStudio2.21软件。三.实验原理1.无限冲激响应数字滤波器的基础理论。2.模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3.数字滤波器系数的确定方法。4.根据要求设计低通IIR滤波器:要求:低通巴特沃斯滤波器在其
2、通带边缘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π弧度-计算预扭曲模拟频率以避免双线性变换带来的失真。由w=2fstan(Ω/
3、2)求得wp1和ws1,单位为弧度/秒。wp1=2fstan(Ωp1/2)=6316.5弧度/秒ws1=2fstan(Ωs1/2)=794727.2弧度/秒-由已给定的阻带衰减-20logδs确定阻带边缘增益δs。因为-20logδs=30,所以logδs=-30/20,δs=0.03162-计算所需滤波器的阶数:因此,一阶巴特沃斯滤波器就足以满足要求。-一阶模拟巴特沃斯滤波器的传输函数为:H(s)=wp1/(s+wp1)=6316.5/(s+6316.5)由双线性变换定义s=2fs(z-1)/(z+1)得到数字滤波器的传输函数为:因此,差分方程为:y[n]=0.7757y[n-1]+
4、0.1122x[n]+0.1122x[n-1]。5.程序流程图:四.实验步骤1.实验准备:-设置软件仿真模式-启动CCS2.打开工程,浏览程序,工程目录为C:ICETEKVC5416AES61VC5416AES61Lab0502-IIRIIR.pjt。3.编译并下载程序。4.打开观察窗口:*选择菜单View->Graph->Time/Frequency…进行如下图所示设置。*选择菜单View->Graph->Time/Frequency…,进行如下设置:5.清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“CleAeDisplay”功能。6.设置断点:在程序iir.
5、c中有注释“breakpoint”的语句上设置软件断点。7.运行并观察结果:⑴选择“Debug”菜单的“Animate”项,或按F12键运行程序。⑵观察“IIR”窗口中时域图形;观察滤波效果。8.退出CCS五.实验结果输入波形为一个低频率的正弦波与一个高频的余弦波叠加而成。如图:通过观察频域和时域图,得知:输入波形中的低频波形通过了滤波器,而高频部分则被衰减。实验代码:#include#defineIIRNUMBER2#defineSIGNAL1F1000#defineSIGNAL2F4500#defineSAMPLEF10000#definePI3.1415926fl
6、oatInputWave();floatIIR();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;fInp
7、ut=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();fOut[nOut
此文档下载收益归作者所有