基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx

上传人:b****6 文档编号:19328470 上传时间:2023-01-05 格式:DOCX 页数:16 大小:251.92KB
下载 相关 举报
基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx_第1页
第1页 / 共16页
基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx_第2页
第2页 / 共16页
基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx_第3页
第3页 / 共16页
基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx_第4页
第4页 / 共16页
基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx

《基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

基于TMS320VC5402芯片的IIR数字滤波器设计Word下载.docx

精度高、灵活性大、可靠性高、易于大规模集成、并行处理等。

滤波分为经典滤波和现代滤波。

经典滤波包括FIR滤波和IIR滤波。

随着现代滤波技术发展,线性滤波方法,如Wiener滤波、Kalman滤波和自适应滤波都得到了广泛的研究和应用,同时一些非线性滤波方法,如小波滤波、同态滤波、中值滤波、形态滤波等都是现代信号处理的前言课题。

这些滤波方法不但有重要的理论意义,而且有广阔的应用前景。

2数字滤波器的方案论证

2.1数字滤波器的定义及分类

数字滤波器是指完成信号滤波处理的功能。

其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换的另一组数字量。

它的作用是将有用的信号保留,将对其干扰的信号屏蔽,以完成滤波的功能。

它是通过对采样数据信号进行数学运算处理来达到频域滤波的目的。

数字滤波器具有稳定性高、精度高、灵活性大等突出的优点。

随着数字技术的发展,用数字技术实现滤波器的功能越来越受到大家的注意和广泛的应用。

从数字滤波器的单位冲击响应来看,可以分为两大类:

有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。

滤波器按功能上分可以分为:

低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)。

2.2数字滤波器的实现方法

数字滤波器的实现方法一般有以下几种:

(1)在通用的计算机(如PC)上用软件(如C语言)实现。

这种方法的缺点是速度太慢,不能用于实时系统,主要用于DSP算法的模拟与仿真。

(2)在通用的计算机系统中加上专用的加速处理机实现。

这种方法不便于系统的独立运行。

(3)用通用的单片机实现。

这种方法适用于一些不太复杂的数字信号处理。

(4)用通用的可编程DSP芯片实现。

DSP利用改进的哈佛总线结构,内部有硬件乘法器、累加器,使用流水线结构,具有良好的并行特点,并有专门设计的适用于数字信号处理的指令系统等。

(5)用专用的DSP芯片实现。

在一些特殊的场合,要求的信号处理速度极高,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无须进行编程。

(6)用FPGA等可编程器件来开发数字滤波算法。

使用相关开发工具和VHDL等硬件开发语言,通过软件编程用硬件实现特定的数字滤波算法。

通过比较这些方法可见:

可以采用MATLAB等软件来学习数字滤波器的基本知识,计算数字滤波器的系数和阶数,研究算法的可行性,对数字滤波器进行前期的仿真。

然后,可以采用DSP或FPGA来实现硬件电路。

对于通用的可编程DSP芯片来说,它具有更好的灵活性和实时性。

因此本设计研究的重点集中在利用通用可编程的DSP芯片来实现数字滤波。

2.3IIR与FIR数字滤波器的比较

IIR滤波器系统函数的极点可以位于单位圆内的任何地方,因此可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高。

但因为IIR具有反馈网络,所以其相位是非线性的,此外在设计中要注意系数的选择使其极点均可落在单位圆内,这样就可最大限度的使系统稳定。

FIR滤波器虽可以得到严格的线性相位,但由于FIR滤波器系统函数的极点固定在原点,只能用较高的阶数达到高选择性,对于同样的滤波器设计指标,FIR滤波器所要求的阶数比IIR滤波器高5-10倍,成本较高,信号延时也较大。

鉴于此,我在设计中采用了DSP的IIR数字滤波器。

3IIR数字滤波器的理论分析

3.1IIR数字滤波器结构

N阶无限长单位脉冲响应(IIR)滤波器的脉冲传递函数为:

对应的差分方程为:

其中y(n)由两部分构成:

第一部分

是一个对x(n)的M阶延时链结构,每节延时抽头后加权相加,也即是一个横向结构网络;

第二部分

也是一个N阶延时链的横向结构网络,不过它是对y(n)的延时,因此是一个反馈网络,这种结构称为直接I型,如图1所示:

图1直接I型结构方框图

将上式改写为(当M=N的情况):

由此H(z)可视为分子多项式

与分母多项式

的倒数所构成的两个子系统函数的乘积,这相当于两个子系统的级联。

其中第一个子系统实现零点为:

故得:

其时域表示为:

第二子系统实现极点为:

整理以后可得:

综上所述可以得到如图2所示的实现结构:

