您的位置 首页 发布

Matlab辅佐DSP规划FIR数字滤波器

电子产品世界,为电子工程师提供全面的电子产品信息和行业解决方案,是电子工程师的技术中心和交流中心,是电子产品的市场中心,EEPW 20年的品牌历史,是电子工程师的网络家园

l 引 言

跟着信息技能和核算机技能的飞速发展,数字信号处理技能在很多范畴得到广泛应用。数字滤波器因为其精度高、安稳性好、运用灵敏等长处,广泛应用在各种数字信号处理范畴。数字滤波器依据冲击呼应函数的时域特性,能够分为FIR(有限长冲击呼应滤波器)和IIR(无限长冲击呼应滤波器)。FIR滤波器与IIR滤波器比较,具有严厉的线性相位,起伏特性可任意等长处。并且,FIR滤波器的单位抽样呼应是有限长的,故一定是安稳的,他又能够用快速傅里叶变换(FFT)算法来完成过滤信号,可大大进步运算功率。

Matlab辅佐DSP开发完成的关键是树立Matlab与DSF 间的衔接。以往一般是由开发东西CCS把DSP中心成果先保存,再调入Matlab作业空间与:Matlab仿真中心成果比较,以此发现DSP程序的缺乏,这需求重复操作,比较费事。Math Works公司和TI公司共同开发的.Matlab Link for CCS开发东西(CCSLink),完成了在.Matlab,TICCS开发环境和DSP硬件问的双向衔接,开发者能够运用Matlab强壮的数据处理、剖析、可视化功用来处理CCS和方针DSP中的数据,能够大大简化DSP软件开发的剖析、调试和验证进程,缩短软件开发周期。

2 Matlab与CCS及方针DSP间的衔接

Matlab可经过3种办法与CCS、方针DSP进行衔接、数据交换。CCSLink供给了3种衔接方针:

与CCS的衔接方针 可从Matlab指令窗运转CCS中的应用程序,向方针DSP的存贮器、寄存器读出/写人数据,检查DSP状况,开端/中止方针DSP中运转的程序。

与RTDX(实时数据交换)的衔接方针 使Matlab与方针DSP直接通讯,Matlab能够实时地向方针DSP取出/发送数据,并不中止DSP中正在履行的程序。

嵌入式方针 在Matlab环境中创立,该方针可代表嵌入在方针C程序中的变量,由其能够直接对嵌入在方针DSP存贮器/寄存器中的变量进行操作。

下面运用Matlab与CCS及方针DSP的衔接运用Matlab辅佐DSP完成一个低通FIR数字滤波器并把完成的滤波成果和Matlab中仿真的滤波成果进行比较。

3 Matlab辅佐DSP完成FIR进程

Matlab辅佐DSP完成FIR,其整体进程为在DSP中编写处理程序;在Matlab中运用滤波器规划、剖析东西(FDATool),依据指定的滤波器功用快速规划一个FIR,然后把滤波器系数以头文件办法导人CCS中,头文件中含滤波器阶数和系数数组,在Matlab中调试、运转DSP程序并显现、剖析处理后的数据。运用该办法,便于选用C言语来完成程序。头文件名不变,当Matlab中规划的滤波器系数改动时,相应头文件中系数也改动,便利了程序调试、仿真。

3.1在CCS中编写处理程序

在CCS IDE中树立fir.pjt工程,用C言语编写处理主程序fir.c,运用汇编言语文件,来界说中止服务程序。别的依据板上的存储器装备办法,编写存储器装备文件(.cmd文件),编译、链接,生成可履行文件(fir.out文件),加载到方针DSP程序存储器中。

3.2运用FDATool规划FIR滤波器

FIR滤波器规划办法有很多种,运用Matlab中的FDATool(Filter Design Analysis TOO1)来规划是经常被运用到的一种。FDATool是经过指定滤波器的功用指标来快速规划FIR或许IIR滤波器,他是一种图形规划界面。

