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

下载本文档

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

文档简介

1、fir滤波器的dsp设计作业要求:一、修改代码:滤波器设计要求:线性相位低通滤波器,模拟信号通带为olkhz,阻带衰减在5khz处为-60db。采样率为20khz。1. fir滤波器设计流程为,根据给出的滤波器设计(通带带宽、阻带衰减、相位要求)耍 求,在matlab环境下仿真彳u到滤波器系数,得到丫滤波器系数p在ccs下编程设计dsp 的fir滤波器。a)使用matlab中的fdatool设计fir滤波器matlab工具箱中的fdatool是通过指定滤波器的性能指标来快速设计数字滤波器,它 是一种交互式工具,只耍在fdatool工具里选择相应的滤波器设计方法,并填入需要的技术 指标,如通带阻

2、带截止频率、阶数等,即可生成所需的滤波器。并可以在界面上可以看到幅 频相频、零极点分布等图形。在木设计屮:选择fir低通滤波器,阶数为13,采样率为2okhz,截止频率fc=lkhz,窗 口设置为blackman窗。filter design & analysis tool .c:userssimaqingshandocumentsmatlabblackman.fdaview window helpo o -4480magnitude response db;0123456789 frequency (khz)20mp) 9p2u6bzfile edit analysis target

3、scurrent fitter informationstructuredirect-form firorder:12stable:yessource:designedresponse type-filter order.low passq specify order:13 frequency specifications. units:khzmagnitude specifictions-highpass bandpass 0 bandstop©minmum orderfs: 20differentiator-design method.orbutterworth options&

4、lt; scale passband window:blackmanfc:the attenuation at cutoff frequencies is fixed at 6 db (half the passband gain)厂store filter.rfilter manager.viewq fir windowdesign f#erdesigning filter. doneb)用sptool验证所设计的滤波器的功能在fdatool里设汁了一个fir低通滤波器可以用sptool来分析所设计的滤波器是否 实现了功能与fdatool样。sptool可以对信号进行吋域与频域的分析。测试滤

5、波器足否实 现功能的主要步骤:在matlab环境下产生一个混叠波信兮,在matlab命令窗口输入:fs = 20000;t = (0:500)/fs;s = sin(2*pi*t*1000)+sin(2*pi*t*5000);subplot(l,l,l);plot(t, s);axis(o 0.005 -2 2);grid产生了 1000hz和5000hz的混叠波,其波形显示阁形为:c)在fdatool的界面里输出到sptool,然后在将导入sptool的滤波器命名为filter,点击 “apply”,这样,设计的滤波器就导入了 sptool中。在sptool主界面里面,将输入信号s,采样 频

