DSP课程设计---FIR滤波器设计.docx_第1页
DSP课程设计---FIR滤波器设计.docx_第2页
DSP课程设计---FIR滤波器设计.docx_第3页
DSP课程设计---FIR滤波器设计.docx_第4页
DSP课程设计---FIR滤波器设计.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

dsp课程设计dsp课程设计题 目: fir滤波器设计指导老师:姓 名: 学 号: 专业年级: 电 信 08院 系: 电气信息学院西南石油大学2012年01月12日目录一设计题目:fir滤波器设计1二设计要求11.fir滤波器设计要求12.利用matlab计算滤波器系数1三功能描述11.部分语句说明12.指定存储器13.汇编程序部分说明:1四算法特点11.fir的原理及公式12.算法设计1五相应参数计算11.高通滤波器的滤波系数的计算12.滤波器输入信号参数1六编写程序11.源程序12.0807040126.cmd程序13.滤波器系数测试程序14.滤波器输入信号生成程序1七调试过程11.调试前的准备12.matlab的使用13.编写及编译程序14.观察点设置15.运行并观察结果1八运行结果11.运行结果12.输入信号频谱图1九设计心得1一 设计题目:fir滤波器设计二 设计要求1. fir滤波器设计要求设计一个fir低通(或高通、带通)滤波器通带边界频率为1500hz,通带波纹小于1db;阻带边界频率为2000 hz,阻带衰减大于40 db;采样频率为8000 hz.fir滤波器的设计可以用matlab窗函数法进行。2. 利用matlab计算滤波器系数fir(n,wn)例如:round(fir1(16,1500/8000*2)*32768) round(fir1(16,1500/8000*2,high)*32768)可用以下语句看频谱特性,如图41所示为低通滤波特性图41低通滤波特性曲线三 功能描述1. 部分语句说明1).global start,fir设定全局变量。2)coff_fir_start: .sect”coff_fir”。include”zb0807040126.inc”(设定系数文件)。3)k_fir_bffr .set32(滤波阶数)。4)d_filin(存放输入波形)。5)d_filout(存放输出波形)。2. 指定存储器指定ar4为fir_data_p数据寄存器。指定ar6为inbuf_p输入数据寄存器。指定ar7为outbuf_p输出数据寄存器。3. 汇编程序部分说明:1) start部分:程序初始化部分指定寄存器,清空寄存器。2) fir_loop部分:循环调入输入数据,并调用子程序fir进行计算。3) main_end部分:跳转至循环部分。4) fir部分:子程序部分。其中fir_task部分:进行计算并返回计算结果。四 算法特点1. fir的原理及公式1) 滤波器公式:ynn=k=0n2-1hkxn-k+x(n-(n-1+k)n=1,2,32) fir设计原理:根据系数h是偶对称为了简化运算产生如下计算方法如果一个fir滤波有一个冲击响应,h(0,h(1),h(n-1),和想x(n)描 绘的时常滤波你,输出滤波y(n)的n给出以下方程式: yn=k=0n-1h(k)x(n-k)2. 算法设计1. 设n=20,fir滤波器算法设计如下:1.y(n)=h(0)x(20)+h(1)x(19)+,+h(19)x(1)+h(20)x(0)2. ar4,fir_data_par6,inbuf_par7,outbuf_p程序分别用ar4指向fir_data_pc,ar6指向inbuf_p,ar7指向outbuf_p五 相应参数计算1. 低通滤波器的滤波系数的计算round(fir1(20,1750/9600 )*32768)2. 滤波器输入信号参数六 编写程序1. 源程序 .globalstart,fir .mmregscoff_fir_start: .sect coff_fir .include0807040126.inck_fir_bffr .set20d_data_buffer .usectfir_bfr,64fir_dp .usectfir_vars,0d_filin .usectfir_vars,1output .usectfir_vars,1input .usect fir_vars,1d_filout .usectfir_vars,100hstacksize .set 256stack .usect fir_vars,stacksize.asg ar4,fir_data_p .asg ar6,inbuf_p.asg ar7,outbuf_p.asg ar3,outbuf.asgar2,inbuf .sectfir_prog nopstart: stm #stack+stacksize,sp ld#fir_dp,dpstm#d_data_buffer,fir_data_p; rptz a,#k_fir_bffr-1;rc=31stla,*fir_data_p+;stm#d_filin,inbuf_pstm#d_filout,outbuf_p stm#output,outbufstm#input,inbuf stm#100h,bkfir_loop: nop ld*inbuf_p,astl a,*inbufcallfirstha,*outbuf_p+% stha,*outbufmain_end:b fir_loop fir: stm#d_data_buffer,fir_data_pstla,*fir_data_pstm#(d_data_buffer+k_fir_bffr-1),fir_data_p fir_task: rptza,#k_fir_bffr-1 macd*fir_data_p-,coff_fir_start,a ret.end2. 0807040126.cmd程序memory page 0: prog:o= 100h,l= 2000h page 1: data1:o= 2600h, l= 1000h data2:o= 2100h, l= 100h data3:o= 2200h,l= 100h data4:o= 2300h,l= 100h data5:o= 2400h,l= 100h data6:o= 2500h,l= 100hsectionscoff_fir : progpage 0 fir_prog : progpage 0 fir_vars : data1page 1 fir_coff : data2page 1 fir_bfr : data3page 1 3. 滤波器系数测试程序b=round(fir1(20,1750/8000 )*32768)fid=fopen(0807040126.inc,w);fprintf(fid, .word %dn,b);fclose(fid)freqz(b,1,512)4. 滤波器输入信号生成程序i=0:0.4:255;a=round(sin(2*pi*i*7501000/8000)+sin(2*pi*i*3600/8000)*32768/2);fid=fopen(0807040126.dat,w);fprintf(fid,1651 2 0 0 0n);fprintf(fid,%dn,a);fclose(fid)freqz(a,1,512)七 调试过程1. 调试前的准备1) 启动setup并选择芯片。2) 在ccs的安装目录myproject子目录下创建一个文件夹。2. matlab的使用1) 使用matlab工具编写滤波器系数测试程序,生成0807040126.inc文件并保存在0807040126文件夹中。2) 使用matlab工具编写输入信号生成程序,并生成0807040126.dat文件保存在0807040126文件夹中。3. 编写及编译程序1) 选中project菜单中new命令新建一个工程并命名为0807040126。2) 选中file菜单中new-source file命令,并编写源程序,然后以.asm格式保存在0807040126文件夹里。3) 再选中file菜单中new-source file命令,并编写链接程序,然后以.asm格式保存在0807040126文件夹里。4) 选中project菜单中add file to project命令,将以上程序加载到工程目录下5) 编译并链接程序,如果有错就修改,然后再编译链接直到无误为止。4. 观察点设置1) 选中project菜单中new命令新建一个工程并命名为0807040126。2) 设置断点:在标号fir_loop下面的nop语句设置软件断点(toggle breakpoint)探针(toggleprobe point)。3) 选中file菜单中file i/o命令,将会看到file i/o对话框按照下图操作然后选中add probe point再按以前的试验方法操作。4) 打开观察窗口选择菜单“view”、“graph”、“time/frequency”按照下面所示操作:地址分别为:input和output,buffersize:1,display data size:200;dsp data type:16-bit signed integer;sampling rate:1hz。5. 运行并观察结果八 运行结果1. 运行结果2. 输入信号频谱图九 设计心得1. 由于使用matlab工具较少,对matlab编程不熟练。2. 在程序编译过程中,常常在第3)步出现错误,经仔细分析是生成0807040126.inc文件时以及编译时工程没有自动导入0807040126.inc文件有关。3. 在编写程序过程中

温馨提示

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

评论

0/150

提交评论