第8章 TMS320C55x软件设计实例_第1页
第8章 TMS320C55x软件设计实例_第2页
第8章 TMS320C55x软件设计实例_第3页
第8章 TMS320C55x软件设计实例_第4页
第8章 TMS320C55x软件设计实例_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第8章

TMS320C55x软件设计实例

如果说DSP的硬件设计是基础,那么软件算法则是系统的精华所在。精确、高效的软件算法设计确保所需功能的实现,而且系统的精确性和高效性也十分依赖于软件设计。

在本章中给出了一系列软件设计实例,既有数字信号处理的基本算法的实例——卷积算法、FIR滤波器算法、IIR滤波器算法和FFT算法;又有语音压缩和解压缩算法的例子——G711语音压缩和解压缩;然后给出了图像处理算法的实例——图像锐化算法的实现;最后是有关C55x处理器在通信系统中应用的实例——包括卷积编码的DSP实现和Viterbi译码算法的DSP实现。希望这些软件设计实例能够给读者以启发。2023/1/311DSP系统设计第8章TMS320C55x软件设计实例8.1卷积算法

8.1.1卷积算法

卷积积分是计算连续线性时不变系统输出响应的主要方法。同样,对于离散系统,卷积和也是求线性时不变系统输出响应的重要方法

卷积和的运算在图形表示上可分为四步:

(1)翻转:先在变量坐标m上作图x(m)和h(m),将h(m)以m=0的垂直轴为对称轴翻转成h(m);

(2)移位:将h(m)移位n,即得h(nm)。当n为正整数时,右移n位。当n为负整数时,左移n位;

(3)相乘:再将h(nm)和x(m)的相同m值的对应点值相乘;

(4)相加:把以上所有对应点的乘积叠加起来,即得y(n)值。

2023/1/312DSP系统设计第8章TMS320C55x软件设计实例8.1.2

卷积算法的MATLAB实现

MATLAB提供了一个函数conv用于计算两个有限长序列之间的卷积。conv函数假定这两个序列都在n=0开始。

例如:已知两个序列:

x(n)=[3,11,7,0,1,4,2],3≤n≤3;

h(n)=[2,3,0,5,2,1],1≤n≤4求卷积y(n)=x(n)h(n)。

要作该例子的卷积,就能用>>x=[3,11,7,0,1,4,2];>>h=[2,3,0,5,2,1];>>y=conv(x,h)y=631476515411822382得到y(n)值。然而conv函数不提供任何定时信息。通过对conv函数的简单扩展,它能完成任意位置序列的卷积。2023/1/313DSP系统设计第8章TMS320C55x软件设计实例8.2有限冲激响应滤波器(FIR)的实现8.2.1有限冲激响应滤波器的特点和结构

有限冲激响应滤波器是信号处理中常用的一种滤波器,这种滤波器有如下优点:容易实现线性相位。只要保证系数的偶对称,就可很容易实现线性相位;可以实现任意形状滤波器。通过窗函数法可以方便的实现多通带、多阻带滤波器;

稳定性好。因为FIR滤波器没有反馈,是自然稳定的。2023/1/314DSP系统设计第8章TMS320C55x软件设计实例8.2.1有限冲激响应滤波器的特点和结构

但FIR滤波器也有一些缺点:

设计FIR滤波器无法直接设定阻带衰减指标。为了达到阻带衰减指标往往要多次更改设计参数,直到通带、阻带性能达到要求;阶数较大。要满足理想的滤波器性能需要比无限冲激响应滤波器更长的阶数;

过渡带性能和实时性之间存在矛盾。要使FIR滤波器的过渡带尽量小就需要较长的阶数,这就需要在过渡带性能和实时性之间寻求平衡。2023/1/315DSP系统设计第8章TMS320C55x软件设计实例8.2.1

有限冲激响应滤波器的特点和结构

FIR滤波器差分方程如下,x(n)为输入序列,y(n)为输出序列,h(k)为滤波器系数,N为滤波器阶数。下图是FIR滤波器的结构图。2023/1/316DSP系统设计第8章TMS320C55x软件设计实例8.2.2

有限冲激响应滤波器的MATLAB设计

FIR滤波器系数的产生可以通过MATLAB得到。MATLAB是MathWorks公司用于数值计算和信号处理的数学计算工具包,可以方便直观地进行分析、计算和系统仿真。b=fir1(20,[0.20.5])freqz(b,1,512)

FIR滤波器设计可以采用两种方法实现。

方法1:直接通过MATLAB的滤波器设计函数,具体示例如下:

2023/1/317DSP系统设计第8章TMS320C55x软件设计实例8.2.2

