DSP课程设计报告FIR滤波器设计Word文档下载推荐.docx
《DSP课程设计报告FIR滤波器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DSP课程设计报告FIR滤波器设计Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
1.2设计流程4
第二章课程设计实现4
2.1功能描述4
2.2算法研究4
2.3参数计算5
2.3.1利用Matlab计算滤波系数5
2.3.2编写滤波器输入信号程序6
2.4编写源程序6
2.4.1汇编源程序“.asm”文件的编写6
2.4.2链接命令文件“.cmd”的编写8
2.5调试过程8
2.5.1调试前的准备8
2.5.2.inc和.dat的使用8
2.5.3编写及编译程序8
2.5.4观察点设置9
2.6运行并观察结果10
第三章课程设计总结12
参考文献12
引言
随着信息与数字技术的发展,数字信号处理已经成为当今极其重要而学科与技术领域之一。
它在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理的基本方法中,通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理。
其中滤波是应用非常广泛的一个环节,数字滤波器的理论和相关设计也一直都是人们研究的重点之一。
FIR滤波器的是非递归的,稳定性好,精度高;
更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特征。
因此,它在高保真的信号处理,如数字音频、图像处理、数据传输和生物医学等领域得到广泛应用。
在数字信号处理中,滤波占有极其重要的地位。
数字滤波是语音信号处理、图像处理、模式识别、频谱分析等应用的基本处理算法。
用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。
本次课程设计的是FIR低通滤波器,首先运用MATLAB产生滤波系数,再用DSP仿真软件CCS进行仿真,观察输入输出,看是否符合低通滤波器的功能。
第一章课程设计要求及流程
1.1FIR滤波器设计要求
设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB;
阻带边界频率为2000Hz,阻带衰减大于40dB;
采样频率为10000Hz,滤波器阶数为16。
FIR滤波器的设计也可以用MATLAB窗函数法进行。
1.2设计流程
设计流程如图1。
图1设计流程图
第二章课程设计实现
2.1功能描述
低通滤波器是允许低于截至频率的信号经过,但高于截止频率的信号不能经过的电子滤波安装。
2.2算法研究
FIR的原理及公式
FIR设计原理:
如果一个FIR滤波有一个冲激响应,h(0),h
(1),…,h(N-1),和x(n)描绘输入的时常滤波n,输出滤波y(n)的n给出以下方程式:
Y(n)=h(0)x(n)+h
(1)x(n-1)+h
(2)x(n-2)+…+h(N-1)x[n-(n-1)]
N阶有限冲激响应滤波器(FIR)公式:
Y(n)=
N=0,1,2,3…
2.3参数计算
2.3.1利用Matlab计算滤波系数
滤波器阶数为16阶,截止频率1500HZ,采样频率10000HZ。
2.3.2编写滤波器输入信号程序
因为截止频率为1500Hz,所以输入信号应该至少包含两种频率成分的正弦信号,一种信号频率小于1500Hz,一种信号频率大于1500Hz。
利用Matlab生成滤波器输入信号程序“.inc”文件和“.dat”文件。
2.4编写源程序
2.4.1汇编源程序“.asm”文件的编写
.globalstart,fir
.mmregs
COFF_FIR_START:
.sect"
coff_fir"
.include"
0127.inc"
K_FIR_BFFR.set20
d_data_buffer.usect"
fir_bfr"
64
FIR_DP.usect"
fir_vars"
0
d_filin.usect"
1
output.usect"
input.usect"
d_filout.usect"
100h
stacksize.set256
stack.usect"
stacksize
.asgAR4,FIR_DATA_P
.asgAR6,INBUF_P
.asgAR7,OUTBUF_P
.asgAR3,OUTBUF
.asgAR2,INBUF
fir_prog"
nop
start:
stm#stack+stacksize,SP
LD#FIR_DP,DP
STM#d_data_buffer,FIR_DATA_P;
RPTZA,#K_FIR_BFFR-1;
RC=31
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
LD*INBUF_P,A
STLA,*INBUF
CALLfir
STHA,*OUTBUF_P+%
STHA,*OUTBUF
main_end:
bfir_loop
fir:
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.4.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:
fir_vars:
DATA1PAGE1
fir_coff:
DATA2PAGE1
fir_bfr:
DATA3PAGE1
2.5调试过程
2.5.1调试前的准备
1)启动SETUP并选择芯片C5402simulator。
2)在CCS的安装目录myproject子目录下创建一个文件夹0127。
2.5.2.inc和.dat的使用
将MATLAB生成的0127.inc文件和0127.dat文件复制到0127文件夹中。
2.5.3编写及编译程序
1)创建工程文件:
在Project菜单中选择New项,在Project中输入0127并保存。
2)编写汇编源程序和链接程序:
在File菜单中选中New-SourceFile,编写源程序,然后以.asm格式保存在0127文件夹里;
再在File菜单中选中New-SourceFile,编写链接程序,然后以.cmd格式保存在0127文件夹里。
3)在工程文件中添加程序文件:
在Project菜单中选中AddFiletoProject…,将以上程序加载到工程目录下。
4)生成和运行程序:
在Project菜单中选中RebuildAll对工程进行编译、汇编和链接(如果有错就修改,然后再编译链接直到无误为止);
在File菜单中选中LoadProgram,在当前目录的Debug目录下选择0127.out并打开,将Build生成的程序加载到DSP中;
在Debug菜单中选中Run,运行该程序。
2.5.4观察点设置
1)设置断点:
在.asm文件中标号为fir_loop下面的Nop语句设置软件断点(Togglebreakpoint)探针(ToggleProbepoint)。
2)在File菜单中选中FileI/O,将会看到FileI/O对话框,按照图2操作然后选中AddProbePoint…再按图3操作。
图2
图3
3)打开观察窗口
选择菜单“View”、“Graph”、“Time/Frequency…”按照图4所示依次操作。
图4
2.6运行并观察结果
输入时域和频域波形如图5,输出时域和频域波形如图6。
从图形可以看出,高于1500Hz的频率成分被滤去,低于1500Hz的频率成分通过,符合截止频率为1500Hz的低通滤波器的特性,达到了设计要求。
图5
图6
第三章课程设计总结
在本次课程设计中,我了解到了数字滤波是信号处理技术中的重要部分,重温了数字滤波器的基本理论知识以及实现它的方法。
复习了MATLAB的相关知识,并且利用MATLAB与CCS设计了低通滤波器,更加熟悉CCS环境下的程序开发方法、调试工具的使用等。
使我将课堂知识与实际运用结合起来,理论联系实际。
在这过程中,我也遇到了很多问题,总是无法正确的显示输入输出波形。
在老师和同学的帮助下,最终找到了问题的所在,原来是滤波器的阶数设置的不合适。
经过多番修改,终于成功完成了本次课程设计。
综合运用模拟电子、数字电子和DSP基本原理等课程中所学的理论知识,合理利用MATLAB去独立完成一个项目的设计,还需要我不断地努力、总结。
本次课程设计对我还是有一定的积极意义的,我将以更加饱满的热情运用所学知识投入到今后的工作和生活中。
参考文献
《DSP原理及应用》邹彦主编电子工业出版社
《DSP技术及应用实验指导书》曹玉英编西南石油大学出版社