第6章 TMS320C55x 的信号处理算法设计实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12 February 2002
12 February 2002
E-mail: panjianjun@bistu.edu.cn
6-2
DSP原理与应用
第6章 TMS320C55x 的信号处理算法设计实例
使用定点处理器时,必须仔细检查数的范围,避免溢出。 通过使用饱和算法,也在一定程度上避免了溢出。 很多DSP处理器都有保护溢出的机制,像 TMS320C55x系列处理器。当溢出发生时,该机制 会保持结果在最大值或者最小值。这就是所谓的饱和。 为了避免数据计算结果溢出,TMS320C55x的DU(D单元) 支持数据饱和逻辑。当状态寄存器ST1_55的D单元饱和模 式位SATD使能以后(SATD=1),饱和逻辑使能。 该模式使能以后,如果发生溢出,累加器或者加载最大正 值0x007FFFFFFF,或者加载最小负值0xFF80000000。 bset SATD ; 使能饱和模式
24
12 February 2002
E-mail: panjianjun@bistu.edu.cn
6-4
DSP原理与应用
第6章 TMS320C55x 的信号处理算法设计实例
6.3 FIR滤波器的实现
6.3 FIR滤波器的实现
可见,对于该方法,数据缓冲的刷新是需要较多的 处理时间。而对于C55x DSP来说,高效的方法就 是将数据存在循环缓冲器。 C实现
为了最大限度地保持数的精度,在将浮点数转 换为定点数时,可以采取 “四舍五入”的 方 法。
浮点数(x)转换为定点数(xq): xq=(int)(x*2Q+0.5) (x>=0) xq=(int)(x*2Q-0.5) (x<0) 同样,对0.6这个数,采用上述方法转换得到的定点 数将为(int)(0.6*32768+0.5)=19661,其浮点数为 19661*2-15=19661/32768=0.600006103 误差在小数点后的第6位,显然其精度得到了提高 此时,结果就是超出了寄存器所能存储的能力,发生了 溢出,产生了错误。
12 February 2002 25 12 February 2002 26
6.3 FIR滤波器的实现
6.4 利用MATLAB设计FIR滤波器
对于FIR滤波器的设计来说,关键就是确定FIR滤波器 的系数,从而使系统满足滤波器的性能要求。FIR滤 波器的设计方法可以用软件实现,最常用的软件就是 MATLAB。 MATLAB 的名称源自 Matrix Laboratory ,它是一种 科学计算软件,专门以矩阵的形式处理数据。 MATLAB 将高性能的数值计算和可视化集成在一起, 并提供了大量的内置函数,从而被广泛地应用于科学 计算、控制系统、信息处理等领域的分析、仿真和设 计工作。
例如Q15 定点数 0x7FFF,十进制数为
( x )10 b0 bm 2 m
m 1
Q15定点数 0x4000 0x7FFF 十进制数 0.5 0.9999695
15
0x8000
12 February 2002 7 12 February 2002
-1 -0.5
8
0xC000
6.1.2 数的转换
12 February 2002 23
6.3 FIR滤波器的实现
FIR滤波器输出y(n)是输入数据和系数的卷积和。
任何时候进行计算,都需要把数据和相对应的系数 相乘,再累加到输出结果中。 FIR滤波器中,输入信号在每个采样时间T过后都发 生改变。也就是说,x(n)将在T时候过后,成为x(n-1), 然后是x(n-2),……,直到该数据被抛弃。
汇编实现
18
E-mail: panjianjun@bistu.edu.cn
6-3
DSP原理与应用
第6章 TMS320C55x 的信号处理算法设计实例
6.2 数字滤波器
理想滤波器将通过某个频率的信号,阻止所有其 它频率的信号,而且对信号没有任何改变。 没有衰减而通过的频率范围叫滤波器的通带。
SMUL 打开或关闭乘法的饱和模式 0 1 关闭。 打开。 对于乘加/减指令,在乘法之后、加法/减法以前,执行饱和运算。 bclr SMUL;清零SMUL bset SMUL;置位SMUL
6.3 FIR滤波器的实现
FIR滤波器的实现可以有两种方法:块数据处理 方法和单数据处理方法。 块数据处理方法中,输入数据被分为多个块, 而滤波操作每次都针对一个块的数据,所有块 的输出结果组合成最终结果。对于每个块的操 作可以用线性卷积和方法,也可以用基于FFT 的快速卷积方法。 单采样数据处理方法中,每个获得新的采样数 据后,都要进行滤波操作。这种方法对于实时 性要求比较高的应用领域是很有用的。
FRCT 打开或关闭小数模式 0 1 关闭。乘法运算的结果不移位。 打开。乘法运算的结果左移1-bit 进行小数点调整。两个带符号的 Q15数相乘,为得到一个Q31结果时,就要进行小数点调整。
bclr FRCT;清零FRCT bset FRCT;置位FRCT
12 February 2002 17 12 February 2002
6.1.1 数的定标
在定点算术运算中,小数点在寄存器中有固 定的位置。而浮点则没有固定的位置。通常情况 下,浮点处理器比定点处理器价格要贵,而处理 速度也要慢。TMS320C55x DSP是定点处理器。
对于定点DSP芯片而言,参与运算的就是整 型数。但在许多情况下,数学运算过程中的数不 一定是整数。定点DSP芯片是如何处理小数的呢? 对于16位运算,关键在于由程序来确定一个数的 小数点处于16位中的哪一位。这就是数的定标。
6.5 FIR算法的C语言浮点实现
6.6 FIR算法的汇编语言定点实现 6.7 C55x 处理器的数字信号处理库和图像/视频处 理库简介
12 February 2002 1
12 February 2002
2
6.1 DSP芯片的定点运算
[4] Texas Instruments Incorporated. TMS320C55x DSP Library Programmer’s Reference[OL]. Texas Instruments, SPRU422J, 2009. http://www.ti.com. [5] Texas Instruments Incorporated. TMS320C55x Image/Video Processing Library Programmer’s Reference[OL]. Texas Instruments, SPRU037C, 2004. http://www.ti.com.
12 February 2002 4
12 February 2002
3
6.1.1 数的定标
B-bit的定点数能够解释为整数也能够解释为 小数。通过设定小数点在16位数中的不同位置, 就可以表示不同大小和不同精度小数了。数的定 标有Q表示法和S表示法。下表列出了一个16位数 的Q表示、S表示及它们所能表示的十进制数值范 围。
Q0, 0位的小数精度有符号数 215 214 … 21 20 Unsigned Binary Point b15 b14 … b1 b0 . 浮点数与定点数的转换关系为:
浮点数(x)转换为定点数(xq): xq=(int)x*2Q 定点数(xq)转换为浮点数(x) : x=(float) xq *2-Q 例如,浮点数x=0.6 ,定标Q15,则定点数 xq =(int)0.6*32768=(int)(19660.8)=19660 反之,一个用Q15表示的定点数19660,其浮点数为 19660*2-15=19660/32768=0.599975585 显然,用定点数表示0.6这个数存在一定的误差, 误差在小数点后的第5位。 特别注意:C语言强制类型转换时不是四舍五入,而 是采取“向零取整”方法,直接截去小数部分。
两个Q15的小数相乘后得到一个Q30 的小数, 即有两个符号位。一般情况下得到的满精度数不 必全部保留,只须保留16位数。由于相乘后得到 的高16位不满15位的小数精度,为达到15的小数 精度,可将乘积左移一位。
12 February 2002 16
12 February 2002
整数乘整数 Q0× Q0= Q0 0000000000010001=1710 ×1111111111111011=-510 11111111111111111111111110101011=-8510
6
12 February 2002
12 February 2002
E-mail: panjianjun@bistu.edu.cn
6-1
DSP原理与应用
第6章 TMS320C55x 的信号处理算法设计实例
Q15定点数,小数点在符号位之后, 15位的小数精度 b0 . b1 b2 b3 … b15 b0为符号位,剩下的15 位表示小数,字长为B=16位。
19 20
完全衰减而阻止的频率范围叫滤波器的阻带。 理想滤波器的频率响应: 通带: 阻带:
12 February 2002
12 February 2002
6.2 数字滤波器
6.2 数字滤波器
峰值通带波纹和最小阻带衰减的分贝表示:
低通滤波器的幅度响应和性能
12 February 2002 21 12 February 2002 22
当算术操作超出了相应寄存器的储存能力以后, TMS320C55x也提供了溢出标志位。累加器ACx溢出发 生以后,ST0_55的溢出标志位ACOVx(x=0、1、2、3) 置1。 在复位发生之前或者状态位清除指令执行前,溢出标志 位将一直保持置1。溢出标志位可以被指令检验(test) 和清除(clear)。 15
12 February 2002 13
bclr SATD ;禁止饱和模式
12 February 2002
14
6.1.4 定点乘法
小数乘小数 Q15× Q15= Q30 Q15 s.xxxxxxxxxxxxxxx × Q15 s.yyyyyyyyyyyyyyy
Q30 ss.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Q表示、 S表示及数值范围 Q表示 Q15 Q14 Q13 Q12 Q11 Q10 … Q0
5
S表示 S0.15 S1.14 S2.13 S3.12 S4.11 S5.10 … S15.0
十进制数表示范围 -1≤X ≤0.9999695 -2≤X ≤ 1.9999390 -4≤X ≤ 3.9998779 -8≤X ≤7.9997559 -16≤X ≤15.9995117 -32≤X ≤31.9990234 … -32768 ≤X ≤ 32767
11 12
所谓溢出就是算术运算的结果超出了保存运算结 果的寄存器的能力。 例如 x1=0x6000 Q15: x1=0.75 Q0: x1=24576 x2=0x2000 Q15: x2=0.25 Q0: x2=8192 x1+x2=0x8000 也就Q15 是十进制的-1,而不是+1 Q0 是十进制的-32768, 而不是32768
9 12 February 2002 10
-215 214 … 21 20
-20 2-1 … 2-14 2-15 Q0定点数 十进制数 0x4000 0x7FFF 0x8000
12 February 2002
Signed
Q0
Q15 定点十进制数
16384 32767 -32768 -1
0xFFFF
6.1Leabharlann Baidu3 饱和、溢出
DSP原理与应用
第6章 TMS320C55x 的信号处理算法设计实例
第6章 TMS320C55x 的信号处理算法设计实例
6.1 DSP芯片的定点运算 6.2 数字滤波器 6.3 FIR滤波器的实现 6.4 利用MATLAB设计FIR滤波器
参考文献
[1] 张雄伟, 陈亮, 徐光辉. DSP 芯片的原理与开发 应用(第4版)[M]. 北京: 电子工业出版社, 2009. 3. [2] Sen M. Kuo, Bob H. Lee. Real-Time Digital Signal Processing Implementations, Applications and Experiments With the TMS320C55x [M]. 北京: 清华大学出版社, 2003. [3] 邹鲲, 袁俊泉, 龚享铱. MATLAB 6.x信号处理 [M]. 北京: 清华大学出版社, 2002.
相关文档
最新文档