打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SEGY格式IBM与IEEE 32位浮点的区别

做过解释的朋友都知道,在加载SEGY地震数据时经常会碰到一个选项,”IBM”与”IEEE”,它们有什么区别?选错会有什么影响?本文就对它们做个介绍与比较。

一.什么是IBM格式与IEEE格式?

IEEE格式即IEEE754标准,它是1985年电气和电子工程师委员会制定的一种浮点记录格式标准。如目前我们经常采用的普通微机即采用此格式记录。

IBM格式——IBM等大型机体系结构所用的一种浮点数据格式。

二. IBM 32位浮点与IEEE 32位浮点有什么差别?

一句话而言,它们差别很大!

首先来看看浮点数的格式:


 浮点数(Floating point)由三部分组成:符号位(S)、指数位(E)、小数部分(M)。32位浮点数存储见下方示意图(图1):

图1 32位浮点数二进制构成


IBM32与IEEE32它们的区别主要体现在以下两点:


 1).32位IEEE由1位符号位、8位指数部分、23位尾数部分组成;而32位IBM的指数部分为7位,24位尾数。

2).它们对应十进制数值的计算方式不一样:

IEEE32: result = (-1)^S*(1+M/(2^23)) *2^(E-127)

IBM32:result = (-1)^S*(M/(2^24))*16^(E-64)


另需要注意的是,不同的系统字节序(Endian)存在大、小字节序差别,即便同样的一种格式如IBM32格式,在不同系统中的存储字节顺序可能是不一样的(详注见本文末尾的介绍)。


三.错用IBM32位浮点与IEEE 32位浮点有什么后果?

再用一句话来说,用错IBM与IEEE,后果很严重。

图2为某IBM32格式SEGY数据正确加载与错误加载为IEEE32格式的变密度显示对比,粗一看,很像哦?虽然它们相对能量看着很像似,其实它们差别很大,首先是数值范围不一样,其次,错误加载时(右)地震轴很不正常。

图2 IBM32地震数据加载正确(左)与错误加载为IEEE32(右)对比

如果放大来看,从波形显示来看,正确加载与错误加载差别是很大的,IBM错误加载为IEEE格式,振幅、频率都发生了改变。特别是频谱,从地震轴上就能看出,发生了错误的改变。

图3 IBM32地震数据加载正确(左)与错误加载为IEEE32 (右)对比

最后强调一点,千万不要在加载数据时,格式错误导致频谱改变后,再玩一把错误的带通滤波,期望把数据处理到正常频带内!


附:本文涉及的重要名词介绍

字节序(Endian):

字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存放顺序,分为大字节序(BigEndian)、小字节序(LittleEndian)和混合序(MiddleEndian)。SGI/IBM、Dec等不同系统具有不同字节序,它们之间传输数据是需要进行转换的。大、小字节序二者的差别见以下示意图:


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《IEEE754 学习总结》
IEEE 754
IEEE754标准的32位浮点数
IEEE745浮点数格式
可能你还不懂浮点数
浮点与定点
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服