6、率fs导入进去,并生成名为output的输出信号。通过点击该界面下的“view”可以得到输入 输出波形,点击“create”可以得到输出的频谱,这三个图形如下所示:051015time (ms>202525150515 b 1 o o 1- -signal browserfile tools view helpsignal browserepniduv18642024 6 8 1t*4b>4麵oooo oooo - - -5tme (ms;file tools view help通过观察输入输出的波形阁及频谱罔验证所设计的滤波器的功能。吋以看出5000hz的 频率分量被滤,所没计的

7、滤波器实现了低通滤波功能。2.使用ccs编程实现dsp的fir滤波启动ccs软件,编写及修改程序,我们得到的仿真波形如下:c)输出波形的频谱:上应用;缺点主要就是丢失了精度,并且计算过程界易溢出。浮点运算的优点很明显,浮点数有更人的数字表示范围,数据运算吋不界易产生溢出,运算精度也比定点运算高;但是其缺点是运算复杂,硬件较s杂,带有浮点运算单元的dsp 明显比定点dsp价格高,增加了成木。二、通过仿真波形的分析、理解滤波器阶数与滤波器延时以及滤波器的阻带衰减之间 的关系。在利用窗函数设计的fir滤波器中,用同一种窗函数设计的fir数字滤波器的阶数n不 m,所得到的滤波器的过渡带会不一样,n越大

8、,过渡带越窄。滤波器的阯带衰减只有窗形 状决定,不受滤波器阶数的影响;但是滤波器的阶数太高,会导致过渡带很窄,暂态增加, 延吋很长。三、实验程序:#include <math.h>#include <stdlib.h>#define order 14#define n 128#define pi 3.14159265358979323846float firorder = 0,0.00254885266601421,0.0147553639227699,0.0448623472097668,0.0949715275858371,0.152016225973152,0.1

9、9084568264246,0.19084568264246,0.152016225973152,0.0949715275858371,0.0448623472097668,0.0147553639227699,0.00254885266601421,0;float s;inti,n;float inputn,outputn; int fs=20000; int fl=1000; int f2=5000;voidwavein()for(n=0;n<n;n+)inputn= sin(2*pi*n*f2/fs)+sin(2*pi*n*fl/fs);void main() int p=0;n=

10、0;wavein();for(n=0;n<n;n+)p=o;s=o;while(p<order)&&(p<=n)s=firp*inputn-p+s;p+;outputn=s;fft的dsp实验实验内容:完成所给例程对应实验,验收结果如下:a、时域信号波形为(图形入口地址:signallnput):020802290.2491.代码被修改的部分:#defjne s2_freq 160/ 信号 2 频率void init_fft_tab(void) /输入波形的初始化float wtl; float wt2; inti;for (i=o;i<sample_n

11、umb;i+)wtl=2*pi*i*sl_freq;wtl=wtl/samplefreq;wt2=2*pi*i*s2_freq;wt2=wt2/samplefreq;/此处实现60hz和160hz两个信号相乘。signallnputi=cos(wtl)*cos(wt2)*100;/signallnputi=(cos(wtl)+cos(wt2)/2*100;由时域相乘频域卷积可以知道60hz和160hz的余弦信号相乘将得到有100hz和220hz 频率分量的信号。2. ccs仿真閔形如下:c、fft输出结果(图形入口地址:fft w):1、代码被修改的部分(时域信号为60hz和180hz的两个波

12、形和加): #define sample_numb 1024 /没s fft 点数为 1024 点voidfft(float datarsample_numb,float dataisample_numb)int x0,xl,x2,x3,x4,x5,x6,x7,x8,x9,xx;inti,j,k,b,p,l;floattrji,temp;/倒位序;由1024点可以得到顺序数可以由10位数表示,这里取0-9; for(i=0;i<sample_numb;i+)x0=xl=x2=x3=x4=x5=x6=x7=x8=0;x0=i&0x01;xl=(i/2)&0x01;x2=(i

13、/4)&0x01;x3=(i/8)&0x01;x4=(i/16)&0x01;x5=(i/32)&0x01;x6=(i/64)&0x01;x7=(i/128)&0x01;x8=(i/256)&0x01;x9=(i/512)&0x01;xx=x0*512+xl*256+x2*128+x3*64+x4*32+x5*16+x6*8+x7*4+x8*2+x9;dataixx=datari;for(i=0;i<sample_numb;i+)datari=dataii;dataii=o;/10级蝶形运算for(l=l;l<=10;l

14、+)b=l;i=l-l;while(i>0)b=b*2;i-;for(j=0;j<=b-l;j+)/p=l;i=10-l;while(i>0) p=p*2;i-;p=p*j;for(k=j;k<1024;k=k+2*b)tr=datark;ti=dataik;temp=datark+b;datark=datark+datark+b*cos_tabp+dataik+b*sin_tabp;dataik=dataik-datark+b*sin_tabp+dataik+b*cos_tabp;datark+b=tr-datark+b*cos_tabp-dataik+b*sin_tabp;dataik+b=ti+temp*sin_tabp-dataik+b*cos_tabp;/计算fft输出的功率for(i=0;i<sample_numb/2;i+)fft_wi=sqrt(datari*datari+dataii*datai

温馨提示

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

评论

0/150

提交评论