DSP课程设计报告FIR滤波器的设计.docx
- 文档编号:27549752
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:10
- 大小:94.89KB
DSP课程设计报告FIR滤波器的设计.docx
《DSP课程设计报告FIR滤波器的设计.docx》由会员分享,可在线阅读,更多相关《DSP课程设计报告FIR滤波器的设计.docx(10页珍藏版)》请在冰豆网上搜索。
DSP课程设计报告FIR滤波器的设计
本科课程设计报告
课程名称:
DSP原理及应用
设计项目:
FIR滤波器的设计
实验地点:
多学科楼机房
专业班级:
学号:
学生姓名:
指导教师:
2012年1月8日
一、设计目的:
1、掌握数字滤波器的设计过程;
2、了解FIR的原理和特性;
3、熟悉设计FIR数字滤波器的原理和方法;
4、学习FIR滤波器的DSP的实现原理;
5、学习使用CCS的波形观察窗口观察输入/输出信号波形和频谱变化情况。
二、设计内容:
1、通过MATLAB来设计一个低通滤波器,对它进行模拟仿真确定FIR滤波器系数;
2、用DSP汇编语言进行编程,实现FIR运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后波形的变化。
三、设计原理:
FIR数字滤波器是一种非递归系统,其传递函数为:
H(z)=Y(z)/X(z)=∑b(n)z-n
由此可得到系统的差分方程为:
y(n)=∑h(i)x(n-i),其冲击响应h(n)是有限长序列,它其实就是滤波器系数向量b(n),N为FIR滤波器的阶数。
为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)
这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为:
y(n)=∑h(i)x(n-i)+x((N-1-n-i)
应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲击响应序列h(n)的各个参数值。
matlab用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窗,从而得到滤波器的系数。
matlab用fir2函数设计FIR滤波器:
fir2函数用来设计有任意频率响应的各种加窗FIR滤波器。
具体语法如下:
b=fir2(n,f,m)
b=fir2(n,f,m,Window)
b=fir2(n,f,m,npt)
b=fir2(n,f,m,npt,Window)
b=fir2(n,f,m,npt,lap)
b=fir2(n,f,m,nptt,lap,Window)
其中n为滤波器的阶数;f为频率点矢量;m为幅度点矢量;Window用来指定所使用的窗函数类型,默认值为汉明(Hamming)窗;npt用来指定fir2函数对频率响应进行内插的点数;lap用来指定fir2函数在重复频率点附近插入的区域大小,从而得到滤波器的系数。
四、主要参数:
滤波器阶数n为40,截止频率为wp=0.35
ws=0.4
。
五、总体方案设计:
1、由给定的设计参数确定滤波器的系数:
根据给定的设计参数,滤波器系数可由MATLAB中的fir2函数产生,函数调用格式为:
f=[00.350.41];
m=[1100];
b=fir2(39,f,m)
求得的系数为:
b=
Columns1through6
-0.00070.0030.00140.0010-0.0016-0.0038
Columns7through12
-0.00080.00640.0081-0.0030-0.0169-0.0118
Columns13through18
0.01620.03530.0083-0.0515-0.06890.0247
Columns19through24
0.20510.35230.35230.20510.0247-0.0689
Columns25through30
-0.05150.00830.03530.0162-0.0118-0.0169
Columns31through36
-0.00300.00810.0064-0.0008-0.0038-0.0016
Columns37through40
0.00100.00140.0003-0.0007
2、用CCS进行汇编编程,实现FIR滤波器滤波。
六、源程序:
.title"FIR.ASM"
.mmregs
.bssy,1
K_FIR_BFFR.set40
PA0.set0
PA1.set1
FIR_COFF.usect"FIR_COFF",40;定义数据存储空间
D_DATA_BUFFER.usect"FIR_BFR",40;定义数据存储空间
.data
COFF_FIR_START:
.word-7*32768/10000,3*32768/10000;b0,b1
.word14*32768/10000,10*32768/10000;b2,b3
.word-16*32768/10000,-38*32768/10000;b4,b5
.word-8*32768/10000,64*32768/10000;b6,b7
.word81*32768/10000,-30*32768/10000;b8,b9
.word-169*32768/10000,-118*32768/10000;b10,b11
.word162*32768/10000,353*32768/10000;b12,b13
.word83*32768/10000,-515*32768/10000;b14,b15
.word-689*32768/10000,247*32768/10000;b16,b17
.word2051*32768/10000,3523*32768/10000;b18,b19
.word3523*32768/10000,2051*32768/10000;b20,b21
.word247*32768/10000,-689*32768/10000;b22,b23
.word-515*32768/10000,83*32768/10000;b24,b25
.word353*32768/10000,162*32768/10000;b26,b27
.word-118*32768/10000,-169*32768/10000;b28,b29
.word-30*32768/10000,81*32768/10000;b30,b31
.word64*32768/10000,-8*32768/10000;b32,b33
.word-38*32768/10000,-16*32768/10000;b34,b35
.word10*32768/10000,14*32768/10000;b36,b37
.word3*32768/10000,-7*32768/10000;b38,b39
.text
.defFIR_INIT
.defFIR_TASK
FIR_INIT:
SSBXFRCT;设置小数乘法
STM#FIR_COFF,AR5;AR1指向b0单元
RPT#K_FIR_BFFR-1;设置传输次数
MVPD#COFF_FIR_START,*AR5+;系数bi传输至数据区
STM#D_DATA_BUFFER,AR4;D_DATA_BUFFER缓冲区清0
RPTZA,#K_FIR_BFFR-1
STLA,*AR4+
STM#(D_DATA_BUFFER+K_FIR_BFFR-1),AR4
STM#(FIR_COFF+K_FIR_BFFR-1),AR5
STM#-1,AR0;设置双操作数减量
LD#D_DATA_BUFFER,DP;设置页指针
PORTRPA1,@D_DATA_BUFFER;输入x(n)
FIR_TASK:
STM#K_FIR_BFFR,BK
RPTZA,#K_FIR_BFFR-1;重复操作
MAC*AR4+0%,*AR5+0%,A;双操作数乘法-累加
STHA,@y;暂存y(n)
PORTW@y,PA0;输出y(n)
BDFIR_TASK;循环
PORTRPA1,*AR4+0%;输入最新样本,并修正AR3
.end
(命令程序)
vectors.obj
fir.obj
-ofir.obj
-mfir.map
-efir_init
MEMORY
{
PAGE0:
EPROM:
org=0E000Hlen=1000H
VECS:
org=0FF80Hlen=0080H
PAGE1:
SPRAM:
org=0060Hlen=0020H
DARAM:
org=0080Hlen=1380H
}
SECTIONS
{
.text:
>EPROMPAGE0
.vectors:
>VECSPAGE0
.data:
>EPRAMPAGE1
.bss:
>SPRAMPAGE1
FIR_BFR:
align(128){}>DARAMPAGE1
FIR_COFF:
align(128){}>DARAMPAGE1
}
七、实验结果及分析:
(1)输入的时域波形
(2)输入的频域波形
滤波后的输出波形:
(1)时域波形
(2)频域波形
八、设计总结:
经过了两天的课程设计,从查阅资料直到设计完成,这之间让我学到了很多东西。
一开始对DSP这门课程并不是很理解,但是经过设计之后,感觉对它的理解加深了许多,而且对我所学的知识是一种很好的回顾,也让我对所学知识理解更加透彻。
巩固知识的同时,我也掌握了更多一门的软件—CCS,多学会一个软件总是好的,并且以后用到它的地方会很多。
总体而言,课设不仅是对所学知识的回顾,更是对动手实践能力的一种锻炼。
希望以后能更多的接触这类设计,多动手,多学习,为毕业以后步入工作岗位打下坚实的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计 报告 FIR 滤波器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)