课程设计报告
题 目 FIR
滤波器的实验
课 程 名 称 数字信号处理课程设计 院 部 名 称 电子信息工程学院 专 业 电子信息工程 班 级 学 生 姓 名 学 号 课程设计地点 课程设计学时 40 指 导 教 师 胡国兵
金陵科技学院教务处制
FIR滤波器的实验
一、摘要(所进行设计工作的主旨、缘起、目的,设计工作的主要内容、过程,采用的方法及取得的成果。关键字(key words):一般3~5个,最能代表报告内容特征,或在报告起关键作用,最能说明问题的词组)
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实是运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
关键字:数字滤波器、可编程、高速运行
二、目录
1、摘要 (2)
2、目录 (3)
3、前言 (4)
4、正文 (5)
4.1、设计理论 (5)
4.2、程序分析 (11)
4.3、设计步骤 (14)
5、问题与心得 (24)
5.1、实验问题 (24)
5.2、心得体会 (25)
6、参考文献 (26)
三、前言(说明本次课程设计课题的意义,本课题相关技术特点,拟采用的方案或路线)
在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音处理、图像处理、模式识别、频谱分析等应用中的基本处理算法。与模拟滤波相比,数字滤波具有很突出的优点,例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波无法克服的电压飘移、温度飘移和噪声等问题;用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。用可编程DSP芯片可通过修改滤波器的参数十分方便的改变滤波器的特性。
数字滤波器是DSP的基本应用,分为有限冲激响应滤波器FIR和无限冲激响应滤波器IIR。本设计选用TMS320C54x作为DSP处理芯片,在CCS软件中编程,并导入Matlab生成的待滤波数据、系数,实现FIR滤波器和IIR滤波器的设计,并将CCS仿真结果与Matlab 相比较进行验证。
四、正文(包含所进行设计的整体内容)
1.设计理论
ⅰ.FIR滤波器的特点
FIR滤波器主要采用非递归结构,因而从理论上以及实际的有限精度的运算中,都是稳定的;可以得到严格的线性相位;可采用快速傅利叶变换算法;
一般没有现成设计公式,窗函数法只给出窗函数的计算公式,计算通带、阻带
衰减仍无显示表达式。
ⅱ.FIR滤波器的DSP实现
(1)用线性缓冲区法实现z-1
数据存储器数据存储器数据存储器
线性缓冲区顶部PORTR→ PORTR→
↑ ↑ ↑
*ARx- *ARx- *ARx-
N=6的线性缓冲区存存储器图
(2)用循环缓冲区法实现z-1
数据存储器数据存储器数据存储器
循环缓冲区顶部←ARx
↓
←ARx 循环缓冲区底部←ARx ↓
↓
N=8的循环缓冲区存储器图
ⅲ.FIR滤波器的实现方法
(1)用线性缓冲区和直接寻址方法实现FIR滤波器
〖例7-1〗N=5,y(n)=h0x(n)+h1x(n-1)+h2x(n-2)+h3x(n-3)+h4x(n-4)
在数据存储器中存放系数h0~h4,并设置线性缓冲区存放输入数据,如图所示:
数据存储器
y
XN
XNM2
XNM3
XNM4
H0
H1
H2
H3
H4
直接寻址线性缓冲区数据分配
FIR滤波器的输出
(2)用线性缓冲区和间接寻址方法实现FIR滤波器
〖例7-2〗N=5,y(n)=h0x(n)+h1x(n-1)+h2x(n-2)+h3x(n-3)+h4x(n-4)
在数据存储器中存放系数h0~h4,并设置线性缓冲区存放输入数据,如图所示,利用AR1和AR2分别作为间接寻址线性缓冲区和系数区的辅助寄存器。
数据存储器
y
x
AR1→
h
AR2→
FIR滤波器的输出
(3)用线性缓冲区和带移位双操作数寻址方法实现FIR滤波器〖例7-3〗N=5,y(n)=h0x(n)+h1x(n-1)+h2x(n-2)+h3x(n-3)+h4x(n-4)
数据存储器
x 程序存储器
PAR→COEF
AR1→
(4)用循环缓冲区和双操作数寻址方法实现FIR滤波器
〖例7-4〗N=80,,存放h0~h79的系数表以及存放数据的循环缓冲区
均设在DARAM中,如图所示。
数据存储器
y 60h
数据存储器
xn 80h h 100h
81h 101h
102h
103h
104h
105h AR3→
14fh
cfh AR4→
(5)系数对称FIR滤波器的实现方法
数据存储器
New循环缓冲区Old循环缓冲区
80h
←AR2 88h
81h 89h 82h 8Ah
83h 8Bh
←AR3
新旧缓冲区对比
程序存储器
系数表
COEF 低地址
高地址
FIR滤波器单位脉冲响应
输入方波时FIR滤波器的输出
(6)Filter函数的作用
过滤一维数字滤波器。Y=filter(B,A,X)用向量A和B所描述的过滤器来过滤向量X中的数据,以创建过滤后的数据。输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子,A为分母。整个滤波过程是通过下面差分方程实现的:
a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1)
- ... - a(na+1)*y(n-na)
2.程序分析(对每一程序逐一分析,CMD文件也要解释)包含主程序流程图、各子程序的流程图、存储器的分配说明、关键函数或子程序、关键汇编语句的语法说明
● fir.m
● fir.asm
● fir.CMD
3.设计步骤(详细描述,给出主要步骤的界面,如FDATOOL的界面、CCS 中的整体界面、以及一些关键的窗口截图、存储器的分配图。)
(1)、设计出线性相位FIR滤波器的参数如下:
●滤波器名称:带通滤波器
●采样频率:Fs=21KHz
●通带: 2.5KHz~4.5KHz
●过渡带: 2.5KHz~3.1KHz,3.9KHz~4.5KHz
●带内波动:<0.8dB
●阻带衰减:-68dB以下
●滤波器级数:N=75
●滤波器系数(偶对称,只需列出前一半系数):
12 -43 -79 -48 53 111 12 -177 -225 6 321 348 -22 -433 -419
34 433 357 -34 -236 -90 18 -212 -418 9 899 1138 -37 -1728
-1962 51 2539 2724 -43 -3147 -3250 17 3405
(2)、实验步骤
●打开MATLAB,点击file下的open;打开fir.m文件;
●点击右下角start ->Toolboxes->Filter Design HDL Coder->打开lter Design &Analysis Tool (fdatool)
●根据.m文件设置参数,设置完点击Design Fitder
●点击file下的export,导出滤波器系数
●运行刚开始打开的.m文件,生成波形图
●点击Targets->ccs->Export as->Signed 16 bit integer->Generate,生成.h文件并
修改.h文件
●打开Setup CCS,选择C5402Device芯片,保存后关闭
●打开CCS,新建Project ,并保存到自己的文件夹内,右击新建的工程,然后点击Add Files to Project;打开两个脚本文件