dsp处理浮点数_DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理
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中浮点数与定点数格式与运算处理相关推荐
- 【theano-windows】学习笔记二——theano中的函数和共享参数
前言 上一篇博客中学到了theano中的变量类型,也就是dscalar.dvector之类的, 然后还有一个theano.function和eval函数, 将我们所定义的操作转换成theano可执行的 ...
- c++用一级运算比较大小_Python 学习笔记:Python 中的数字和数字型运算
在 Python 数据类型知识中我们已经初步认识了几种 Python 中的数据类型,现在我们更详细的学习一下 数字型 以及 数字型运算. 我们已经知道了 Python 中的数字分为两种,分别是整数 i ...
- Java学习笔记二:数据类型
Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...
- pythonsze_python学习笔记二 数据类型(基础篇)
Python基础 对于Python,一切事物都是对象,对象基于类创建 不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上海', '深圳' ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
最新文章
- 面试阿里,被一大总监全程质疑前公司
- 获取当天0点时间_什么是股市T+0?该如何做T?
- python源码包安装_源码包安装python2.7.6和ipython1.2.1
- “3D几何与视觉技术”全球在线研讨会第二期
- java jigsaw demo_Java9模块化(Jigsaw)初识
- vue.js入门以及和echarts整合之柱状图和中国地图
- 监督学习的基本假设——联合概率分布,独立同分布
- Xcode打包IPA包
- 第二章 计算机系统和计算机组成原理
- Java播放语音包 亲测
- 串口转HID键盘鼠标芯片沁恒微电子CH9329
- 三十七、缓存注解@Cacheable、@CacheEvict、@CachePut详解
- wsl2 + ubuntu安装下载和一些安装推荐
- 关于linux的进程中的各个线程cpu占用情况的分析和查看
- 犀牛中斑马纹分析的作用
- 拼多多被曝确定五一放假三天,网友:“这也砍一刀?”
- [转]解析CSS设置默认字体样式
- 摩申网络2017年7月4日游戏新闻
- 安卓数据恢复_精心整理20款数据恢复软件(含电脑端,安卓,苹果)
- Python列表(list)的操作及方法
热门文章
- 小米 Notebook Air 2016 13.3黑苹果efi引导文件
- TIA安装GSD文件
- 金行健:你有没有思考过,特斯拉为什么先进?
- 中兴配置dhcp服务器,中兴F623路由器如何投入使用dhcp服务器
- 金蝶k3单据编码规则_金蝶k3套打格式设置图文教程(凭证与供应链单据)
- java jshell 命令
- 深度访谈: 怎样玩转天猫?看这九本书就够了
- 仿直播礼物涂鸦/屏幕礼物涂鸦动画
- soundpool android,android – 如何获取Soundpool的持续时间
- cad编辑节点快捷键是什么_CAD所有快捷键