DSP课程设计FIR滤波器设计说明.docx

上传人:b****5 文档编号:3648752 上传时间:2022-11-24 格式:DOCX 页数:8 大小:129.37KB
下载 相关 举报
DSP课程设计FIR滤波器设计说明.docx_第1页
第1页 / 共8页
DSP课程设计FIR滤波器设计说明.docx_第2页
第2页 / 共8页
DSP课程设计FIR滤波器设计说明.docx_第3页
第3页 / 共8页
DSP课程设计FIR滤波器设计说明.docx_第4页
第4页 / 共8页
DSP课程设计FIR滤波器设计说明.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

DSP课程设计FIR滤波器设计说明.docx

《DSP课程设计FIR滤波器设计说明.docx》由会员分享,可在线阅读,更多相关《DSP课程设计FIR滤波器设计说明.docx(8页珍藏版)》请在冰豆网上搜索。

DSP课程设计FIR滤波器设计说明.docx

DSP课程设计FIR滤波器设计说明

DSP课程设计

 

学院:

专业年级:

:

学号:

课题:

FIR滤波器设计

指导老师:

日期:

2016年7月2日

 

一、设计目标

功能描述:

FIR低通滤波器是滤除掉高于截至频率的信号,容许低于截止频率的信号通过的电子滤波装置,故称低通滤波器。

容:

1)设计FIR低通滤波器

2)使用CCS的simulator进行滤波特性测试

参数:

FIR低通滤波器通带频率为5000Hz,采样频率为20000Hz。

二、算法研究

数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列,FIR滤波器的差分方程为:

对上式进行Z变换得到FIR滤波器的传递函数为:

由上式可以看出,H(z)是

的N-1次多项式,它在z平面有N-1个零点,同时在原点处有N-1个重极点。

N阶滤波器通常采用N个延迟单元、N个加法器与N+1个乘法器,取图中(a)、(b)两种结构。

 

图FIR滤波器的一般结构

因为FIR滤波器的单位抽样响应是有限长的,所以它永远是稳定的。

另外,若对h(n)提出一些约束条件,那么可以很容易地使H(z)具有线性相位,这在信号处理的很多领域是非常重要的。

FIR滤波器的设计任务,是要决定一个转移函数H(z),使它的频率响应满足给定的要求。

这里所说的要求,除了通带频率

、阻带频率及两个带上的最大和最小衰减

外,很重要的一条是保证H(z)具有线性相位。

三、相应参数的计算

1、FIR滤波器的MATLAB实现

MATLAB是一种功能强、效率高、便于进行科学和工程计算的交互式软件包,它集数值分析、矩阵运算、信号处理和图形显示于一体,为用户提供了方便、友好的界面环境。

MATLAB中的工具箱(Toolbox)包含了许多实用程序。

它提供了多种FIR滤波器设计方法。

用fir1函数设计FIR滤波器

fir1函数用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR数字滤波器的设计。

具体语法如下:

b=fir1(n,Wn)

b=fir1(n,Wn,‘ftype’)

b=fir1(n,Wn,Window)

b=fir1(n,Wn,‘ftype’,Window)

其中n为滤波器的阶数;Wn为滤波器的截止频率;ftype为用来决定滤波器的类型,当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器。

Window为用来指定滤波器采用的窗函数类型,Window参数可采用的窗口函数有:

Boxcar,Hanning,Bartlett,Blackman,Kasier和chebwin等,其默认时为Hamming窗,从而得到滤波器的系数。

本课程设计设计低通滤波器,采用b=fir1(n,Wn)。

2、利用MATLAB计算滤波器系数

1)生成.inc文件,通带频率为5000HZ

2)生成.dat文件,输入信号频率分别为2000Hz和8000Hz

四、编写源程序

1).asm程序

.globalstart,fir

.mmregs

COFF_FIR_START:

.sect"coff_fir"

.include"0205\\0205.inc"

K_FIR_BFFR.set64

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

stacksize.set256

stack.usect"fir_vars",stacksize

.asgAR4,FIR_DATA_P

.asgAR6,INBUF_P

.asgAR7,OUTBUF_P

.asgAR3,OUTBUF

.asgAR2,INBUF

.sect"fir_prog"

nop

start:

stm#stack+stacksize,SP

LD#FIR_DP,DP

STM#d_data_buffer,FIR_DATA_P

RPTZA,#K_FIR_BFFR-1

STLA,*FIR_DATA_P+

STM#d_filin,INBUF_P

STM#d_filout,OUTBUF_P

STM#output,OUTBUF

STM#input,INBUF

STM#100h,BK

fir_loop:

NOP;AddBreakpoint&porbepoint

LD*INBUF_P,A

STLA,*INBUF

CALLfir

STHA,*OUTBUF_P+%

STHA,*OUTBUF

main_end:

bfir_loop

fir:

;SSBXSXM

;SSBXFRCT

STM#d_data_buffer,FIR_DATA_P

STLA,*FIR_DATA_P

STM#(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

.end

2).cmd程序

MEMORY

{

PAGE0:

PROG:

o=100h,l=2000h

PAGE1:

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:

{}>PROGPAGE0

fir_prog:

{}>PROGPAGE0

fir_vars:

{}>DATA1PAGE1

fir_coff:

{}>DATA2PAGE1

fir_bfr:

{}>DATA3PAGE1

}

五、调试过程

1.调试前的准备

1)启动SETUP并选择芯片’c5402,关闭启动CCS。

2)在CCS的安装目录myproject子目录下创建一个文件夹0205。

3)使用MATLAB工具编写滤波器系数测试程序,生成0205.inc文件并保存在上述文件夹0205中。

4)使用MATLAB工具编写输入信号生成程序,并生成0205.dat文件保存在上述文件夹0205中。

2.编写及编译程序:

CCS中

1)选中Project菜单中New命令新建一个工程并命名为0205。

2)选中File菜单中New-SourceFile命令,将编写的源程序以.asm格式保存在0205文件夹中。

3)再选中File菜单中New-SourceFile命令,将编写的程序以.cmd格式保存在0205文件夹中。

4)选中Project菜单中AddFiletoProject命令,将以上程序加载到工程目录下。

5)编译并程序,如果有错就修改,然后再编译直到无误为止。

3.观察点设置

1)设置断点:

在标号fir_loop下面的Nop语句设置软件断点(Togglebreakpoint)探针(ToggleProbepoint)。

2)选中File菜单中load program命令,选择Debug中的0205.out 。

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 

5)选择菜单栏Debug中点击Animate可观察到此滤波器的滤波效果。

五、实验结果及分析

通过观察实验结果,可看出高频信号被滤去,低频信号通过(2000Hz信号通过,8000Hz信号被滤去),此滤波器性能良好,设计成功。

 

六、总结与体会

通过这几天的课程设计,我对MATLAB软件和CCS软件的使用有了很大的进步,在课堂上我也使用过CCS进行实验仿真等,但那时极为的不熟悉,步骤条理也不熟悉,一些文件都不知道它的作用,使用中也出现了很多的错误:

 

1.对MATLAB编程不熟练,为了能够体现出滤波效果,.dat中的两个输入信号的频率一个要大于通带截至频率,一个要小于它。

 

2.在生成.inc文件时,程序中.word前的空格会影响CCS测试时文件产生错误。

3.CCS测试时程序中的.inc文件名要与其原文件名相同。

 

4.在进行File I/O设置时,要先加断点和探针。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1