首页 > 其他分享 >数字图像处理(4):FPGA中的定点数、浮点数

数字图像处理(4):FPGA中的定点数、浮点数

时间:2024-11-25 14:29:34浏览次数:13  
标签:数字图像处理 移码 定点 定点数 浮点数 原码 小数

        (1)定点数:小数点固定在数据的某一位置的数,可以分为定点整数和定点小数和普通定点数。定点数广泛应用于数字图像处理(图像滤波、图像缩放)和数字信号处理(如FFT、定点卷积)中。

  • 定点整数:小数点在整个数据的最右侧。

        +100(D)= 01100100(B)

  • 定点小数:小数点在整个数据除了符号位的最左边。

        0.125(D)= 0.001(B)

  • 普通定点数:小数点在数据的中间某个位置。

        例如:我们约定一个字节的前5bit为整数位、后3bit为小数位,则

        1.5(D) =   00001_100(B)

        25.125(D)=   11001_001(B) 


        (2)在FPGA中,浮点数主要由尾数M和阶码E构成,例如基数为2的数F的浮点数表示为:

        其中,M必须为小数,用n+1位有符号定点小数表示,可以采用原码、补码;E必须为整数,用k+1位有符号定点整数表示,可以采用原码、补码、移码;浮点数编码总bit位数:m = (n+1)+(k+1)。

        (3)IEEE754标准浮点数

        尾数M使用原码,阶码E使用移码,基为2,单精度和双精度浮点数格式如下:

        其中,S为尾数M的符号,0为正,1为负;M为尾数,定点小数表示,采用原码表示;E采用“移码”表示(移码是在补码的基础上,符号位取反得到的,这时1为正数,0为负数)。


        (4)在FPGA中,如何表示小数

        乘以2^N(N越大,精度越高),得出最终结果时,右移N位即可,例如计算y = 0.564 * x,则进行如下计算:

reg     [15:0]      x;
reg     [15:0]      y;
    
//0.564 * 2048 = 1155.072

assign y = (x * 1155) >> 11;

标签:数字图像处理,移码,定点,定点数,浮点数,原码,小数
From: https://blog.csdn.net/2301_80417284/article/details/144024700

相关文章

  • 浮点数取整数部分
    在C语言中,可以通过以下几种方法获取浮点数的整数部分(不进行四舍五入):1.类型转换法(简单):直接将浮点数转换为整数类型,舍弃小数部分。#include<stdio.h>intmain(){floatf=123.456;inti=(int)f;//i的值为123printf("整数部分:%d\n",i);......
  • 浮点数在内存中的存储
    引入        首先来看一下以下这段代码:intmain(){ intn=1; float*pf=(float*)&n; printf("%d\n",n); printf("%f\n",*pf); *pf=1.0; printf("%d\n",n); printf("%f\n",*pf); return0;}        这里大多数人可能会......
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》配套实验报告
    ......
  • 进制数知识(2)—— 浮点数在内存中的存储 和 易混淆的二进制知识总结
    目录1.浮点数在内存中的存储1.1浮点数的大V表示法1.2浮点数的存储格式1.3 浮点数的存入规则1.4 浮点数的读取规则1.5补充:移码与掩码1.6 题目解析2. 易错的二进制知识2.0 符号位到底会不会参与运算?2.0.1存储前的编码变化运算2.0.2存储后的数值算术运算2......
  • JavaScript二进制浮点数和四舍五入错误
    二进制浮点数和四舍五入错误实数有无数个,但JS通过浮点数的形式,只能表示有限个数,JS表现的常常是真实值的近似表示。二进制无法表示类似于0.1这样的十进制数字,只能机器近似于0.1,看如下代码:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>3......
  • PostgreSQL中的浮点数与实数类型:深入解析与代码实践
    PostgreSQL中的浮点数与实数类型:深入解析与代码实践PostgreSQL作为一款功能强大且灵活的开源关系数据库管理系统,广泛应用于各类复杂的数据存储与查询场景。在PostgreSQL中,处理浮点数与实数类型是一项基本且重要的功能,尤其是在需要进行科学计算、财务分析等高精度数据处理的场合。......
  • 数字图像处理-实验4
    实验4:几何变换与变形实验4.1:图像透视变换将一幅输入图像变换为任意一个指定的四边形形状(给定四边形4个顶点)。提示:根据4个顶点的对应估计一个透视变换H,再用H对原图像进行形变(OpenCV相关函数:getPerspectiveTransform,warpPerspective等)设计一个交互程序,可以编辑四边形顶点,并且顶......
  • C++浮点数半精度与单精度的相互转换
    代码//单精度转半精度unsignedshortcpu_float2half(floatf){unsignedshortret;unsignedx=*((int*)(void*)(&f));unsignedu=(x&0x7fffffff),remainder,shift,lsb,lsb_s1,lsb_m1;unsignedsign,exponent,mantissa;//Getrid......
  • C语言:整数和浮点数在内存中的存储--(超好理解)
    目录一、整数在内存中的存储(有符号整数)1.设置反码和补码的的目的二、浮点数在内存中的存储1.浮点数取的过程2.例题解析总结目前学习到C语言的各种数据类型在内存中的存储的方式和过程,自己初学的时候下了很多时间去学习理解,为了帮助和自己一样的在第一次初学C语言存储......
  • 深入了解Python中的浮点数、自动转换、强制转换与增强赋值运算符
    本套课程在线学习视频https://pan.quark.cn/s/3a470a7bbe67Python是一种强类型语言,具有动态类型和自动内存管理的特性。在数学和科学计算中,浮点数(float)是非常重要的数据类型。本文将详细探讨浮点数的概念、自动转换、强制转换以及增强赋值运算符。通过详细的代码示例和运行结果,帮......