利用TMS320C31实现数字滤波_第1页
利用TMS320C31实现数字滤波_第2页
利用TMS320C31实现数字滤波_第3页
利用TMS320C31实现数字滤波_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、欢迎访问Freekaoyan论文站利用TMS320C31实现数字滤波欢迎访问Freekaoyan论文站欢迎访问Freekaoyan论文站1引言 数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用。它是通过对采样数据信号进行数学运算处理达到对信号进行处理的目的。数学运算通常有时域和频域两种形式。其中,时域法是对离散采样数据作差分方程数学运算来达到滤波的目的。 相对于FIR(有限长单位冲激响应)数字滤波器,IIR(无限长单位冲击响应)数字滤波器相位是非线性的,且选择性越好,相位非线性越严重。但是,由于其采用递归型结构,其系统函数的极点可以位于单位圆内的任何地方,因此可用更低的阶数获得更高的选

2、择性,使用更少的存储器。 数字滤波器一般可以用两种方法来实现:一是采用通用计算机,利用计算机软件通过计算机来实现;二是通过DSP(数字信号处理器),利用为其专门设计的数字乘法器、加法器、存储器等硬件资源,通过处理器的高速运算实现。2系统硬件介绍 本系统采用的处理器是得克萨斯仪器公司(TI)的浮点运算DSPTMS320C31。它采用了并行流水线处理结构,带有硬件乘法器,具有高速并行处理能力、高速浮点乘法及加法运算能力。利用扩展精度浮点格式和寄存器能进行40位浮点运算。TMS320C3X具有丰富的指令集,其3操作数乘法指令、乘加并行指令和零额外开销循环以及延时跳转等指令,非常适合快速实时地完成具有

3、乘加累积求和特点的数字信号处理算法。 其中,乘加并行指令可以在一个指令周期内同时执行乘法和加法操作。如果该指令中乘法指令的目标地址和加法指令的源地址相同,在进行运算之前,所有的源操作数已被读入,故不会引起源地址与目标地址寄存器的冲突。 循环寻址模式可以根据程序事先设定的边界地址和需要循环的地址空间长度,在地址指针超过该地址空间的起始边界时,使之自动跳转到其尾部边界;同样,在地址指针超过该地址空间的尾部边界时,自动跳转到其起始边界。其中,起始边界地址(二进制)最低两位应当为零,即该地址应为4的整数倍。3IIR数字滤波器的级联结构 假设讨论的IIR系统是因果稳定的。一个IIR数字滤波器级联结构可以

4、用图解,如图1所示。 图中,每个“田”字形环节就是一个二阶子系统。从图中可见,dk(n)可以认为是各二阶子系统输入/输出中间环节,dk(n1)、dk(n2)分别是它的延时单元。另外,每个二阶子系统的输出将成为下一个二阶子系统的输入。可以得到IIR数字滤波器的系统函数为: (1) 第k个二阶子系统的差分方程为: (2) 这样,滤波器的系统函数可以通过若干个二阶子系统的级联形式来实现。由于各个二阶子系统在形式上是一样的,这可以使用同一算法,通过改变系数可方便地实现各个二阶子系统,其算法是整个滤波器软件编写的重点。4IIR数字滤波器在TMS320C31上的实现 滤波器程序可以根据其系统函数对应的差分

