DSP实验报告.doc

上传人:灯火****19 文档编号:135075855 上传时间:2020-06-11 格式:DOC 页数:15 大小:440.50KB
返回 下载 相关 举报
DSP实验报告.doc_第1页
第1页 / 共15页
DSP实验报告.doc_第2页
第2页 / 共15页
DSP实验报告.doc_第3页
第3页 / 共15页
DSP实验报告.doc_第4页
第4页 / 共15页
DSP实验报告.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《DSP实验报告.doc》由会员分享,可在线阅读,更多相关《DSP实验报告.doc(15页珍藏版)》请在金锄头文库上搜索。

1、DSP实验报告软件实验无限冲激响应滤波器(IIR) 算法一实验目的1 掌握设计 IIR 数字滤波器的原理和方法。2 熟悉 IIR 数字滤波器特性。3 了解 IIR 数字滤波器的设计方法。二实验设备PC 兼容机一台,操作系统为 Windows2000( 或 Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装 Code Composer Studio 2.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 弧度- 计算

3、预扭曲模拟频率以避免双线性变换带来的失真。由 w=2fs tan( /2) 求得 wp1 和 ws1 ,单位为弧度 / 秒。wp1=2fs tan( p1/2)=6316.5 弧度 / 秒ws1=2fs tan( 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

4、=2fs(z-1)/(z+1) 得到数字滤波器的传输函数为:因此,差分方程为: yn=0.7757yn-1+0.1122xn+0.1122xn-1 。程序流程图:四实验步骤1 实验准备:- 设置软件仿真模式- 启动 CCS 2 打开工程,浏览程序,工程目录为C:ICETEKVC5416AES61VC5416AES61Lab0502-IIRIIR.pjt 。3 编译并下载程序。4 打开观察窗口:* 选择菜单 View-Graph-Time/Frequency 进行如下图所示设置。* 选择菜单 View-Graph-Time/Frequency ,进行如下设置:5 清除显示:在以上打开的窗口中单击

5、鼠标右键,选择弹出式菜单中“ CleAe Display ”功能。6 设置断点:在程序 iir.c 中有注释“ break point ”的语句上设置软件断点。7 运行并观察结果: 选择“ Debug ”菜单的“ Animate ”项,或按 F12 键运行程序。 观察“ IIR ”窗口中时域图形;观察滤波效果。8 退出 CCS五实验结果输入波形为一个低频率的正弦波与一个高频的余弦波叠加而成。如图:通过观察频域和时域图, 得知: 输入波形中的低频波形通过了滤波器, 而高频部分则被衰减。实验代码:#include #define IIRNUMBER 2#define SIGNAL1F 1000#d

6、efine SIGNAL2F 4500#define SAMPLEF 10000#define PI 3.1415926float InputWave();float IIR();float fBnIIRNUMBER= 0.0,0.7757 ;float fAnIIRNUMBER= 0.1122,0.1122 ;float fXnIIRNUMBER= 0.0 ;float fYnIIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i

7、;float fIn256,fOut256;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;fStepSignal1=2*PI/50;fStepSignal2=2*PI/2.5;while ( 1 )fInput=InputWave();fInnIn=fInput;nIn+; nIn%=256;fOutput=IIR();fOutnOut=fOutput;nOut+;/ bre

8、ak pointif ( nOut=256 )nOut=0;float InputWave()for ( i=IIRNUMBER-1;i0;i- )fXni=fXni-1;fYni=fYni-1;fXn0=sin(double)fSignal1)+cos(double)fSignal2)/6.0;fYn0=0.0;fSignal1+=fStepSignal1; if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2=f2PI )fSignal2-=f2PI;return(fXn0);float IIR()f

9、loat fSum;fSum=0.0;for ( i=0;iGraph-Time/Frequency 进行如下图所示设置。5 清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“ CleAe Display ”功能。6 设置断点:在程序 FFT.c 中有注释“ break point ”的语句上设置软件断点。7 运行并观察结果。 选择“ Debug ”菜单的“ Animate ”项,或按 F12 键运行程序。8. 退出 CCS 。5. 实验结果通过观察频域和时域图,程序计算出了测试波形的功率谱,与 CCS 计算的 FFT 结果相近。实验代码:#include #define PI 3.

10、1415926#define SAMPLENUMBER 128void InitForFFT();void MakeWave();int INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLENUMBER;float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER;void FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER);main()int i;InitForFFT();MakeWave();for ( i=0;iSAMPLENUMBER;i+ )fWaveRi=INPUTi;fWaveIi=0.0f;wi=0.0f;FFT(fWaveR,fWa

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号