基于TMS320VC5402的FIR滤波器设计与实现.docx
- 文档编号:6893877
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:27
- 大小:415.76KB
基于TMS320VC5402的FIR滤波器设计与实现.docx
《基于TMS320VC5402的FIR滤波器设计与实现.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC5402的FIR滤波器设计与实现.docx(27页珍藏版)》请在冰豆网上搜索。
基于TMS320VC5402的FIR滤波器设计与实现
本科生毕业设计(论文)
题目:
基于TMS320VC5402的FIR滤波器设计与实现
教学单位电气信息工程学院
姓名
学号
年级2005级
专业通信工程
指导教师
职称
2009年05月19日
摘要
在信号处理过程中,滤波占有非常重要的地位,数字滤波是数字信号处理的基本方法。
本课题主要是应用TMS320VC5402的DSP芯片进行低通滤波器的设计。
根据FIR数字滤波器的特点,利用窗函数法进行设计,并用MATALAB程序设计语言进行了有效的设计,用DSP汇编语言进行软件编程,对一段音频信号进行低通滤波,并用CCS应用软件进行仿真及调试。
试验结果表明,该设计实现了低通滤波器的滤波功能。
关键词DSP,MATALAB,FIR,数字滤波器
Abstract
Intheprocessofsignalprocessing,filtersplayaveryimportantrole,thedigitalfiltersisthebasicmethodintheprocessofdigitalprocessing.ThemaindesignissuesofthispaperisthedesigningoflowpassfilterwiththeDSPchipofTMS320C5402.AccordingtothecharacteristicsofFIRdigitalfilter,wechoosethewindowfunctiondesignmethodandtheMATALABprogramminglanguagetohaveaneffectivedesigning.WeuseDSPassemblylanguageforsoftwareprogrammingk,andlettheaudiosignalpasssomelow-passfilter,withtheheleofCCSapplicationsoftwaretohavethesimulatinganddebuggingprocess.Theresultshowsthatthedesigningoflow-passfiltermeetstherequirementoflow-passfilterperformance.
KeyWords
DSPMATALABFIRdigitalfilter
第一章引言
一个实际的应用系统中,由于设备或者是外界环境的原因,总存在各种干扰,使信号中混入噪声,譬如音频信号中高频成分使得音乐听起来刺耳,失去了原有悦耳的音质。
为了提高信号质量,可以对信号进行滤波,从信号中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个数字滤波器,滤除噪声,提取有用信号。
1.1设计的意义
数字信号处理是把数字或符号表示的序列,通过计算机或专用处理设备,用数字的方式去处理,以达到更符合人们要求的信号形式。
在许多数字信号处理过程中,如对信号的过滤、检测、预测等都要广泛用到滤波器,在信号处理中,滤波占有十分重要的地位。
所谓数字滤波器是具有某种选择性的器件,网络或以计算机硬件支持的计算程序。
其功能本质是按事先设计好的程序,将一组输入的数字序列通过一定的运算后转变为另一组输出的数字序列,从而改变信号的形式和内容,达到对信号加工或滤波以符合技术指标的要求。
数字滤波是数字信号处理的基本方法。
数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。
在许多现代信号处理过程中,数字滤波器因为其设计灵活,实现方便等特点被人们广泛接受,其中由于有限冲击响应数字滤波器(FIR)设计比较灵活,尤其能易于适应某些特殊的应用,并且易于实现线性相位而得到更广泛的应用。
因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。
用DSP芯片实现低通FIR数字滤波,除了具有精度高,不受环境影响等优点外,由于DSP芯片具有可编程特性,可方便的修改滤波器的参数,从而改变滤波器的特性,十分灵活。
1.2DSP在现代信号处理中的应用
数字信号处理,简称DSP,灵活,精度高,同时强调运算处理的实时性、可靠性。
随着数字化时代的发展,数字信号处理(DSP)已成为众多电子产品的核心技术,它在科研、国防、电信、通信、电子等IT行业中发挥着越来越重要的作用。
它是把数字或符号表示的序列,通过计算机或专用处理设备,用数字的方式去处理,以达到更符合人民要求的信号形式。
在许多数字信号处理过程中,如对信号的过滤、检测、预测等,都要广泛用到滤波器。
数字滤波器的本质是按事先设计好的程序,将一组输入的数字序列通过一定的运算后转变为另一组输出的数字序列,从而改变信号的形式和内容,以达到对信号加工或滤波的目的。
DSP与一般的微处理器相比有很大的区别,它所特有的结构和指令集合为解决复杂的数字信号处理问题提供了便利,例如数字滤波、通信中的解码、语音识别等多方面的应用。
1.3作者的主要工作
查阅大量的科技文献资料,着手理论分析和系统的设计,认真研究用MATLAB设计滤波器的参数的方法,主要是应用DSP汇编语言进行软件编程并对硬件电路进行调试,实现数字滤波器的设计。
第二章系统的总体设计
2.1设计目标
DSP的应用领域非常广泛,在现代电子、通信及自动控制技术中占有重要的地位。
设计的基本要求是通过对一个完整的DSP项目的开发设计,来完成音频信号的实时噪声抑制。
人耳能够听见的声音频率范围为20Hz~20KHz,若我们需要的音频信号中还含有其他频率成分(也在20Hz~20KHz范围内),就会对有用音频信号产生干扰,影响人耳对有用信号的识别,我们称这种干扰为“噪声”。
本课题设计的目标就是要设计基于DSP的数字滤波器,来实现对噪声的抑制。
2.2数字滤波器的总体概述
所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
因此,数字滤波的概念和模拟滤波相同,只是信号的形式和实现滤波方法不同。
正因为有该不同点,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。
此外,数字滤波还具有很多突出的优点,如:
它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波无法克服的电压漂移、温度漂移和噪声等问题。
如果处理的是模拟信号,可通过A/DC和D/AC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。
图1.滤波系统框图
数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限脉冲响应IIR(infiniteimpulseresponse)滤波器和有限脉冲响应FIR(finiteimpulseresponse)滤波器。
其中FIR滤波器具有以下优点:
①具有严格的线性相位,同时又具有任意的幅度特性;②单位样值响应是有限长的,因而系统一定是稳定的;③可以用快速傅里叶变换(FFT)算法来实现FIR滤波,从而可大大提高运算效率。
2.3FIR数字滤波器
有限长单位脉冲响应数字滤波器FIRDF(FiniteImpulseResponseDigitalFilter)的最大优点是可以实现相位滤波。
无失真传输与处理的条件是在信号的有效频谱范围内系统幅频响应为常数,相频响应为频率的线性函数,即具有线性相位。
在数字语音通信和图像传输与处理等应用场合都要求滤波器具有线性相位,而且FIR滤波器是全零点滤波器,硬件和软件实现结构简单,不用考虑稳定性问题,因此FIR滤波器在数字信号处理领域得到了很广泛的应用。
数字滤波器一般可用如下的差分方程来描述:
(1)
其中,x(n)为输入序列,y(n)为输出序列,
和
为滤波器系数,N是滤波器的阶数。
若上式中所有的
均为零,则有
这就是FIR滤波器的差分方程,一般地,将其表示为:
(2)
对上式进行z变换得到FIR滤波器的传递函数为:
(3)
由(3)式便可画出滤波器的结构图。
图2.FIR数字滤波器直接实现形式
F1R滤波器的设计方法主要是基于逼近理想频率响应特性的几种方法,有窗函数法,频率取样设计法和切比雪夫等波纹逼近法,其中窗函数法是基本而有效的设计方法。
窗函数设计法是从时域出发的一种设计法,其基本思想是要选取某一适合的理想频率特性选择性滤波器,然后将它的脉冲响应截断以得到一个线性相位和因果的FIR滤波器。
因此,这种方法的重点在于选择某种恰当的窗函数和一种合适的理想滤波器。
设所希望得到的滤波器的理想响应为:
(4)
那么FIR滤波器的设计就是在于寻找一个传递函数:
去逼近
。
设
(
是与
相对应的单位脉冲响应),由于
的矩形频率特性,故
一定是无限长的序列,而且是非因果的。
我们要设计的FIR滤波器其
必然是有限长的,所以要用有限长的
来逼近无限长的
,最有效的方法是截断
,后者用一个有限长的窗口函数序列
来截取
,即:
=
。
因而,窗口函数序列的形状及长度选择很关键。
常有的窗函数有矩形窗、巴特里特(BARTLETr)窗、汉宁(HANNING)窗、哈明(HAMMING)窗、布莱克曼(BLAcKMAN)窗、凯赛(KAISER)窗。
在设计过程中,可由所设计滤波器的过渡带宽和阻带最小衰减的要求选定窗函数的形状。
2.4用MATLAB设计低通FIR滤波器
FIR滤波器的设计可用高级语言,如C语言实现,也可采用MATLAB的数字信号处理软件包提供的专用函数来直接求取FIR滤波器系数。
MATLABS是1984年由美国MathWorks公司推出的一种设计软件,该软件具有使用简单,方便,易编程,语言简练,函数库可任意扩充,采用全新的数据类型和面向对象编程等特点,同时具有强大的数值分析,矩阵运算,图形绘制,数据处理等功能。
随着MATLAB软件的信号处理工具箱的推出,如今的MATLAB已经成为信号与信息处理,特别是数字信号处理(DSP)应用中分析与仿真设计的主要工具。
传统的滤波器分析与设计大多使用繁琐的公式进行计算,改变参数后需要重新运算,因而在分析与设计滤波器,尤其是高阶滤波器时,其工作量特别大,而利用MATLAB信号处理工具箱可以快速而有效地实现数字滤波器的分析和设计。
在MATLAB中,提供了几个设计滤波器的函数。
其中一个采用窗函数设计方法的函数FIRl,该函数可用来设计线性相位的低通、高通、带通和带阻等特性的滤波器,调用格式为:
b=firl(n,wn)或b=firl(n,Wn,Window),n为滤波器阶数,wn是0到1之间的数,l对应采样频率,Window为窗函数类型。
由低通滤波器的技术指标,选择窗函数为海明窗。
FIRl缺省的窗函数为海明窗,可直接调用该函数。
MATLAB脚本如下:
wp=0.4*pi;ws=O.6*pi;wp,ws是计算所得
N=ceil(6.6*pi/(ws-wp))计算滤波器的阶数
N=33滤波器为34阶
wn=0.4:
b=firl(n,wII);
freqz(b,1);
2.5FIR滤波器的DSP实现
TMS320VC5402有很强的数据处理功能,带数据移动的乘/累加指令MACD在循环执行时程序地址寄存器中的程序存储器地址执行加1操作。
一旦循环流水线启动,该指令就变为单周期指令,MACD指令和TMS320VC5402片内较大的RAM(16k)空间使滤波器的每个滤波样值的计算可在一个周期内完成。
此外,由于TMS320VC5402是16位定点处理器,在进行汇编程序设计时,FIR滤波器的系数需要采用Q15格式,即将上述求得的数据转化为Q15定点格式
由
可知,FIR滤波器的冲激响应为
表示滤波器在
时刻的输入,则
时刻的输出为
这是一个乘、加的过程,可以使用DSP中的MAC指令实现该运算,图3说明了使用循环寻址实现FIR滤波器的方法。
为了能正确使用循环寻址,必须先初始化BK,块长为N。
同时,数据缓冲区和冲激响应(FIR滤波器的系数)的开始地址必须是大于N的2的最小幂的倍数。
例如,当N=11时,大于N的最小2的幂为16,则数据缓冲区的第一位地址应该是16的倍数,因此数据缓冲区起始地址的最低4位必须是0.
图3.FIR滤波器存储器里的数据存储方式
在图3中,滤波系数指针初始化时指向
,经过一次FIR滤波计算后,在循环寻址的作用下,仍然指向
,而数据缓冲区指针指向的是需要更新的数据,如
。
在写入新数据并完成FIR运算后,该指针指向
,所以使用循环寻址可以方便的完成滤波窗口数据的自动更新。
2.6设计方法
一个典型的数字信号处理系统如图4所示
图4.典型的数字信号处理系统
DSP设计基本流程图如图5所示,
图5.DSP设计基本流程图
总的来说整个设计可以经过一下七步:
第一步确定方案第二步器件选择
第三步原理图设计第四步PCB设计
第五步硬件焊接测试第六步软件调试
第七步测试收验
第三章系统的硬件设计
DSP系统的硬件设计又成为目标板设计,是在考虑算法需求、成本、体积和功耗核算的基础上完成的。
硬件电路的设计可以分为两部分,第一步完成DSP最小系统的设计,第二步增加必要的外围器件。
3.1DSP最小系统的设计
DSP最小系统设计作为DSP硬件开发的基础,在整个DSP设计过程中显得非常重要。
最小系统的组成应该包括DSP,电源,时钟,JTAG仿真器接口,复位电路这五个部分。
3.1.1DSP芯片的选择
该方案选择了TI公司的TMS320VC5402芯片
为了保证芯片能正常稳定的工作,需要对’C5402的引脚进行配置。
用4.7k电阻上拉到高电位,使引脚置为逻辑1;或将引脚直接接地,置为逻辑0。
为了保证用户编写的程序能够从外部ROM引导到DSP片内存储器中,DSP芯片应设置为计算机方式,MP/MC引脚应下拉接地,置为逻辑0;为了避免DSP在程序运行中出现不正确的跳转,应将引脚INT0~INT3、NMI和BIO上拉为1,置为逻辑1;为了防止DSP出现意外停止响应和额外插入等待周期,HOLD和READY引脚上拉为1,置为逻辑1;时钟电路采用内部时钟源,时钟模式设置为1/2。
时钟模式引脚CLKMD1、CLKMD2、CLKMD3上拉置逻辑1,而时钟引脚X1和X2/CLKIN外接晶体。
TMS320VC5402的基本引脚连接如图6
图6.TMS320VC5402的基本引脚连接图
3.1.2电源电路的设计
TMS320VC5402芯片采用双电源供电方式,以获得更好的电源性能,其工作电压分别为3.3V和1.8V,其中3.3V为I/O电源
主要共I/O接口使用,通常情况下可直接与外部低压器件进行接口。
TI公司的电源芯片TPS73HD318能提供固定电压的双电源,其输出电压分别为3.3V和1.8V,每路电源的最大输出电流为750mA,并且带有宽度为200ms的低电平复位脉冲,可直接接到DSP芯片的复位端。
图7.TPS73HD318芯片组成的双电源应用电路
3.1.3时钟电路的设计
时钟电路用来为’C54x芯片提供时钟信号,由一个内部振荡器和一个锁相环PLL组成,可通过芯片内部的晶体振荡器或外部的时钟电路驱动。
TMS320VC5402有两种时钟电路连接方式,一种是使用外部时钟源的时钟信号。
另一种方法是利用DSP芯片内部的振荡器构成时钟电路。
但是考虑到ADC/DAC也需要时钟,可以采用外部时钟源(有源晶振),即第一种方案进行设计。
3.1.4复位电路的设计
TMS320VC5402的复位输入引脚RS为处理器提供了一种硬件初始化的方法,它是一种不可屏蔽的外部中断,可在任何时候对TMS320VC5402进行复位。
当系统上电后,RS引脚应至少保持5个时钟周期稳定的低电平,以确保数据、地址和控制线的正确配置。
TMS320VC5402的复位分为软件复位和硬件复位两种。
软件复位是通过指令方式实现芯片的复位,而硬件复位是通过硬件电路实现复位的。
在硬件复位中有以下几种方法:
(1)上电复位电路
(2)手动复位电路
(3)自动复位电路
因为TPS73HD318可以提供上电复位,因此本设计采用手动复位。
3.1.5JTAG仿真器接口设计
JTAG是PC机下载程序和参看DSP状态的通道,在设计DSP系统电路板上是一个14引脚的插座,接口连接关系如图13所示
图8.TAG与DSP的连接
3.2外围功能电路的设计
最小系统设计完成之后,就应该增加外围功能电路。
要实现音频信号的采集和播放,自然少不了ADC和DAC,本设计选择了TI公司的TLV320AIC23.一个嵌入式系统,总是可以在调试完成之后脱离PC机运行,所以我们还应该考虑增加一个存储器用来存放DSP程序,这个存储器要求掉电之后仍然能保存其中的内容,并且要方便读取和改写,可以选择39VF400A,可以直接和DSP相连。
AIC23是TI公司推出的一款高性能的立体声音频Codec芯片,AIC23内置耳机输出放大器,支持MIC和LINEIN两种输入方式,且对输入和输出都具有可编程增益调节,针对音频领域的应用,该芯片高度集成了模拟电路功能。
AIC23的模数转换(A/D)和数模转换(D/A)部件高度集成在芯片内部,在内部集成了高采样率的数字内插滤波器。
AIC23还具有很低的能耗。
由于具有上述优点,使得AIC23可以很好地应用在各种数字音频领域。
图9.C5402与AIC23的硬件连接接口原理图
TMS320VC5402具有2个多通道缓冲串口McBSP,即McBSP0和McBSP1。
C5402的多通道缓冲串口McBSP可以配置为SPI总线接口,其串行数据传输格式与AIC的DSP模式兼容,因此C5402与AIC23之间的接口设计非常灵活。
在C5402与AIC23的接口设计中,McBSP1以SPI接口方式与AIC23的控制接口相连,负责对AIC23内部寄存器进行配置。
McBSP1设定为主动模式,不接收数据;McBSP0负责与AIC23的数字音频接口进行数据交换,它工作在从动模式。
C5402与AIC23的硬件接口原理图如图14所示。
AIC23主时钟频率,A/D和D/A转换器的抽样频率,模拟音频信号由LLINEIN/RLINEIN输入到该芯片,这些参数需要通过McBSP1对AIC23进行配置来实现。
模拟音频信号通过A/D转换、编码后,由数字音频接口传送给DSP的串口McBSP0,并接收DSP处理后的数据,收到的数字音频信号经解码、D/A转换后,从LHPOUT/RHPOUT输出。
基于TMS320VC5402的FIR滤波器系统硬件总体框图如下:
图10.滤波系统总体框图
第四章系统的软件设计
DSP系统的硬件设计之后,软件设计就成为系统设计的关键,一个DSP系统在很大程度上取决于软件设计是否合理与可靠。
4.1软件设计步骤
DSP是用来完成数字信号处理的器件,DSP项目的完成,硬件设计仅仅是30%的工作量,另外70%的工作量都集中在算法设计和软件调试。
对于我们这个课题的设计,主要就是如何实现编程实现FIR滤波器,完成对音频信号噪声的抑制。
设计指标要求通带截止频率3.5KHz,阻带截止频率5.5KHz,通带最大衰减0.1dB,阻带最小衰减40dB,事实上用DSP实现FIR滤波器,设计指标基本上与硬件无关,也就是说我们用同样一套硬件,完全可以实现其他滤波功能,当然必须在ADC采样频率和DSP处理速度限制之内。
主程序流程见图11
主程序段
_c_int00:
initalizeDSP
stm#2020h,pmst;vectortablestart:
0x2000
ssbxintm;closeallint!
(ssbxintm)
ssbxsxm;extendsign!
ssbxfrct;factionmultiply
stm#10h,26h;stopTIMER0!
stm#10h,32h;stopTIMER1!
stm#0ffh,sp;sp=0x0ff
ld#0,dp;dp=0
stm#0ffffh,ifr;clearallit!
n
图11.主程序流程图
调用子程序
CALL_clock
CALL_init_RAM
CALL_init_McBSP1
CALL_init_aic23
CALL_init_McBSP0;initialize
CALL_init_timer
again:
bitfis_new_data,#1;testis_new_data==1?
ccfir,tc;==1,thencallfir!
newADdatainnew_ad(0x64)
nop
bagain
4.1.1DSP初始化
DSP的初始化包括以下步骤:
0.关闭所有可屏蔽中断:
SSBXINTM
1.状态寄存器ST0
2.状态寄存器ST1
3.处理器模式控制寄存器PMST,主要是设置中断向量表的位置
4.软件等待状态寄存器SWWSR
5.组切换控制寄存器BSCR
6.时钟模式寄存器CLKMD,软件设置DSP的实际CPU工作频率
7.设置堆栈SP
DSP初始化流程图如图12所示:
图12.DSP初始化流程图
用软件来设置DSP时钟频率流程图如图13.
图13.设置时钟频率流程图
4.1.2中断向量表初始化
中断矢量表是每个DSP系统必须用到的,对中断矢量表进行初始化是DSP初始化的一个重要的组成部分,正确设置中断矢量包括:
(1)根据DSP芯片对各中断矢量的设置位置编写一个中断向量表程序。
在TMS320VC5402中,要求每个中断矢量占4个字,如果跳转指令不够4个字,可用NOP指令填充,每个NOP占一个字。
(2)设置PMST控制寄存器。
该寄存器的高9位是IPTR,用于设置矢量表的起始地址。
(3)连接时将矢量表重定位到IPTR指定的地址。
4.1.3.定时器初始化
TMS320VC5402内部有两个定时器,定时器1和定时器0.定时器主要由定时寄存器TIM,定时周期寄存器PRD,定时控制寄存器TCR(包括预标定分频系数TDDR,预标定计数器PSC,控制位TRB和TSS等)及相应的逻辑控制电路组成。
其中寄存器TIM,PRD和TCR都是存储器映像寄存器,它们在数据存储器中的地址分别为0024H,0025H,0026H.TIM是一个减一计数器,PRD用来存放定时时间常数。
TCR中包含定时器的控制位和状态位。
定时器的工作过程是将定时分频系数TDDR和周期数PRD分别加载到TCR和PRD寄存器中,由组合逻辑电路控
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TMS320VC5402 FIR 滤波器 设计 实现