有限冲激响应滤波器的MATLAB设计b=fir1(20,[0.20.5])freqz(b,1,512)

fir1函数需要两个参数,即滤波器阶数和滤波器参数。

可以看到,所设计的滤波器阶数为20阶,[0.20.5]表示该滤波器为带通滤波器,通带范围为归一化频率0.2~0.5,指令freqz(b,1,512)所给出的是该滤波器的幅频、相频响应特性,如图所示。2023/1/318DSP系统设计第8章TMS320C55x软件设计实例8.2.2

有限冲激响应滤波器的MATLAB设计

方法2:采用滤波器设计工具箱来设计滤波器的参数,可以方便地得到所需滤波器。该方法按照如下步骤来实现:

(1)打开MATLAB滤波器设计工具箱中的滤波器设计与分析工具(FDATool)。(2)在滤波器设计页面中设置滤波器参数:

滤波器类型选择带通;设计方法选择FIR(有限冲激响应滤波器)、窗函数法设计;滤波器阶数选择最小阶数,窗类型采用Kaiser窗;频率选择归一化频率,阻带1设为0.15,通带1设为0.2,通带2设为0.5,阻带2设为0.55;幅度单位选分贝,阻带1设为20dB,通带设为1dB,阻带2设为20dB。2023/1/319DSP系统设计第8章TMS320C55x软件设计实例8.2.2

有限冲激响应滤波器的MATLAB设计

方法2:采用滤波器设计工具箱来设计滤波器的参数,可以方便地得到所需滤波器。该方法按照如下步骤来实现:

(3)单击设计滤波器按钮,在右上窗口可以看到所设计滤波器的幅频、相频等各种图形。(4)在File菜单,选择“Export”子菜单出现Export窗口,选择输出到Text-file,单击“OK”按钮即可将参数输出到指定文件中。2023/1/3110DSP系统设计第8章TMS320C55x软件设计实例8.2.2

有限冲激响应滤波器的MATLAB设计

右图显示了用滤波器设计与分析工具设计FIR滤波器的界面。如果对比两种滤波器设计方法就会发现,利用滤波器设计与分析工具设计滤波器更为直观、方便。2023/1/3111DSP系统设计第8章TMS320C55x软件设计实例8.2.3有限冲激响应滤波器DSP实现

在利用C55x系列处理器编写程序时,应充分利用处理器所提供的各种条件。在下面所给出的实例中,可以发现该程序充分发挥了C55x内核双乘法器的作用,并灵活使用辅助寄存器的各种寻址方式。这样做将提高处理器的工作效率,更好地满足系统实时性的要求。该滤波器的阶数为4,输入数据长度为11。2023/1/3112DSP系统设计第8章TMS320C55x软件设计实例程序清单:N_TAPS.set4N_DATA.set11.dataCOEFFS.int1,2,3,4IN_DATA.int1,2,3,4,5,6,7,8,9,10,11.bssOUT_DATA,N_DATA+N_TAPS1,,1.textBCLRARMS.arms_off

bfir:MOV #CODFFS,XCDPAMOV #(IN_DATA+N_TAPS1),XAR0AMOV #(IN_DATA+N_TAPS),XAR1AMOV #OUT_DATA,XAR2

;滤波器抽头;XAR2指向输出向量8.2.3有限冲激响应滤波器DSP实现

;输入数据数

;滤波器系数

;输入向量

;ARMS清零

;输出向量

;ARMS=0

;指向滤波器系数

;XAR0指向输入向量

;XAR1指向输入向量2023/1/3113DSP系统设计第8章TMS320C55x软件设计实例MOV#((N_DATAN_TAPS+1)/21),BRC0MOV#(N_TAPS3),CSR MOV#(-(N_TAPS1)),T0MOV#(N_TAPS+1),T1|| RPTBLOCALFIREND1 MPY *AR0,*CDP+,AC0::MPY*AR1,*CDP+,AC1 RPT CSR MACM *AR0,*CDP,AC0 ::MACM*AR1,*CDP+,AC1MACM *AR0(T1),*CDP(T0),AC0::MACM *AR1(T1),*CDP(T0),AC1MOV dbl(LO(AC0)),dbl(*AR2)FIREND

;载入外循环次数8.2.3有限冲激响应滤波器DSP实现

;载入内循环次数

;外循环开始

;抽头1

;内循环开始

;存储结果

;循环结束2023/1/3114DSP系统设计第8章TMS320C55x软件设计实例8.2.3有限冲激响应滤波器DSP实现

