DSP作业报告FIR滤波器的DSP实现《DSP技术与实验》综合实验题目_第1页
DSP作业报告FIR滤波器的DSP实现《DSP技术与实验》综合实验题目_第2页
DSP作业报告FIR滤波器的DSP实现《DSP技术与实验》综合实验题目_第3页
DSP作业报告FIR滤波器的DSP实现《DSP技术与实验》综合实验题目_第4页
DSP作业报告FIR滤波器的DSP实现《DSP技术与实验》综合实验题目_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

三峡大学2011秋季学期《DSP技术与实验》综合实验FIR滤波器的DSP实现姓名:覃士超学号:姓名:覃士超学号:2009113111指导老师:李海军2011秋季学期《DSP技术与实验》综合实验题目姓名:覃士超学号:2009113111.报告要求:设输入信号为x(t)=cos(3π*220t)+cos(7π*220t)+cos(10π*220t),x(n)利用MATLAB仿真分析得到,采样频率fs=10000HZ。这里的频率f=11×20Hz=220Hz。用FIR滤波器的DSP实现(低通、高通、带通、带阻)设计思路:1、用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR滤波器设计。语法:b=fir(n,wnb=fir(n,wn,"ftype"b=fir(n,wn,b=fir(n,wn,其中,n为滤波器的阶数;wn为滤波器的截止频率;ftype决定滤波器的类型,当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器。Window参数用来指定滤波器采用的窗函数类型,其默认值为汉明窗。由以上可得出以下语句:b1=fir1(79,0.11);b2=fir1(79,0.187,'high'); b3=fir1(79,[0.110.187]); b4=fir1(79,[0.110.187],'stop'); 2、FIR的DSP实现FIR滤波器的输出表达式为y(n)=式中,bi为滤波器系数;x(n)为表示滤波器在n时刻的输入;y(n)为n时刻的输出。它的基本算法是乘法-累加运算,即不断地输入样本x(n),经过z-1y(n)。首先由抽样定理设定滤波器信号的采样频率为fs=10000HZ,阶数设为79阶。由f1=330+7702HZ=550HZ、f2=770+11002HZ=935HZ和数字角频率Wn=2pi*f/fs可得:截止频率Matalab源程序如下:b1=fir1(79,0.11); %80pointhammingwindowFIRfilter,Wn=0.1π=2π*550/10000b2=fir1(79,0.187,'high'); %80pointhighpassFIRfilter,Wn=0.3π=2π*1870/10000b3=fir1(79,[0.110.187]); %bandpass0.11-0.187b4=fir1(79,[0.110.187],'stop'); %bandstop0.11-0.187fvtool(b1,1) %FlterVisualizationTool可心以查看幅度响应、冲激响应等fvtool(b2,1)fvtool(b3,1)fvtool(b4,1)h=buffer(round(b1*32768),8)'%参数*2^15,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrite('table1.txt',h)%参数表输出到文件中h=buffer(round(b2*32768),8)'%参数*2^15,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrite('table2.txt',h)%参数表输出到文件中h=buffer(round(b3*32768),8)'%参数*2^15,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrite('table3.txt',h)%参数表输出到文件中h=buffer(round(b4*32768),8)'%参数*2^15,把小数点移最高位后面后取整,然后排成8个一行便于输出。csvwrite('table4.txt',h)%参数表输出到文件中%然后只要把参数表从table.txt中拷到代码中,每行前面加上'.word't=0:1/10000:1/10;%采样率为10KHz,一共采集1000个点x=cos(2*pi*330*t)+cos(2*pi*770*t)+cos(2*pi*1100*t);%330Hz、770Hz、1100Hz的信号相叠加xx=buffer(round(x/3.3*32768),1)'%参数*2^15,把小数点移最高位后面后取整,然后排成1个一行便于输出。csvwrite('table5.txt',xx)%参数表输出到文件中,输入信号x的离散值保存在文件table5.txt中y1=filter(b1,1,x);%低通滤波结果y2=filter(b2,1,x);%高通滤波结果y3=filter(b3,1,x);%带通滤波结果y4=filter(b4,1,x);%带阻滤波结果%画出输入输出波形figure(1);subplot(5,1,1);plot(0:511,x(1:512));%在子图区域511中画输入信号x波形subplot(5,1,2);plot(0:511,y1(1:512));%在子图区域512中画低通滤波结果波形subplot(5,1,3);plot(0:511,y2(1:512));%在子图区域513中画高通滤波结果波形subplot(5,1,4);plot(0:511,y3(1:512));%在子图区域514中画带通滤波结果波形subplot(5,1,5);plot(0:511,y4(1:512));%在子图区域515中画带阻滤波结果波形运行上述程序即可得到输入信号通过各滤波器得到的仿真结果和5个.Txt格式的文件,其中前四个分别为低通、高通、带通、带阻滤波器的系数,table5为输入信号的1000点离散值,将作为后面DSP仿真的输入信号。将所得的滤波器系数分别带入到主程序中得相应table值如下:table.word … .word… ... .word… .word…运行程序得到DSP仿真输出波形和频谱和matalab仿真结果比较如下:输入信号频谱如下:(1)低通滤波如下:(2)高通滤波如下:(3)带通滤波如下:(4)带阻滤波如下:经比较,二者基本吻合,各滤波器性能符合实验要求。DSP仿真主程序参考如下:①FIR.asm********************************************************************用循环缓冲区和双操作数寻址方法实现FIR滤波器*N=80,y(n)=h0*x(n)+h1*x(n-1)+...+h78*x(n-78)+h79*x(n-79)*先用matlab,选择80点汉明窗设计一个截止频率为0.2pi的低通滤波器****************************************************************** .title "fir.asm" .mmregs .def start .bss y,1 ;保存滤波结果 .bssindata,1;输入信号缓冲区(变量) .bssoutdata,1;输出信号缓冲区(变量)xn .usect "xn",80;xnh .usect "h",80 ;h;PA0 .set 0002H ;D/A端口地址;PA1 .set 0008H ;A/D端口地址 .datatable: .word…此处为滤波器系数由table1—table5中得值确定 .word…... .word… .word…..textstart: SSBX FRCT ;小数乘法 STM #xn,AR1 RPT #79 ST #0,*AR1+ ;把x(n)-x(n-79)赋始值0 STM #h,AR1 RPT #79 MVPD #table,*AR1+ ;把参数表复制到数据存储区 STM #xn+79,AR3 ;AR3-->x(n-79) STM #h+79,AR4 ;AR4-->h(n-79) STM #80,BK ;循环缓冲区大小80 STM #-1,AR0 ;指针调整值-1 LD #xn,DP ;DP指向xn所在页; PORTR PA1,@xn ;输入数据 LD #y,DP ;DP指向y所在页FIR: NOPMVKD indata,*AR3+0%;在这一行设置探针与断点用于从indata.dat文件中读输入数据 RPTZ A,#79 MAC *AR3+0%,*AR4+0%,ASTHA,@outdata;在这一行设置探针与断点用于将滤波结果写到文件outdata.dat中NOP;STH A,@y ;保存计算结果;PORTW @y,PA0 ;硬件仿真时写D/A B FIR ;跳转 ;B FIR ;延迟跳转;PORTR PA1,*AR3+0% ;硬件仿真时读A/D,新数据覆盖最老的数据 .end②FIR.cmdvectors.objfir.obj-ofir.out-mfir.map-estartMEMORY{PAGE0:EPROM: org=0090H,len=0F70HVECS: org=0080H,len=0010HPAGE1:SPRAM: org=1000H,len=1000HDARAM: org=2000H,len=2000H}/*由于在源程序中使用了BK寄存器,所以必须使用"align"命令*/SECTIONS{.text :>EPROM PAGE0.data :>EPROM PAGE0.bss :>SPRAM PAGE1xn : align(128){}>DARAM PAGE1h : align(128){}>DARAM PAGE1.vectors:>VECS PAGE0}③vectors.asm。.title "v

温馨提示

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

最新文档

评论

0/150

提交评论