1、TMS320C5402DSP课程设计第1章 前言 数字信号处理器(DSP)已经发展了20多年,最初仅在信号处理领域内应用,近年来随着半导体技术的发展,其高速运算能力使很多复杂的控制算法和功能得以实现,同时将实时处理能力和控制器的外设功能集于一身,在控制领域内也得到很好的应用。数字控制系统克服了模拟控制系统电路功能单一、控制精度不高的缺点,它抗干扰能力强,可靠性高,可实现复杂控制,增强了控制的灵活性。所谓信号处理是指对信号进行滤波、变换、分析、加工、提取特征参数等的过程。在电子仪器和测量中,最典型的是用频谱分析仪对信号进行频谱分析,从而了解和取得信号的频率(或频谱)特性。在现代计算机和相关的技术
2、发展起来以前,这一过程只能用传统频谱分析仪实现。众所周知,这种传统的频谱分析仪,无论在设计制造还是所采用的元器件方面,都要求较高的水平。尤其是频率范围宽、指标高的,设计制造的难度就更高,而其价格也非常昂贵。自从计算机及随之而兴起的数字信号处理技术发展和日趋成熟起来以后,信号频谱分析的途径,正在逐步由DSP所取代。随着信息时代和数字世界的到来,数字信号处理己成为一门极其重要的学科和技术领域,它在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并以获得广泛应用。美国德州仪器公司(TI)很早开始就一直致力于专用的数字
3、信号处理器芯片的研制和生产。著名TMS320系列芯片已为科技界所熟知。据最近报道,新的TM320C64 x的运行速度己高达600MHz,其内核的8个功能单元能在每个周期同时执行4组16位MAC运算或8组8位MAC运算。单个C 64x DSP芯片能同时完成一个信道的MPEG4视频编码,一个信道的MPEG4视频解码和一个MPEG2视频解码,并仍有50%的余量留给多通道语音和数据编码,自然,还有其他一些厂商也研制生产了不少品种专用或通用的数字信号处理器芯片。数字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,可作为应用系统对信号的前置处理。同时用DSP芯片实现数字滤波除了具有稳定性好、精确
4、度高、不受外界影响等优点外,还具有灵活性好的特点,可对DSP芯片编程来实现数字滤波的参数修改,进而十分方便地修改滤波器的特性。因此基于DSP的数字滤波被广泛应用于语音、图像、软件无线电等领域,具有广阔的发展空间。在数字信号处理中,数字滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。在许多信号处理应用中使用数字滤波器代替模拟滤波器是有利的。数字滤波器容易实现不同的幅度和相位频率特性指标,克服与模拟滤波器器件性能相关的电压漂移、温度漂移和噪声问题。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。用可编程DSP芯
5、片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷达都涉及信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程都可能包含衰减一个频率范围阻止或隔离一些频率成分。数字滤波器扩展了应用范围,例如数字图象处理、模式识别、谱分析等。数字滤波在数字信号处理中占有重要的地位,数字滤波器又分为无限冲激响应滤波器(IIR)和有限冲激响应滤波器(FIR). FIR滤波器具有不含反馈环路、结构简单以及可以实现的严格线性相位等优点,因而在对相位要求比较严格的条件下,易采用FIR数字滤波器。同时,由于在许
6、多场合下,需要对信号进行实时处理,因而对于单片机的性能要求也越来越高。普通的单片机例如MCS 51难以满足这一要求。由于DSP控制器具有许多独特的结构,例如采用多组总线结构实现并行处理,独立的累加器和乘法器以及丰富的寻址方式,采用DSP控制器就可以提高数字信号处理运算的能力,可以对数字信号做到实时处理。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷达都涉及信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程都可能包含衰减一个频率范围阻止或隔离一些频率成分。数字滤
7、波器扩展了应用范围,例如数字图象处理、模式识别、谱分析等。一个带宽受限的连续时间信号能够通过采样的方法变换成离散时间信号,经过处理后离散时间信号能够转换回连续时间信号。有限长单位冲激响应(FIR)数字滤波器,与传统的通过硬件电路实现的模拟滤波器相比有以下几大优点,(1)简化了硬件电路的设计,提高了硬件电路的集成度和可靠性。(2)对干扰信号的抑制能力有了明显提高,这对系统的控制精度和稳定性的提高起到了促进作用。(3)数字滤波器的参数调节比起模拟滤波器来更加方便、灵活。数字信号处理(Digital Signal Processing)是利用专用处理器或计算机,以数字的形式对信号进行采样、变换、滤波
8、、增强、压缩、识别等处理,以得到符合人们要求的信号形式。数字信号处理器(Digital Signal Processor,简称DSP)是一种处理数字信号的专用微处理器,主要应用于实时快速地实现各种信号的数字处理算法。它在结构上针对数字信号处理的特点进行了改进和优化,并且增加了特殊的指令专门用于数字处理,因而处理速度更快,效率更高。第2章 系统硬件设计2.1 TMS320C5402芯片TMS320C5402是TI的第七代DSP产品之一,它具有优化的CPU结构,内部有1个40位的算术逻辑单元(包括一个40位的桶式移位寄存器和2个独立的40位累加器),一个1717的乘法器和一个40位专用加法器,16
9、K字RAM空间和4K16bitROM空间。共20根地址线,可寻址64K字数据区和1M字程序区,具有64KI/O空间。处理速度为l00MIPS,速度高、功耗低。引脚分布如图2-1所示。TMS320C5402采用修正的哈佛结构和8总线结构(4条程序/数据总线和4条地址总线),以提高运算速度和灵活性。在严格的哈佛结构中,程序存储器和数据存储器分别设在两个存储空间,这样,就允许取址和执行操作完全重叠。修正的哈佛结构中,允许在程序和数据空间之间传送数据,从而使处理器具有在单个周期内同时执行算术运算、逻辑运算、位操作、乘法累加运算以及访问程序和数据存储器的强大功能。与修正的哈佛结构相配合,TMS320C5
10、402还采用了一个6级深度的指令流水线,每条流水线之间彼此独立,在任何一个机器周期内可以有1至6条不同的指令在同时工作,每条指令工作在不同的流水线上,使指令的执行时间减小到最小和增大处理器的吞吐量。TMS320C5402的硬件结构具有硬件乘法器、8总线结构、功能强大的片内存储器配置和低功耗设计的特点。因此,可以进行高速并行处理,同时,集成度高可节省硬件开销,提高系统抗干扰性。它除了完成数字信号处理任务外,还可以兼顾通用单片机的操作任务,因此,它是集数字信号处理与通用控制电路于一体的多功能低功耗微处理器。综上所述C5402的CPU结构特征如下。(1)具有高性能的改进的哈佛总线结构,即具有三条独立
11、的16bit数据存储器总线和一条16bit的程序存储器总线。(2)具有一个40bit的算术逻辑单元,包括一个40bit的筒形移位器和两个独立的加法器。(3)1717bit的并行乘法器与专用的40bit加法器相结合。(4)具有专用于Viterbi蝶形算法的比较、选择、和存储单元(CSSU)。 (5)指数译码器可以在一个指令周期内求一个40bit累加数的指数值,这里的指数定义为累加器中没有数据占用的位数的个数减去8。 (6)两个地址发生器、八个辅助寄存器和两个辅助寄存器算术单元(ARAU)。图2-1 C5402引脚分布2.2滤波器分类数字滤波器从功能上看,可分为低通、高通、带通、带阻滤波器。数字滤
12、波器根据其单位脉冲响应可分为IIR (Infinite Impulse Response) 无限长冲激响应滤波器和FIR (Finite Impulse Response) 有限长冲激响应滤波器两类。IIR滤波器可以用较少的阶数获得很高的选择特性,但在有限精度的运算中可能出现不稳定现象,而且相位特性不好控制。在许多实际应用中为了保证滤波后的信号不产生相位失真。一般均采用FIR滤波器。2.3滤波器设计原理数字滤波器的设计问题就是寻找一组系数Ai和Bi,使得其性能在某种意义上逼近所要求的特性。如果在s平面上去逼近,就得到模拟滤波器,如果在z平面上去逼近,则得到数字滤波器。数字滤波是将输入的信号序列
13、,按规定的算法进行处理,从而得到所期望的输出序列。一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足常系数线性差分方程: (2-1) x(n)为输入序列,y(n)为输出序列,Ai、Bi 为滤波器系数,N为滤波器的阶数。2.4 FIR滤波器设计FIR 滤波器能够在保证幅度特性满足技术要求的同时,易做成严格的线性相位特性,且FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的,而且可以用快速傅里叶变换算法实现,大大提高了运算速率。同时只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,所以系统总能用因果系统来实现。但FIR必须用很长的冲激响应滤波器才能
14、很好地逼近锐截止的滤波器,需要很大的运算量,要取得很好的衰减特性,需要较高的阶次。有限长单位冲激响应(FIR)滤波器有以下特点: (1) 系统的单位冲激响应h (n)在有限个n值处不为零; (2) 系统函数H(z)在|z|0处收敛,极点全部在z = 0处(因果系统); (3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。 长度为N的FIR滤波器的单位冲激响应h(n)的系统函数为: (2-2) 其差分方程为: (2-3)FIR滤波器直接型结构如图2-2所示: 图2-2 FIR滤波器直接型结构FIR滤波器的设计任务是选择有限长的单位冲激响应
15、,使传输函数满足技术要求。主要设计方法有窗函数法、频率取样法和等波纹逼近法等3种。2.5窗函数设计法基于窗函数的FIR数字滤波器的设计方法通常也称之为傅里叶级数法,是用一定宽度窗函数截取无限脉冲响应序列,获得有限长的脉冲响应序列,从而得到FIR滤波器。它是在时域进行的,由理想滤波器的频率响应Hd(ejw)推导出其单位冲激响应hd(n),再设计一个FIR数字滤波器的单位冲激响应h(n)去逼近hd(n),表示为: (2-4)由此得到的离散滤波器的系统传递函数Hd(z)为: (2-5)该hd(n)为无限长序列,因此Hd(z)是物理不可实现的。 为了是系统变为物理可实现的,且使实际的FIR滤波器尽可能
16、逼近理想滤波器的频率响应,用一个有限长度的窗函数将无限脉冲响应hd(n)截取一段h(n)来近似表示hd(n),可得:h(n)=hd(n)w(n),从而有: (2-6)式中N表示窗口长度,这样H(z)就是物理可实现的系统。并且从FIR滤波器的充要条件可知,为了获得线性相位FIR数字滤波器的冲激响应h(n),那么序列h(n)应该有的延迟。窗函数序列的形状及长度的选择是设计关键。加窗处理对理想矩形频率响应产生了以下几点影响:(1)加窗处理使理想频率特性在不连续点外边沿加宽,形成一个过渡带,过渡带的宽度等于窗的频率响应WR()的主瓣宽度=4/N。注意,这里所指的过渡带是两个肩峰之间的宽度,与滤波器真正
17、的过渡带不同。(2)在截止频率C两边=C2/N的地方(即过渡带两边),H()出现最大的肩峰值,肩峰的两侧形成起伏振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多少,取决于旁瓣的多少。(3)增加截取长度N,则在主瓣附近的窗的频率响应为: (2-7)其中,x=N/2。所以,改变N,这能窗函数频谱的主瓣宽度、坐标的比例以及WR()的绝对值大小,但不能改变主瓣与旁瓣的相对比例。由于窗函数的选择对结果起着重要的作用,针对不同的信号和不同的处理目的来确定窗函数的选择才能收到良好的效果。一般情况下,窗函数选择的原则是:具有较低的旁瓣幅度,尤其是第一旁瓣的幅度;旁瓣的幅度下降的速率要快,以利于增减阻带的衰减;
18、主瓣的宽度要窄,这样可以得到比较窄的过渡带。在本次实验中我们采用blackman窗函数法。布莱克曼窗函数布莱克曼窗函数的时域形式可以表示为 (2-8)它的频域特性为:(2-9)其中,为矩形窗函数的幅度频率特性函数。布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12/N。窗函数法设计FIR滤波器的主要步骤:(1)给出希望设计的滤波器的频率响应函数Hd(ejw);(2)根据允许的过渡带宽度及带阻衰减,初步选定窗函数及其长度N;(3)根据技术要求确定待求滤波器的单位取样响应hd(n), (2-10)(4)将hd(n)与窗函数相乘得到FIR数字滤波器的单位取
19、样响应h(n),h(n)=hd(n)w(n);(5)按如下方法计算FIR数字滤波器的频率响应,并验证是否达到所要求的技术指标 (2-11)由H(ejw)计算幅度响应H()和相位响应()。如果不满足要求,可根据具体情况重复(2)(5)的步骤,直到满足技术要求。第3章 滤波器的软件设计3.1 DSP系统的特点DSP系统是以数字信号处理为基础的,因此不但具有数字处理的全部优点而且还具有以下特点:1接口方便:DSP应用系统与其他以现代数字技术为基础的系统或设备都是相互兼容的,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易得多。2编程方便:DSP应用系统中的可编程DSP芯片,能灵活方便地进
20、行修改和升级。3稳定性好:DSP应用系统以数字处理为基础,受环境温度及噪声的影响较小、可靠性高,无器件老化现象。4精度高:16位数字系统可以达到10-5级的精度。5可重复性好:模拟系统的性能受元器件参数性能变化的影响比较大,而数字系统基本不受影响,因此数字系统便于测试、调试和大规模生产。6集成方便:DSP应用系统中的数字部件有高度的规范性,便于大规模集成。当然,数字信号处理也存在一些缺点。例如,对于简单信号处理任务,若采用DSP则使成本增加。DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且DSP系统消耗的功率也较大。此外,DSP技术更新速度快,对于数学知识要求高,开发和测试工具还有
21、待进一步完善。3.2 DSP系统的开发工具CCSCCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。CCS有两种工作模式,即软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。 CCS的开发系统主要由以下组件构成: 1.TMS320C54x集成代码产生工具;2.CCS集成开发环境;3.DSP/BIOS实时内核插件及其应用程序接口API;4.实时数据交换的
22、RTDX插件以及相应的程序接口API;5.由TI公司以外的第三方提供的各种应用模块插件。 CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C+和汇编的混合编程,其主要功能如下: 1具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等;2含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中;3高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;4工程项目管理工具可对用户程序实行项目管理。在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过
23、跟踪信息对不同的程序进行分类管理;5基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试;6断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;7探测点工具,可用于算法的仿真,数据的实时监视等;8分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟;9数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新; 10提供GEL工具。利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等;11支持多DSP的调
24、试;12支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换;13提供DSP/BIOS工具,增强对代码的实时分析能力3.3 程序流程图在本实验中使用MATLAB模拟产生信号,观察滤波前的时域波形和频域波形。MATLAB仿真后,使用得到的滤波器参数,进行DSP编程,在DSP中实现带通滤波,并使用CCS的频谱分析功能,查看DSP的滤波效果。MATLAB程序流程图如图3-1所示。图3-1 MATLAB程序流程图 CCS汇编程序流程图如图3-2所示。 图3-2 CCS汇编流程图第4章 滤波器的仿真4.1滤波器参数设定设计FIR滤波器:通带边缘频率10KHz,阻带边缘频率
25、22KHz,阻带衰减75dB,采样频率50KHz。窗函数选定:阻带衰减75dB,选择blackman窗截止频率:2pi*(10+(22-10)/2)/50 = 0.64pi窗函数长度:blackman窗的过渡带宽为5.98,单位为2pi/N,而要设计的低通滤波器的过渡带宽为2pi*12/50=0.48pi,二者相等,得N=24.9,取25。理想滤波器脉冲响应:h1n = sin(n1)/n/pi = sin(0.64pi*n)/n/pi窗函数为:wn = 0.42 - 0.5cos(2pi*n/24) + 0.8cos(4pi*n/24)则滤波器脉冲响应为:hn = h1*wn |n|124.
26、2 MATLAB滤波后频谱图MATLAB信号处理工具箱提供了各种窗函数、滤波器设计函数和滤波器实现函数。本文的FIR低通滤波器设计及主要的滤波程序如下:fs=8000; shuru(1:256)=sin(0:255)/fs*2*pi*500)+sin(0:255)/fs*2*pi*1000)+ sin(0:255)/fs*2*pi*2500); xishu=fir1(16,1500/8000*2); shuchu=conv(shuru,xishu); t=(0:255)/fs;w=8000*(0:127)/256;shuru1=fft(shuru,256); shuchu1=fft(shuch
27、u,256); subplot(2,2,1) plot(t,shuru);grid on;title(输入信号时域图);程序执行结果得到的输入输出信号的时域频域图如图4-1所示。 图4-1 Matlab编程实现滤波前后的时域频域图形 Matlab的Signal Processing Toolbox提供一个交互式界面的滤波器设计工具FDATool,用户可以通过对话框的方式给出滤波器设计要求,然后直接进行设计,对于设计完成的滤波器,在FDATool中可以对其分析,观察幅频曲线、相位、零极点图等,可将设计结果保存为mat文件、文本文件、C语言头文件等,在安装了DSP Blockset下,可将设计出的
28、滤波器实现为Simulink模块,并添加其它模块加以仿真。在matlab命令提示窗口键入:FDATool,进入主界面,单击功能选择按钮“”,进入滤波器设计及分析界面,在设计参数指定区域中,将Filter Type设置为Lowpass;选择Design Method中的FIR,并设置为Window;选择Hamming窗,并将阶数设置为Specify oder,键入16;在Frequency中设置相应参数,Fs键入8000,Fc键入1500。至此一个数字滤波器就设计完成了。接下来把滤波器实现为Simulink模块,点击功能选项按钮“”,进入界面后可修改模块的名字,选择要保存的路径,然后点击Real
29、ize Model,完成模块的实现,双击该模块可以看到此滤波器是由一些列的sum模块、gain模块以及delay模块所组成的。接着启动Simulink,在命令提示窗口界面点击“”即可,进入Simulink Library Browser,把Signal Processing Blockset展开,选择相应的模块,托到滤波模块窗口上进行搭建,为了查看输出变量,可以添加适当模块把变量输出到工作空间中用于实时观测模拟结果,搭建完整的系统模块如图4-2所示。图4-2 完整的FIR滤波模块系统模型搭建完成后即可设置各个模块的参数,方法为双击该模块,选择正确的参数填入;图中的To Workspace模块可
30、以观测和分析输出到空间的变量数据y和y1,Time Scope模块则用于观测输入信号与滤波后输出信号的时域图形;Spectrum Scope用于观察输入信号和滤波后输出信号的频域图形。模拟采用固定步长,且步长与DSP的Sine模块中的Sample time保持一致,若要修改参数,可在菜单中点击Configuration Parameters进入界面,在Solver中填入相应的参数,在参数都设置完成之后就可以进入模拟,并观测输入信号和滤波后输出信号的时域图与频域图。仿真结果如图4-3所示:图4-3 Simulink模块下的输入和输出信号时域频域图4.3 利用MATLAB获取H参数根据滤波器的脉冲
31、响应计算出hn,然后将脉冲响应值移位为因果序列这里计算hn的值,采用Matlab计算。代码如下:Window=blackman(25);h=fir1(24,0.64,Window);freqz(h,1)系数如下:h1=Columns1through80.0000-0.00000.0008-0.0019-0.00160.0100-0.0087-0.0180Columns9through160.0492-0.0204-0.10950.28000.64000.2800-0.1095-0.0204Columns17through240.0492-0.0180-0.00870.0100-0.0019-0.00160.0008 -0.0000Columns25
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1