图2直接I型的变形结构方框图

如果将图2中相同输出的延迟单元合并成一个,则得到如图3所示的构图,它比上图的延迟单元少了一倍,N阶滤波器只需要N级延迟单元,这是实现N阶滤波器所必须的最少数量的延迟单元。

这种结构称为直接型II,有时将直接型I简称为直接型,将直接型II称为典型型式:

图3直接II型结构方框图

直接型I、II结构的优点是简单直观。

它们的共同缺点是:

系数

对滤波器性能的控制关系不直接,因此调整不方便。

但因为其简单直观,且在IIR滤波器结构中,直接II型结构是最常用的结构,因为这种结构的二阶形式可以作为级联型和并联型结构的基本环节。

所以在本次的设计中我采用了直接II型IIR滤波器的设计结构。

如图4所示:

图4直接II型IIR滤波器

4IIR滤波器的MATLAB辅助设计

4.1IIR数字滤波器设计步骤

IIR数字滤波器设计借助模拟滤波器原型,再将模拟滤波器转换成数字滤波器。

这些过程已经成为一整套成熟的设计程序。

模拟滤波设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询。

因此,充分利用这些已有的资源会给数字滤波器的设计带来很大的方便。

具体在MATLAB中设计IIR数字滤波器的设计步骤如下:

按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;

根据转换后的技术指标使用滤波器选择函数,确定最小阶数N和固有频率Wn;

运用最小阶数N产生模拟低通滤波器原型,运用固有频率把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器。

本设计主要应用产生低通滤波器,运用脉冲响应不变法或双线性不变法把模拟滤波器转换成数字滤波器。

对于脉冲响应不变法,它是将s域内的H(s)转换成z域内的H(z),但是在映射时,S域内不能一一对应到Z域内的单位圆上,因此容易在仿真中易产生混叠现象,影响实验效果。

基于此,本次设计在MATLAB的仿真中优先考虑应用双线性变换法。

MATLAB工具箱提供了几种模拟滤波器的原型产生函数,Butterworth滤波器原型,Chebyshev(I型、II型)滤波器原型、椭圆滤波器原型等不同的模拟滤波器原型,从模拟滤波器向数字滤波器转换的双线性变换法和脉冲响应不变法等方法,模拟IIR数字滤波器阶数选择函数以及数字滤波器直接设计函数等等。

另外,MATLAB信号处理工具箱提供了几个直接设计IIR数字滤波器的函数。

这一整套设计函数给在MATLAB中设计IIR数字滤波器带来了极大的方便。

4.2利用matlab软件设计IIR低通滤波器

IIR低通数字滤波器根据相关技术指标进行matlab仿真,从而计算出相应的传输函数。

其仿真结果结果如图5所示:

图5利用matlab仿真图

根据以上仿真结果及相应的系数和N值,在相关技术指标不变的情况下,我选用了ChebyshevI型双线性变换法。

5IIR滤波器的实现

基于DSP的IIR滤波器的设计包括硬件和软件两部分,硬件部分涉及TMS320VC5402,软件部分为DSP编程。

5.1基于DSP的IIR数字滤波的硬件设计

5.1.1 基于DSP的数字滤波器总体硬件设计方案

TI公司的2000系列和5000系列的DSP都通用型的芯片,考虑到2000系列的DSP多用于控制方面,而5000系列较2000系列具有更高的时钟频率、更低的价格和更加强大的运算功能,所以在数字滤波器系统的设计中采用了TI公司的一款高性能、低功耗的定点DSP:

TMS320VC5402。

该DSP具有较快的运算速度:

运算速度最快可达532MIPS;

采用了低功耗设计方式:

内核电压为1.8V,I/O电压为3.3V。

数字滤波系统的具体方案框图如图6所示:

图6数字滤波器系统方案框图

通常的设计中会采用SV供电并行的ADC(模数转换)和DAC(数模转换)芯片与DSP连接,传输数据过程中会占用总线的时间,而且需要采用多片电平转换器件将SV电平转换为3.3V的逻辑电平。

考虑到TMS320VC5402的片上包含两个McBSP(多通道缓冲串行口)接口,可以将这两个通道模仿实现SPI的时序,因此本设计中采用了SPI接口器件,ADC芯片采用的是TLV1570,实现将需要滤波信号从模拟转换到数字信号的实时采样。

数模转换芯片采用的是TLV5608,实现滤波后的信号从数字信号恢复为所需要的模拟信号。

JTGA口供DSP芯片下载程序调试。

5.1.2TMS320C5402的体系结构

TMS320VC5402处理器在本系列中处于先进水平。

它具有运算速度快,内部存储空间大,外部接口性能好等优点。

