当前位置:文档之家› DSP高通滤波器课程设计报告

DSP高通滤波器课程设计报告

D S P课程设计报告
题目:FIR高通滤波器设计
姓名
学号
教学院系
专业年级
指导教师
目录
一、设计题目 (1)
二、设计目标 (1)
三、算法研究与参数计算 (1)
1、FIR的原理和参数生成公式 (1)
2、利用MATLAB计算滤波系数 (1)
3、输入信号参数计算 (2)
四、编写源程序 (3)
五、调试过程 (4)
1、调试前准备 (4)
2、MATLAB的使用 (5)
3、编写及编译程序 (5)
4、设置断点和探针 (5)
5、打开观察窗口 (6)
六、实验结果及分析 (6)
1、输入信号的时域波形和频域波形 (6)
2、输出信号的时域波形和频域波形 (6)
七、设计心得 (7)
一、设计题目
FIR高通滤波器设计
二、设计目标
设计一个FIR高通滤波器,通带边界频率为6000Hz,采样频率为20000Hz。

FIR滤波器的设计用MATLAB窗函数法进行。

三、算法研究与参数计算
1、FIR的原理和参数生成公式
图3-1
2、利用MATLAB计算滤波系数
在MATLAB界面输入图3-2所示程序,可得到滤波系数并生成INC 文件。

图3-2
输入freqz(y,1,512),MATLAB中显示高通滤波器的滤波特性曲线。

如图3-3所示。

图3-3
3、输入信号参数计算
MATLAB中输入图3-4中所示程序,包含两种频率成分的正弦信号,一种信号频率1000Hz,一种信号6000Hz。

图3-4
其频谱特性曲线如图3-5。

图3-5
四、编写源程序
参考资料,编写汇编语言源程序:
HIGHPASS .set 1 ;if you want to use ,please set the value to 1
.global start,fir
.mmregs
COFF_FIR_START: .sect "coff_fir"
.copy "0126.inc"
K_FIR_BFFR .set 64
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 .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
STL A,*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 ;Add Breakpoint & porbe point
LD *INBUF_P,A
STL A,*INBUF
CALL fir
STH A,*OUTBUF_P+%
STH A,*OUTBUF
main_end:
b fir_loop
fir:
; SSBX SXM
; SSBX FRCT
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 A,#K_FIR_BFFR-1
MACD *FIR_DATA_P-,COFF_FIR_START,A
RET
.end
五、调试过程
1、调试前准备
1)启动SETUP并选择芯片。

2)在CCS的安装目录下的myproject的子目录下创建新文件夹,命名1207030126。

2、MATLAB的使用
使用MATLAB生成0126.Inc文件和1207030126.dat文件,保存在1207030126文件夹中。

如图5-1:
图5-1
3、编写及编译程序
1)新建project并命名1207030126。

2)在project中添加0126.asm文件和
0126.cmd文件。

如图5-2。

3)编译并链接程序。

4)设置工程文件,选择菜单“project”的
“build options…”项。

图5-2
5)加载程序。

File—load program
4、设置断点和探针
在标号“fir_loop”下的“NOP”语句处设置软件断点和探针。

选择“file”、“file I/O…”;按照实验程序操作。

5、打开观察窗口
选择菜单“view”、“Graph”、“time/Frea uency…”。

按要求设置。

六、实验结果及分析
1、输入信号的时域波形和频域波形
输入信号的时域波形如图6-1所示,频域波形如图6-2所示。

图6-1
图6-2
这个信号由1000Hz和6000Hz的信号叠加而得。

2、输出信号的时域波形和频域波形
输出信号的时域波形如图6-3所示,频域波形如图6-4所示。

图6-3
图6-4
从输入信号波形和输出信号波形对比看,低频信号(1000Hz)不能顺利通过滤波器,被削减到几乎为0,而高频信号(6000Hz)可以顺利通过。

因此这是一个性能良好的高通滤波器。

七、设计心得
本次我的课程设计是基于窗函数法的FIR数字高通滤波器,由于
数字信号处理课程是上学期学的,再加上自己对MATLAB软件操作不熟练。

导致前期用了很长一段时间查阅相关书籍,重新学习了数字滤波器的相关知识和MATLAB软件的操作方法。

同时也锻炼了文件检索和查找数据手册的能力。

通过本次课程设计,加深了我对数字滤波器理解。

也认识到数字滤波器在实际生活具有广泛的应用。

同时,改变了我对数字信号的看法,原来,枯燥的理论也有很多有趣的应用。

在本次课程设计过程中,发现自己理论知识的薄弱,需要在以后的学习过程中加强。

同时也感谢曹玉英老师的讲解和其他同学的帮助。

相关主题