5、方程实现。对该滤波器在TMS320C31上的资源分配及软件编写如下所述(参见图2)。IIRmpyf3ar0,ar1,r0;a21d1(n2),存入R0mpyf3ar0(1),ar1(1),r1;b21d1(n2),存入R1mpyf3ar0(1),ar1,r0;a11d1(n1),存入R0|addfr0,r2,r2;a21d1(n1)x(n),存入R2mpyf3ar0(1),ar1(1),r0;b11d1(n1),存入R0|addf3r0,r2,r2;d1(n)=a21d1(n2)a11d1(n1)x(n),存入R2mpyf3ar0(1),r2;b01d1(n),存入R2|stfr2,ar1(1

6、);d1(n)的结果存入RAMrptbfilter;循环执行N1级的二阶子系统部分mpyf3ar0(1),ar1(ir0),r0;a2kdk(n2),存入R0|addf3r0,r2,r2;b1(k1)dk1(n1)b0(k1)dk1(n),存入R2mpyf3ar0(1),ar1(1),r1;b2kdk(n2),存入R1|addf3r1,r2,r2;yk1=b2(k1)dk1(n2)b1(k1)dk1(n1);b0(k1)dk1(n),结果存入R2mpyf3ar0(1),ar1,r0;a1kdk(n1),存入R0|addf3r0,r2,r2;a2kdk(n2)xk(n),存入R2。其中xk(n)

7、=yk1mpyf3ar0(1),ar1(1),r0;b1kdk(n1),存入R0|addf3r0,r2,r2;dk(n)=a1kdk(n1)a2kdk(n2)xk(n),存入R2stfr2,ar1(1);dk(n)的结果存入RAMfilter mpyf3 ar0(1), r2,r2 ; b0(k 1) dk(n), 存 入 R2addf r0,r2 ; b1k dk(n 1) b0(k 1) dk(n)addf3 r1,r2,r0 ; y(n)=b2k dk(n 2) b1k dk(n 1) b0(k 1) dk( n) ,其 结 果 存 入 R0nop ar1 (ir1) ;nop ar1

8、(1) ; 指 针 重 新 指 向 d1(n 2)rets ; 返 回 主 程 序end 存储器分配如图2所示。每个二阶子系统对应一个系数数组和延迟环节数组。数组均采用连续地址分配的方法配置存储空间,各系数和延迟单元如图2所示。从(2)式可见,滤波器的每个二阶子系统需要保存的延迟单元包括d(n),d(n1),d(n2)。可以用最新产生的d(n)替换已经使用过的d(n2),以减少存储空间。这可以通过TMS320C31的循环寻址方便地实现。由于循环寻址的边界地址最低两位必须为零,所以每个延迟环节将至少由4个存储单元组成,其中第4个单元可以不使用。图2中第一个延迟环节数组的边界地址为0x7000,第

9、二个为0x7004。 以下给出的是IIR数字滤波器子程序部分。假设初始化过程中,已经把系数数组的首地址赋予寄存器AR0,延迟环节数组d1(n2)单元的地址赋予AR1;采样值x(n)通过寄存器R2传递;滤波后的结果y(n)保存在R0中;IR0、IR1寄存器中分别赋值为4(每个延迟数组单元数)和4(N1),用于延迟环节指针的跳转;循环次数计数器RC赋值为N2;循环寻址块大小为3(字节)。程序中,带有“|”符号的为并行寻址指令,带有“”符号的为循环寻址指令。4实验及结果 确定需要设计的IIR数字滤波器为巴特沃斯低通滤波器,要求3dB处转折频率为800Hz,1200Hz处对1kHz以上频率的信号幅值衰

10、减大于20dB。数据采样频率控制在25kHz。 利用MATLAB可以方便地确定滤波器的各项系数。得到N=3(六阶),系数b2、b1、b0、a2、a1如表1所示。表1 IIR低通滤波器系统函数系数表 N b2 b1 b0 a2 a1 1 0.4619345665 0.9199600816 0.4580365419 0.8856344820 1.8819136620 2 0.4999946356 0.9999673963 0.4999847412 0.9149757306 1.9111969789 3 0.4957709610 0.9957589507 0.5 0.9680170416 1.9641336202 实验结果如图3和图4所示。图3是输入波形,图4为滤波后的输出波形。 5结论 本文介绍了IIR数字滤波器的级联结构和它在TMS320C31数字信号处理器上的实现。通过设计不同类型的滤波器参数,可以将该滤波器方便地应用于低通、高通、带通等各种数字滤

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论