所以我选择了技术上比较先进,价格又较便宜的C5402作为硬件开发对象。

下面结合C5402的实际情况,介绍一下该芯片的体系结构。

C5402共有144个引脚,其中有20根地址线AO-A19,16根数据线DO-D15,4个外部可屏蔽引脚INTO#-INT3#和一个不可屏蔽中断引脚BIO#,剩下的引脚可以分成以下几类:

存储器控制引脚,时钟/晶振引脚,多通道缓冲串口引脚,主机接口通讯引脚,电源引脚,初始化和复位引脚,通用输入/输出引脚,以及用于测试的IEEE1149.1标准JTAG口。

5.1.3最小系统的设计

一个DSP系统可分为最小系统设计和外围接口设计两部分。

DSP在必要的工作环境下才能正常工作,构建能支持DSP正常工作的最小系统,包括复位、时钟、电源及JTGA仿真口,FLASH接口设计等。

5.2 基于DSP的IIR数字滤波器的软件设计

5.2.1IIR数字滤波器的数据存储器设计

TMS320C54X定点DSP提供了单周期乘/累加指令MAC和循环寻址方式,使IIR数字滤波器每个样值的计算可以在一个周期内完成。

IIR数字滤波器每个样值的计算就是实现两数组对应项乘积的累加和。

在计算时有前向通道和反馈通道两部分,因此在计算设计时要充分考虑x(n)、y(n)和h(n)系数的存放位置,并正确初始化这两个存储块指针,这样在计算中才能够准确的提取数据,实现乘加运算。

图7是IIR滤波器数据存放和系数表:

图7IIR滤波器数据存放和系数表

在程序设计中,首先将数据放入相应的段中,X数据指针AR2指向X0,同时将H(n)的指针AR1指向B0,利用乘加指令完成前向通道的一次运算;

接着修改指针,AR2指针增1,H(n)的指针AR1减1,依次完成前向通道的乘加运算;

反馈通道应用同样的方法进行乘加。

在程序设计时,可以采用先增益后衰减的方法,亦可采用先衰减后增益的方法。

但是采用先衰减后增益的方式其系统动态范围和鲁棒性较好,因此在设计中采用了后一种方法。

5.2.2 IIR数字滤波器的设计流程

在设计滤波器时首先要有清晰的思路,因此流程图的设计至关重要。

本设计采用的是基于DSP的IIR数字滤波,针对其要完成的功能,对其流程进行了初步规划,如图8所示:

图8IIR数字滤波器设计流程

根据设计流程,通过DSP仿真软件编译出适合参数要求的汇编程序。

运用汇编语言进行程序编写使其具有更好的实时性,此外运用汇编语言编写更有助于以后的设计拓展。

其IIR数字滤波主程序段如下:

……

IIR:

PORTRPA1,*AR2;

从输入端口读入数据

MPY*AR2+0%,*AR4+0%,A;

乘法运算,A=b0×

x(n)

MAC*AR2+0%,*AR4+0%,A;

第1次乘法累加A1=b1*x(n-1)+b0*x(n)

MAC*AR2,*AR4+0%,A;

第2次乘法累加A2=b2*x(n-2)+A1

MAC*AR3+0%,*AR5+0%,A;

第3次乘法累加A3=a1*y(n-2)+A2

第4次乘法累加A4=a2*y(n-2)+A3

MAR*AR5+0%;

修正AR5

STHA,*AR7+;

存储y(n)

PORTW*AR7,PA0;

从输出端口输出y(n)

BDIIR;

循环

利用TMS320C5402实现IIR的程序中应注意以下几点:

(1)数据存放要求。

因为采用MAC指令和循环寻址,所以输入数据和滤波器系数的存放要按照一定的要求。

数据块和系数块都要放在双寻址数据存储区。

(2)循环寻址的使用。

为了使用循环寻址,除了对数据的存放有要求外,先还要设置BK为块长N。

由于使用了循环寻址,数据和系数的指针在操作后以循环的方式增加1。

(3)数据的初始化。

输入数据块要初始化为全0。

这样在运算中不会对输入产生影响。

5.2基于DSP的IIR数字滤波的软件调试

本次设计在调试中出现了许多问题,但经过老师的指导成功的完成了IIR数字滤波,其运行结果如图9、图10所示:

图9利用DSP的IIR数字滤波效果图

(1)

图10利用DSP的IIR数字滤波效果图

(2)

在效果图中,上面波形为DSP实验箱产生的滤波前的效果图,下面波形为进行IIR滤波后的效果图。

从两图的比较可以看出,所设计的IIR滤波器收到了较好的效果,完成了设计要求。