指定FIR滤波器为低通滤波器(Lowpass),指定阶数为30,采样频率F,为5 000 Hz,截止频率为400 Hz。翻开FDATool界面(在Matlab指令窗输入fdat00l),选FIR(Window),用Hamming窗办法;菜单Edit->Convert Structure,选Direct Form FIR,即滤波器结构为直接I型;菜单Analysis用来挑选不同的剖析显现办法,如起伏呼应、相位呼应、脉冲呼应、阶跃呼应、滤波器系数等。指定完规划参数后单击按钮Design Filter,生成滤波器系数。FDATool界面如图1所示。

把生成的滤波器系数传到方针DSP中有两种办法,一种把滤波器系数输入到一个C头文件,在所建工程中增加该C头文件,另一种直接把生成的滤波器系数加到DSP存贮器中。本文选用榜首种办法。

挑选菜单Targets->Export to Code Composer Studio(tm)IDE,翻开Export to C Header File对话框,挑选C header file,指定变量名(滤波器阶数和系数向量),输出数据类型可选浮点型或32 b,16 b整型等,依据自己装置挑选方针板板号和处理器号,单击OK,保存该头文件,需指定文件名(filtercoeff.h)和途径(保存在c:\ti\myprojects\fir工程中)。翻开fir工程文件夹,该滤波器系数头文件filtercoeff.h已含在工程中。该头文件用到Matlab中的tmwtypes.h文件,需把该文件也包括在工程中,还要在fir.c文件中声明包括滤波器参数头文件,即:
#include〃filtercoeff.h〃

然后编译、链接工程,增加的头文件主动在工程目录中显现,方针DSP主动为滤波器系数分配相应的存贮空间。翻开文件filtercoeff.h检查生成的滤波器系数,可看到系数是对称的,这由所选滤波器类型而定。

3.3 Matlab向方针DSP传送数据并运转、显现成果

在Matlab环境中生成所要处理的数据信号,运用CCSLink供给的Matlab与CCS及DSP间的衔接方针,把数据由Matlab环境中传至方针DSP,运转方针DSF中程序,并读出方针DSP的处理成果和Matlab中的处理成果比较。Matlab中程序段如下:


以上程序段为运用CCSLink函数在Matlab中编译、链接、运转并中止方针DSP中程序来操作方针DSP。以下程序段为在Matlab中显现出经方针DSP处理前后的数据。

成果图形如图2所示。

别的,还有一种办法,即先在Matlab中把数据保存为数据文件,再运用探针或数据文件导入办法把该数据文件导人到处理程序中。处理完的数据再由探针或导出办法送到Matlab。这种办法需注意:Matlab生成数据文件时要转化为CCS能处理的数据格局。此办法将另文给出详细完成进程及代码程序。

4 结 语

一般DSP芯片完成FIR滤波器时,常是先在Matlab中规划要求的滤波器,得到滤波器系数,在方针DSP汇编程序中,对系数进行相应的Q格局转化,再用相关汇编指令完成FIR滤波器算法。但在调试时,每改动一次滤波器参数,相关系数也改动,方针DSP 中的程序也要做相应改动,给调试仿真带来很大费事,使滤波器规划功率很低Matlab具有强壮的数值剖析、核算、信号处理及图形显现功用,并为用户供给了强壮的信号处理东西箱和友爱便利的交互式图形用户界面,用Matlab辅佐DSP 完成FIR,在滤波器系数改动时能够不用改动DSP中程序,大大进步了滤波器规划功率。本文仅仅运用Matlab辅佐DSP完成了一个简略的FIR低通滤波器,并在TMS320C6713 DSK上成功运转。还能够运用Matlab辅佐DSP来完成比较复杂的比如语音处理、通讯、图画处理等方面的程序开发,能够大大缩短DSP 应用程序的开发时刻,进步规划功率,这也是今后DSP规划的一个趋势

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/326680.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部