信号处理数据类型及Cortex-M33 DSP指令介绍
1. 信号处理数据类型概述
在信号处理中,有多种数据类型可供使用,主要包括不同大小的整数、浮点值(单精度、双精度等)以及不同大小的定点值。
1.1 为何需要定点数据格式
浮点数据格式在信号处理应用中具有很大优势,它能提供非常宽的信号值动态范围,使得信号处理算法易于实现。然而,许多传统嵌入式处理器(包括一些旧的数字信号处理器)不支持浮点单元(FPU)硬件,只能依靠软件仿真来处理浮点计算,而软件仿真速度极慢,最多可达10倍的差距。同时,在处理中经常需要表示分数数据值,使用带有额外缩放比例的整数虽然可行,但在不同数据类型之间传输值时容易出错。
为解决这些问题,引入了定点格式,它能通过整数运算处理分数值。许多信号处理算法都是使用定点格式开发的,虽然在信号值的动态范围上有一定妥协,但由于嵌入式处理器执行浮点计算指令通常需要多个时钟周期,而整数处理指令通常只需一个时钟周期,因此定点计算可能比浮点计算实现更高的性能。
1.2 分数算术
分数数据类型在信号处理中常用,但很多软件程序员并不熟悉。定点数据操作使用常规整数数据类型(8位、16位、32位等),并将位字段划分为多个部分。通常这些数据值是有符号的,大多数情况下最高有效位(MSB)用作符号位,其余位分为整数部分和小数部分,划分整数部分和小数部分的位位置称为基数点。
基数点的选择取决于应用。在一些嵌入式应用中,省略整数部分,只保留符号位和小数部分的情况很常见。以8位有符号数据为例,有多种定点数据类型,如下表所示:
| 8位定点数据类 |
|---|
超级会员免费看
订阅专栏 解锁全文
125

被折叠的 条评论
为什么被折叠?



