DSP课程设计-FIR滤波器设计.docx

上传人:龙*** 文档编号:91621 上传时间:2018-07-05 格式:DOCX 页数:9 大小:212.17KB
下载 相关 举报
DSP课程设计-FIR滤波器设计.docx_第1页
第1页 / 共9页
DSP课程设计-FIR滤波器设计.docx_第2页
第2页 / 共9页
DSP课程设计-FIR滤波器设计.docx_第3页
第3页 / 共9页
DSP课程设计-FIR滤波器设计.docx_第4页
第4页 / 共9页
DSP课程设计-FIR滤波器设计.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、DSP 课程设计 题 目 : FIR 滤波器设计 指导老师 : 姓 名 : 学 号 : 专业年级 : 电 信 08 院 系 : 电气信息学院 2012 年 01 月 12 日 DSP 课程设计 1 目录 一 设计题目: FIR 滤波器设计 . 2 二 设计要求 . 2 1. FIR 滤波器设计要求 . 2 2. 利用 MATLAB 计算滤波器系数 . 2 三 功能描述 . 2 1. 部分语句说明 . 2 2. 指定存储器 . 2 3. 汇编程序部分说明: . 2 四 算法特点 . 3 1. FIR 的原理及公式 . 3 2. 算法设计 . 3 五 相应参数计算 . 3 1. 高通滤波器的滤波系

2、数的计算 . 3 2. 滤波器输入信号参数 . 3 六 编写程序 . 4 1. 源程序 . 4 2. 0807040126.cmd 程序 . 5 3. 滤波器系数测试程序 . 5 4. 滤波器输入信号生成程序 . 5 七 调试过程 . 5 1. 调试前的准备 . 6 2. MATLAB 的使用 . 6 3. 编写及编译程序 . 6 4. 观察点设置 . 6 5. 运行并观察结果 . 6 八 运行结果 . 6 1. 运行结果 . 6 2. 输入信号频谱图 . 7 九 设计心得 . 7 DSP 课程设计 2 一 设计题目 : FIR滤波器设计 二 设计要求 1. FIR 滤波器设计 要求 设计一个

3、 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) 可用以下语句看频谱特性,如图 4 1 所示为低通滤波特性 图 4 1 低通滤波特性 曲线 三 功能描述 1. 部分语句说明 1) .global s

4、tart,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 部分:程序初始化部分指定寄存器,清空

5、寄存器。 2) fir_loop 部分:循环调入输入数据,并调用子程序 fir 进行计算。 3) main_end 部分:跳转至循环部分。 4) fir 部分:子程序部分。其中 fir_task 部分:进行计算并返回计算结果 。 DSP 课程设计 3 四 算法特点 1. FIR 的原理及公式 1) 滤波器公式: y() = h(k)x(nk)+ x(n (N 1+k)21=0 N=1,2,3 2) FIR 设计原理: 根据系数 h 是偶对称为了简化运算产生如下计算方法 如果一个 FIR 滤波有一个冲击响应, h(0,h(1), ,h(N-1),和想 x( n)描 绘的时常滤波你,输出滤波 y(

6、 n)的 n 给出以下方程式: () = h(k)x(n k)1=0 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_P AR6,INBUF_P AR7,OUTBUF_P 程序分别用 AR4 指向 FIR_DATA_PC, AR6 指向 INBUF_P,AR7 指向 OUTBUF_P 五 相应参数计算 1. 低通滤波器的滤波系数的计算 round(fir1(20,1750/9600 )*32768) 2. 滤波器输入信号参数 DSP 课程

7、设计 4 六 编写 程序 1. 源程序 .global start,fir .mmregs COFF_FIR_START: .sect “coff_fir“ .include “0807040126.inc“ K_FIR_BFFR .set 20 d_data_buffer .usect “fir_bfr“,64 FIR_DP .usect “fir_vars“,0 d_filin .usect “fir_vars“,1 output .usect “fir_vars“,1 input .usect “fir_vars“,1 d_filout .usect “fir_vars“,100h st

8、acksize .set 256 stack .usect “fir_vars“,stacksize .asg AR4,FIR_DATA_P .asg AR6,INBUF_P .asg AR7,OUTBUF_P .asg AR3,OUTBUF .asg AR2,INBUF .sect “fir_prog“ nop start: stm #stack+stacksize,SP LD #FIR_DP,DP STM #d_data_buffer,FIR_DATA_P; RPTZ A,#K_FIR_BFFR-1;RC=31 STL A,*FIR_DATA_P+; STM #d_filin,INBUF_

9、P STM #d_filout,OUTBUF_P STM #output,OUTBUF STM #input,INBUF STM #100h,BK fir_loop: NOP LD *INBUF_P,A STL A,*INBUF CALL fir STH A,*OUTBUF_P+% STH A,*OUTBUF main_end: b fir_loop fir: DSP 课程设计 5 STM #d_data_buffer,FIR_DATA_P STL A,*FIR_DATA_P STM #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P fir_task: RPTZ

10、 A,#K_FIR_BFFR-1 MACD *FIR_DATA_P-,COFF_FIR_START,A RET .end 2. 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= 100h SECTIONS coff_fir : P

11、ROG PAGE 0 fir_prog : PROG PAGE 0 fir_vars : DATA1 PAGE 1 fir_coff : DATA2 PAGE 1 fir_bfr : DATA3 PAGE 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

12、(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) DSP 课程设计 6 七 调试过程 1. 调试前的准备 1) 启动 SETUP 并选择芯片。 2) 在 CCS 的安装目录 myproject 子目录下创建一个文件夹。 2. MATLAB 的使用 1) 使用 MATLAB 工具 编写 滤波器系数测试程序 ,生成 0807040126.inc 文件并保存在0807040126 文件夹

13、中。 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

14、菜单中 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) 打

15、开观察窗口 选择菜单“ View”、“ Graph”、“ Time/Frequency ”按照下面所示操作 : 地址分别为 : input 和 output,buffersize:1,display data size:200;DSP Data Type:16-bit signed integer;Sampling Rate:1Hz。 5. 运行并观察结果 八 运行结果 1. 运行结果 DSP 课程设计 7 2. 输入信号频谱图 九 设计心得 1. 由于使用 MATLAB 工具较少,对 MATLAB 编程不熟练。 2. 在程序编译过程中,常常在第 3)步出现错误,经仔细分析是生成 0807040126.inc文件时以及编译时工程没有自动导入 0807040126.inc 文件有关 。 3. 在编写程序过程中 将 .include “0807040126.inc“命令搞错经常出现以下错误: .include “0807040126/0807040126.inc“ .include “0807040126/0807040126/0807040126.inc“。 4. 有时候 0807040126.inc 中没 有头文件,因此再将其从探针点导入程序时出现不能正常运行的情况。 5. 经过此次设计,我的动手能力得到了空前提高,加深了对专业知识的理解。 DSP 课程设计 8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。