在编写及调试的过程中主要遇到以下问题:

(1)在编写程序的过程中要对所涉及的存储单元进行初始化,这样在数据或是代码段进行汇编时才不会出现问题。

(2)编写程序需要对数据段、代码段、堆栈段进行设置。

要编写相应的.cmd(链接命令文件)文档对其进行合理化的分配空间。

(3)在编写程序时一定要编写相应的中断向量表文件,这样在汇编时才不会出错。

6结束语

通过对本课题的研究,自己从中取得了一些成绩,理论水平也得到了一定的提高,同时也暴露了一些问题:

首先,对一个课题必须要阅读大量的文献和书籍来获得一定的感性认识,然后才能有自己的想法,这是一条必经之路。

其次,理论基础知识很重要,论文涉及了很多的算法,会用到很多基础知识,如果用的时候再去学会浪费时间,因此要在平时注意搜集相关的资料,多学一些有用实用的技术,这样在以后的学习和工作中才能够做到游刃有余。

最后,要有信心,遇到困难要向别人请教,这样可以大大加快研究进程。

以上是我做论文的一些心得体会,这些对我以后的学习会有很大的帮助。

此外,要感谢尊敬的XX老师,本设计是在她的精心指导和关怀下完成的。

X老师在学术上给予我大力帮助和指导,为我创造良好的学习氛围,正是在这种环境下我才能够顺利完成本次设计。

从X老师身上,我懂得了做事要严谨认真、脚踏实地、勤于动脑、勤于动手,这些在以后的工作和生活中将是我所要努力做到的。

特此向XX老师致以最诚挚的谢意!

由于本人的时间和能力有限,本次的开发系统还存在一些不足之处,整个系统还需要进一步完善。

文中也难免有不足之处,恳请老师批评指正。

同时,对评审设计的老师表示衷心的感谢!

参考文献

[1]胡庆钟,李小刚,吴钰淳.TMS320C55XDSP原理、应用和设计.机械工业出版社.2005.10.

[2]王潞钢,陈林康,曾岳南,许贤昶.DSPC2000程序员高手进阶.机械工业出版社.2004.10.

[3]赵红怡.DSP技术与应用实例.电子工业出版社.2003.6.

[4]潘松,黄继业,王国栋.现代DSP技术.西安电子科技大学出版社.2004.5.

[5]丁玉美,高西全.数字信号处理.西安电子科技大学出版社.2006.7.

[6]刘顺兰,吴杰,高西全.数字信号处理.西安电子科技大学出版社.2003.8.

[7]楼顺天,刘小东,李博菡.基于MATLAB7.X的系统分析与设计—信号处理.西安电子科技大学出版社.2005.5.

[8]清源科技.TMS320C54XDSP应用程序设计教程.机械工业出版社.2004.1.

[9]陈学平.Protel2004.人民邮电出版社.2005.9.

[10]基于DSP芯片TMS320VC5402的开发系统设计.数字滤波器算法研究及其在DSP系统中的实现.基于TMS320C5402的数字滤波器及其应用系统的设计与实现.基于MATLAB的IIR数字滤波器设计与仿真.数字信号处理及其matlab实现.中国知库网.

附件

1、IIR数字滤波器源文件:

.title"

iir.asm"

.mmregs

.def_start

.global_main

DX.usect"

DX"

3

DY.usect"

DY"

DB.usect"

DB"

DA.usect"

DA"

PA0.set0;

800BH

PA1.set1;

800CH

.data

table:

.word0

.word0

.word0

.word1*32768/10

.word2*32768/10

.word3*32768/10

.word5*32768/10

.word-4*32768/10

.text

_main:

_start:

SSBXFRCT

STM#DX,AR1

RPT#1

MVPD#table,*AR1+

STM#DY,AR1

MVPD#table+2,*AR1+

STM#DB,AR1

RPT#2

MVPD#table+4,*AR1+

STM#DA,AR1

MVPD#table+7,*AR1+

STM#DX+2,AR2

STM#DY+1,AR3

STM#DB+2,AR4

STM#DA+1,AR5

STM#3,BK

STM#-1,AR0

LOOP:

STM0FFH,AR6

STM1000H,AR1

STM2000H,AR7

MAC*AR2+0%,*AR4+0%,A;

.end

2、.cmd文件(链接器命令文件)

-stack0x200

MEMORY

{

PAGE0:

PROG:

origin=1a00h,length=2600h

PAGE1:

DATA:

origin=0200h,length=1800h

}

SECTIONS

.text>

PROGPAGE0

DX:

align(4){}>

DATAPAGE1

DY:

DB:

DA:

.cinit>

.switch>

.vect>

3f80hPAG

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1