DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理

DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理

DSP学习笔记(二)——DSP中浮点数与定点数格式与处理

1 DSP中的数据表述

DSP中数据通常是有定点数与浮点数表示,其中可以对字长进行相关定义,可以选取字长为16位、24位、32位不同字长使用。而格式与字长决定了数据的精度与动态范围,同时也一定程度上决定了DSP处理器的功耗、成本与编程难度。

定点数:小数点位置为确定的。

浮点数:小数点位置可以改变。

定点运算的硬件实现较为简单,功耗较小,主要注意的是数据的定标、溢出以及误差。

浮点器减结构较为复杂,但是精度较高,高级语言容易支持。

2 定点数的格式与相关运算

2.1 定点数格式

定点数格式:Qn整数小数点固定在最后,定点数小数位固定使用上文的Qn例: Q4格式:01010011b=1?22+1?20+1?2-3+1?2-4=83/24=5.1875

对于负数(最高位MSB为1),要先把它转化为无符号二进制数,再进行计算,最后加上负号。

图2-1 二进制Q格式表示

定点数与浮点数转化时需要使用2n转化关系如下图:

图2-2 定点数与浮点数转化关系

浮点数转换为定点数时,由于小数点后的位数有限,会产生截断误差。

2.2 数值范围与精度

Qn精度:12n由于符号位占1位,所以数据位为N-1,n越大范围越小,但精度越高。

图2-3 数值范围与精度

2.3 动态范围

数据格式中最大值与最小值之比即为动态范围。

N位定点数动态范围:

分贝表示:dsp大多采用16位定点数,动态范围为90.3db。

Dsp大多采用16为定点数,运算硬件实现较为简单,更大动态范围应用可以使用拓展字长方式。

3 定点数算术运算

3.1 定点数加减法运算

首先需要保证小数点对齐,但是运算结果可能会溢出。如果进位位与最高位(MSB)相同无溢出,不同则有溢出。

处理溢出通常有饱和模式与非饱和模式,饱和模式溢出时会对溢出进行限幅,如图。非饱和模式不会处理。

图3-1 饱和模式与非饱和模式

3.2 定点数乘法

DSP处理器都有硬件乘法器和乘法指令,可实现单周期乘法运算。二进制乘法运算包含了移位与加法运算。

定点数乘法不要求小数点位统一,两个相乘数分别为Qn和Qm格式,字长为N,结果为Q(n+m)格式,字长为2N。

在进行运算时,需要字长保持不变,则两个定点小数作乘法运算,结果左移一位,保存高位得到运算结果,结果为Qm(m≤ n)格式。

若整数乘小数,则输出结果为整数,丢弃后8位为截尾误差。误差小于等于Qn格式精度的一半,即小于等于12n+1整数相乘,结果为Q0格式,需查询标志位确定保存的位数,结果不需要左移一位。若结果没有超出8位数的表示范围时,结果在低8位,保存低8位。若结果超出8位数的表示范围时,则高8位也包含乘积结果,应保存整个16位结果。

DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理相关教程

dsp处理浮点数_DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理相关推荐

  1. 【theano-windows】学习笔记二——theano中的函数和共享参数

    前言 上一篇博客中学到了theano中的变量类型,也就是dscalar.dvector之类的, 然后还有一个theano.function和eval函数, 将我们所定义的操作转换成theano可执行的 ...

  2. c++用一级运算比较大小_Python 学习笔记:Python 中的数字和数字型运算

    在 Python 数据类型知识中我们已经初步认识了几种 Python 中的数据类型,现在我们更详细的学习一下 数字型 以及 数字型运算. 我们已经知道了 Python 中的数字分为两种,分别是整数 i ...

  3. Java学习笔记二:数据类型

    Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...

  4. pythonsze_python学习笔记二 数据类型(基础篇)

    Python基础 对于Python,一切事物都是对象,对象基于类创建 不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上海', '深圳' ...

  5. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  6. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

  7. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  8. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  9. Scapy学习笔记二

    Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...

  10. Ethernet/IP 学习笔记二

    Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...

最新文章

  1. 面试阿里,被一大总监全程质疑前公司
  2. 获取当天0点时间_什么是股市T+0?该如何做T?
  3. python源码包安装_源码包安装python2.7.6和ipython1.2.1
  4. “3D几何与视觉技术”全球在线研讨会第二期
  5. java jigsaw demo_Java9模块化(Jigsaw)初识
  6. vue.js入门以及和echarts整合之柱状图和中国地图
  7. 监督学习的基本假设——联合概率分布,独立同分布
  8. Xcode打包IPA包
  9. 第二章 计算机系统和计算机组成原理
  10. Java播放语音包 亲测
  11. 串口转HID键盘鼠标芯片沁恒微电子CH9329
  12. 三十七、缓存注解@Cacheable、@CacheEvict、@CachePut详解
  13. wsl2 + ubuntu安装下载和一些安装推荐
  14. 关于linux的进程中的各个线程cpu占用情况的分析和查看
  15. 犀牛中斑马纹分析的作用
  16. 拼多多被曝确定五一放假三天,网友:“这也砍一刀?”
  17. [转]解析CSS设置默认字体样式
  18. 摩申网络2017年7月4日游戏新闻
  19. 安卓数据恢复_精心整理20款数据恢复软件(含电脑端,安卓,苹果)
  20. Python列表(list)的操作及方法

热门文章

  1. 小米 Notebook Air 2016 13.3黑苹果efi引导文件
  2. TIA安装GSD文件
  3. 金行健:你有没有思考过,特斯拉为什么先进?
  4. 中兴配置dhcp服务器,中兴F623路由器如何投入使用dhcp服务器
  5. 金蝶k3单据编码规则_金蝶k3套打格式设置图文教程(凭证与供应链单据)
  6. java jshell 命令
  7. 深度访谈: 怎样玩转天猫?看这九本书就够了
  8. 仿直播礼物涂鸦/屏幕礼物涂鸦动画
  9. soundpool android,android – 如何获取Soundpool的持续时间
  10. cad编辑节点快捷键是什么_CAD所有快捷键