当前位置:文档之家› 基于DSP的FIR滤波器实验讲解

基于DSP的FIR滤波器实验讲解

基于DSP的FIR滤波器实验讲解
基于DSP的FIR滤波器实验讲解

课程设计报告

题 目 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;打开两个脚本文件

相关主题
文本预览
相关文档 最新文档