计算的最终结果为:0x0014,0x001E,0x0028,0x0032, 0x003C,0x0046,0x0050,0x005A在取滤波器系数时,应注意要对生成的系数进行处理。这是因为生成的系数一般都带有小数部分,而C55x系列处理器是定点处理器,不能处理小数。因此,要对系数进行适当放大,使所有系数都在32768~+32767之间。

2023/1/3115DSP系统设计第8章TMS320C55x软件设计实例8.3无限冲激响应滤波器(IIR)的实现

8.3.1无限冲激响应滤波器的结构

无限冲激响应滤波器的差分方程如下:右图是无限冲激响应滤波器的结构。2023/1/3116DSP系统设计第8章TMS320C55x软件设计实例8.3.2

无限冲激响应滤波器的MATLAB设计

同有限冲激响应滤波器一样,无限冲激响应滤波器也可以在MATLAB中通过两种不同的方法进行设计。

方法1:利用滤波器设计函数直接生成滤波器。

MATLAB中提供了多种IIR滤波器的设计方法,包括巴特沃斯滤波器,切比雪夫Ⅰ型、切比雪夫Ⅱ型滤波器,椭圆滤波器等,接下来以切比雪夫Ⅰ型滤波器为例设计一个低通滤波器。设计的低通滤波器要求其采样频率为44100Hz,通带为8kHz,过渡带为500Hz,阻带衰减为30dB。2023/1/3117DSP系统设计第8章TMS320C55x软件设计实例8.3.2

无限冲激响应滤波器的MATLAB设计右图是该滤波器的幅频、相频曲线图。Wp=8000/22050;Ws=8500/22050;[n,Wn]=cheb1ord(Wp,Ws,3,30)[b,a]=cheby1(n,3,Wn) freqz(b,a,512,44100)

;计算在所给参数下所需最小阶数

;给出滤波器系数

2023/1/3118DSP系统设计第8章TMS320C55x软件设计实例8.3.2

无限冲激响应滤波器的MATLAB设计

方法2:采用滤波器设计与分析工具设计滤波器。

右图是应用滤波器设计与分析工具设计同样参数的滤波器。具体步骤为:(1)

打开FDATool

;(2)

设置滤波器参数;在滤波器类型中选择低通

设计方法选择IIR(3)

单击设计滤波器按钮,在右上窗口可以看到各种图形。选择频率单位、通带、阻带选择幅度单位、通带、阻带(4)

单击File菜单,选择“Export”子菜单,选择输出到“Text-file”,单击“OK”

。2023/1/3119DSP系统设计第8章TMS320C55x软件设计实例8.3.3无限冲激响应滤波器的DSP实现

接下来给出IIR滤波器的DSP实现算法,该算法把IIR滤波器分解成多个单元,每个单元如图所示:单元中x(n)、y(n)按下式推导

:2023/1/3120DSP系统设计第8章TMS320C55x软件设计实例8.3.3

无限冲激响应滤波器的DSP实现

程序中AR0指向输入数据*x(n),AR1指向滤波器系数*h,AR2指向输出数据y(n),AR3指向中间变量dbuffer,T0存放滤波器中组成单元的数量,T1存放输入数据个数,滤波器的系数存放的顺序如下:

a11a21b21b11....a1ia2ib2ib1i

中间变量的排列顺序如下,i是中间变量所在单元的序号:

d1(n–1),d2(n–1),..di(n–1)d1(n–2),d2(n–2)...di(n–2)2023/1/3121DSP系统设计第8章TMS320C55x软件设计实例8.4快速傅里叶变换(FFT)8.4.1快速傅里叶变换(FFT)算法

离散傅里叶变换作为信号处理中最基本和最常用的运算,在信号处理领域占有基础性的地位,离散傅里叶变换定义为:

k=0,1,…,N1,k=0,1,…,N1,

2023/1/3122DSP系统设计第8章TMS320C55x软件设计实例8.4.1快速傅里叶变换(FFT)算法

如果直接按照公式进行计算,求出N点X(k)需要N2次复数乘法,N(N1)次复数加法,如此推算,进行1024点傅里叶变换共需要4194304次实数乘法,这对于实时处理是无法接受的。而傅里叶快速(FFT)算法的提出使傅里叶变换成为一种真正实用的算法。

k=0,1,…,N1,FFT运算公式为:2023/1/3123DSP系统设计第8章TMS320C55x软件设计实例8.4.1快速傅里叶变换(FFT)算法接下来将介绍利用C55x处理器实现傅里叶快速算法。

k=0,1,…,N1,

右图给出8点时域抽取FFT的示意图:

温馨提示

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

评论

0/150

提交评论