DSP课程设计报告—刘雅琪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计的目的和要求
1.1课程设计目的:
本课程是DSP技术类课程配套的课程设计,要求学生通过高级语言或汇编语言编程实现较复杂的功能。通过课程设计,使学生加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
1.2课程设计要求
1、认真查阅资料
2、课程设计前认真预习
3、遵守课程设计时间安排
4、认真保质保量完成设计要求
5、认真书写报告
二、系统功能介绍及总体设计方案
2.1 功能介绍
随着信息技术和计算机技术的飞速发展,数字信号处理技术在众多领域得到广泛应用。数字滤波器由于其精度高、稳定性好、使用灵活等优点,广泛应用在各种数字信号处理领域。数字滤波器根据冲击响应函数的时域特性,可以分为FIR(有限长冲激响应滤波器)和IIR(无限长冲激响应滤波器) 。FIR 滤波器与IIR 滤波器相比,具有严格的线性相位,幅度特性可任意等优点。而且, FIR 滤波器的单位抽样响应是有限长的,故一定是稳定的,他又可以用快速傅里叶变换( FFT)算法来实现过滤信号,可大大提高运算效率。
本课程设计的是一个等波纹FIR 低通滤波器,其具体参数为:采样频率
s F =1000Hz ,通带频率pass F =150Hz 截止频率stop F =250Hz ,通带衰减pass A =0.5dB 阻带衰减stop A =80dB 。
2.2 总体设计方案:
先进行Matlab 程序设计产生待滤波数据(借助设计工具FDATOOL 产生设计
系数),将其导入CCS ,在CCS 上进行仿真调试运行,得到了输入和输出的波形及
其频谱。
图1 总体设计框图
三、主要设计内容和步骤 3.1 FIR 数字滤波器的原理分析
3.1.1 FIR 数字滤波器
数字滤波器原理一般具有如下差分方程
1
1
()()()N N k k k k y n a x n k b y n k --===-+-∑∑ (l)
式中()x n 为输入序列,()y n 为输出序列,k a 和k b 为滤波器系数,N 是滤波器阶数。当所有的k b 均为零,则有 1
0()()N k k y n a x n k -==-∑ (2)
(2)式是FIR 滤波器的差分方程,其一般形式为
1
0()()N k k y n h x n k -==-∑ (3)
对(3)式进行z 变换,整理后可得FIR 滤波器的传递函数
1
()()()()N k k Y z H z h k z X z --==∑ FIR 的直接型结构:
图2 FIR 的直接型结构
FIR 滤波器最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位冲激响应()h n 是一个有限长序列。如果()h n 是实数,且满足偶对称或奇对称的条件,即()h n (1)h N n =--或()(1)h n h N n =---,则滤波器具有线性相位特性。偶对称线性相位FIR 滤波器(N 为偶数)的差分方程表达式为:
21
[()(1)]N i
i y a x n i x n N i -==
-+-++∑
线性相位FIR 滤波器是用得最多的FIR 滤波器。
FIR 滤波器不断地对输入样本()x n 延时后,再作乘法累加算法,将滤波结果
()y n 输出,因此FIR 滤波算法实际上是一种乘法累加运算。在数字滤波器中,FIR
滤波器的最主要特点是没有反馈回路,故不存在不稳定的问题。同时可以在随意设置幅度特性的同时,保证精确无误的线性相位。稳定的线性相位特性是FIR 滤波器的突出优点。
3.1.2 系数对称的FIR 滤波器
对于系数对称的FIR 滤波器,由于其具有线性相位特性,因此应用很广,特别是对相位失真要求很高的场合,如调制解调器(MODEM )。
一个N=8的FIR 滤波器,若()(1)a n a N n =--,就是对称FIR 滤波器,其输出方程为:
01233210()()(1)(2)(3)(4)(5)(6)(6)
y n a x n a x n a x n a x n a x n a x n a x n a x n =+-+-+-+-+-+-+-总共有8次乘法和7次加法。如果改写成:
0123()[()(7)][(1)(6)][(2)(5)][(3)(4)]
y n a x n x n a x n x n a x n x n a x n x n =+-+-+-+-+-+-+-则变成4次乘法和7次加法。可见乘法运算的次数减少了一半。这是对称FIR 的有一个优点。
对称FIR 滤波器的C54x 实现的要点
(1) 在数据存储区中开辟两个循环缓冲区,New 循环缓冲区中存放N/2=4
个新数据;Old 循环缓冲区中存放老数据。循环缓冲区的长度为N/2。
数据存储器
New 循环
缓
冲区
Old 循环缓冲区
程序存储器
系数表
80h 81h 88h 82h 83h
89h 8Ah 8Bh
AR2
AR3
COEF
图3
(2)设置循环缓冲区指针,AR2指向中最新的数据,AR3指向中最老的数据。 (3)在程序存储器中设置系数表。
(4)(2)(3)AR AR AH +→(累加器A 的高位) (2)12AR AR -→ (3)13AR AR -→
(5)将累加器B 清0,重复执行4次(i=0,1,2,……) ()AH *系数i a ()B B +→ 系数指针(PAR )加1
(2)(3)AR AR AH +→ AR2和AR3减1
(6)保存和输出结果(结果在BH 中)
(7)修正数据指针,让AR2和AR3分别指向New 缓冲区中最新的数据和Old 缓冲区中最老的数据。
(8)用New 缓冲区中最老的数据替代Old 缓冲区中最老的数据。Old 缓冲区指针减1。
(9)输入一个新数据替代New 缓冲区中最老的数据。
重复执行第(4)~(9)步
3.1.3 关键指令
在编程中要用到FIRS (系数对称有限冲激响应滤波器)指令,其操作如下: FIRS Xmem,Ymem,Pmad
高地址
低地址