FIR滤波器的DSP实现_第1页
FIR滤波器的DSP实现_第2页
FIR滤波器的DSP实现_第3页
FIR滤波器的DSP实现_第4页
FIR滤波器的DSP实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章FIR数字滤波器设计4.1实验目的 1、熟悉使用TI公司的6413DSP开发板。 2、进一步熟悉软件CodeComposerStudio的使用。 3、掌握加窗法实现FIR数字滤波器的原理。4.2实验内容 使用CodeComposerStudio软件在6713DSP开发板上实践加窗FIR数字滤波器算法。4.3实验器材 6713DSP开发板x1 USB数据线x1 供电线x1 电脑x14.4实验原理1.一个长度为N+1的因果FIR滤波器传输函数H(z)是Z-1的H其对应的频率响应函数为:H任何长度为N+1的有限长序列x[n]的特性可由其离散时间傅里叶变换X(ejw)的N+1样本完全描述。因此,要设计一个长度为N+1的FIR滤波器,可以利用冲击响应序列{h[n]}或频率响应H(ejw)的N+1hFIR滤波器的两种直接设计方法为加窗傅里叶级数法和频率抽样法。本次实验只用加窗傅里叶级数法实现。2.由于加窗理想滤波器冲击响应序列的幅值响应出现吉布斯(Gibbs)现象,我们需要利用两边都是逐渐平滑减小到零的窗函数或者在通带到阻带加入平滑的过渡带等方法减弱吉布斯现象。使用渐缩的窗函数可以使旁瓣的高度减小,但会使主瓣的宽度相应的增加,结果是在不连续点间出现更宽的过渡带。现将我们常用的长度为N=2M+1的渐变窗函数列举如下:Hann窗:Hamming窗:Blackman窗:Kaiser窗:窗函数主瓣宽度旁瓣宽度最小阻带衰减过渡带带宽ΔωHann窗8π/(2M+1)31.5dB43.9dB3.11π/MHamming窗8π/(2M+1)42.7dB54.5dB3.32π/MBlackman窗12π/(2M+1)58.1dB75.3dB5.56π/M矩形窗4π/(2M+1)13.3dB29.9dB0.92π/M4.5实验步骤 1、将6713DSP开发板接上电源并与计算机连接,打开6713DSKDiagnosticsUtility检测实验设备是否连接正常。 2、打开Matlab,输入hamming(80),将得到的81个数据保存好。新建一个数组hamming[81],把刚得到的81个数据保存在hamming[81]的数组中。 3、利用Matlab生成一个带噪音的信号,并保存在input.dat的文件中。 4、打开CodeComposerStudio软件新建工程,敲入程序,将输入文本input.dat放在工程目录下。 5、检查FIR滤波结果,利用CCS软件自带的画图功能画出输入和输出的时域波形和幅度谱。4.6实验框图FIR滤波程序框图4.7实验参考程序#include"limits.h"#include"math.h"#defineN81//滤波器长度#defineLEN1001//输入数据长度#definePI3.1415926floatyn;//输出临时结果floatinput[LEN];//输入数组floatoutput[LEN];//输出数组staticvoiddataIO(void);constfloathamming[81]={0.080000,0.081418,0.085663,0.092710,0.102514,0.115015,0.130137,0.147786,0.167852,0.190213,0.214731,0.241254,0.269619,0.299651,0.331164,0.363966,0.397852,0.432615,0.468040,0.503909,0.540000,0.576091,0.611960,0.647385,0.682148,0.716034,0.748836,0.780349,0.810381,0.838746,0.865269,0.889787,0.912148,0.932214,0.949863,0.964985,0.977486,0.987290,0.994337,0.998582,1.000000,0.998582,0.994337,0.987290,0.977486,0.964985,0.949863,0.932214,0.912148,0.889787,0.865269,0.838746,0.810381,0.780349,0.748836,0.716034,0.682148,0.647385,0.611960,0.576091,0.540000,0.503909,0.468040,0.432615,0.397852,0.363966,0.331164,0.299651,0.269619,0.241254,0.214731,0.190213,0.167852,0.147786,0.130137,0.115015,0.102514,0.092710,0.085663,0.081418,0.080000};voidmain(){inti,j,n;floatm,wc,hlp[81],ht[81];intfs;float*x;dataIO();fs=10000;wc=1000*2*PI/fs;//截止频率1000Hzfor(n=0;n<N;n++)//计算冲激响应ht{m=n-(N-1)/2+DBL_EPSILON;hlp[n]=sin(wc*m)/(PI*m);ht[n]=hamming[n]*hlp[n];}for(j=0;j<LEN;j++)//计算卷积{x=&input[j];yn=0;for(i=0;i<N;i++){yn+=ht[i]*(*x++);}output[j]=yn;}dataIO();while(1);}staticvoiddataIO()//用于文件I/O{return;}Matlab生成噪音信号:f11=800;%原信号频率f12=1200;%噪音1频率f13=3000;%噪音2频率fs=10000;%采样频率N=1000;T=1/fs;n=0:N;x11=sin(2*pi*f11*n*T);x12=0.7*sin(2*pi*f12*n*T);x13=0.5*sin(2*pi*f13*n*T);x_base=(x11+x12+x13);fid=fopen('input.dat','w');fprintf(fid,'16511000\r\n');fprintf(fid,'%d\r\n',x_base);fclose(fid);4.8实验范例 1、文件I/O设置:点击选中写着“dataIO();”的行,然后分别点击和来给该行下breakpoint和probepoint。共有2行需要此操作。点击重新编译整个工程。点击file->fileI/O...,点击addfile,添加input1.dat(输入文件),然后点击addprobepoint,在弹出的对话框中如下设置:依次点击replace,确定。在对话框中如下设置点击fileoutput,添加output.dat,然后点击addprobepoint,如下设置点击replace,确定。2、载入程序到DSP开发板中,点击debug–>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论