0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

电子设计 作者:电子设计 2018-11-07 08:54 次阅读

导读:传统压缩方法对DCS 模拟量进行压缩效果不佳。要得到较好的压缩效果就要从模拟量在计算机中表示的方法入手。本文分析了DCS 模拟量在计算机中存储和表示方法及其特点,对原始数据进行预处理,使数据表现出较明显的冗余信息,然后对数据的不同部分,采用不同的压缩方法,每种压缩算法压缩模拟量数据的一部分。

与DCS 接口中,串行通讯是常见的接口方式。为了提高通讯效率,需要对通讯的数据进行压缩处理。DCS 模拟量的压缩方法中,常用整数表示工程量,即将模拟量的按其量程线性化处理为两字节正整数(0~65535),应用时再转换为工程量。这种方法由于要维护模拟量的量程表,不便于通信;另一类常用的压缩方法是采用LZW 等基于字典模型的压缩算法。模拟量数据是以单精度浮点数存放的,数据的冗余度很小,传统的压缩处理方法的压缩效果都不理想。

本文从模拟量在计算机中的表示方法入手,首先将模拟量预处理,再针对数据的不同部分采用不同的方法进行压缩,最后将压缩后数据组合起来。这样既充分考虑到了数据的特点,又充分利用了压缩方法的适应性。

1 模拟量的表示方法及特点

1.1 模拟量的表示方法

DCS 模拟量用单精度浮点数表示,占用4 个字节,可以精确到7 位有效数字。按文献[3] 标准(以下简称标准)表示。设一个浮点数R,可使用三元组{S,E,M}来表示:S 为符号位,用1 位表示。

S = 0 表示R 为正数,S = 1 表示R 为负数;E 为指数,用8bits表示。实际指数要经E - 127 计算后得到;M 为尾数,用23bits 表示。浮点数R 为S×1.M E(1 为隐含的一位尾数,不在M 中表示)。

1.2 模拟量的特点

数据压缩需要信息有足够的冗余度。以标准表示的模拟量不利于压缩。即便差值很小的数据,在计算机中表示结果差别很大,如1234.5 在计算机中用四字节表示为:68 154 80 0 ,而1234.6表示为:68 154 83 51,仅有符号位和指数位表示相同,尾数完全不同,这样就造成了压缩的难度。

现以200 个模拟量数据为样本分析其特点。样本数据随机产生,其范围为[0.0,1000.0].按照标准存储的数据从字符概率分布较平均,若用通用数据压缩方法压缩这些数据,得不到很好的效果。

虽然浮点数的信息冗余度很小,但若用其表示DCS 模拟量,仍有以下特点:

(1)各工程量数值多数大于零,因此标准表示中,符号位S 大多为零;

(2)各工程量的量程相差约为0.0001~10000 倍,因此标准表示中,指数差值约为-4 ~ 4 ;

(3)从数据精度考虑,工程量一般保留5 位有效数字即可。因此标准表示中,尾数部分有可压缩的信息。

2 模拟量的预处理

模拟量预处理的目的是为了产生更多的冗余信息,获得更好的压缩效果。通信时一般将模拟量按测点表以自然顺序排列。根据1.2 节的分析可知,若将模拟量按其三元组顺序排列,即:N 个模拟量数据,其自然排列顺序为{S1,E1,M1}、{S2,E2,M2}、…、{SN,EN,MN},共占用4N 字节。压缩前将模拟量序列按字节重新排列为:

S1S2…SNE1E2…ENM1M2…MN.因符号位S 为1 位,重新排列后将8个模拟量的符号位合并为1 字节。故重新排列后N 个模拟量共占用字节数为4N+N/8(+1) 字节。(括号中+1 字节表示N 不是8 的整数倍时总字节数+1)。

图1(a) 为样本数据经重新排列后字节分布情况。可以看出数据已呈现明显的规律性:第一部分数据[1,25] 为数据的符号,是样本数据的符号。样本数据均为正,因此由符号位构成的这部分数据全为零;第二部分数据[26,225] 为N 个样本数据的指数,根据1.2 节分析可知,各数据的指数差值大约在-4~4 之间,故有较大的压缩空间;最后一部分数据[226,825] 为N 个样本的尾数,呈随机分布。

第一次预处理是数据无损的。考虑到DCS 模拟量精度要求有5 位有效数字即可。根据信息理论,1 位十进制数可以精确表示log210 ≈ 3.32 位二进制数。单精度浮点数表示模拟量时,4 位二进制约可表示1 位十进制。因此,在精度满足DCS 系统要求的情况下,可以减少一个字节尾数。第二次预处理将尾数的最低字节置零,进一步提高数据的冗余信息。图1(b) 为第二次预处理后的字节分布情况。可以看出,相比第一次预处理,数据最后一部分[626,825] 全为零,可以更好地被压缩。

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

3 压缩算法的选择

3.1 压缩算法选择原则

压缩算法要根据原始数据的特点以及对速度、性能的综合要求来选择。模拟量的压缩应用在数据通信中,对速度的要求较高。

因此压缩算法不能过于复杂,运算量要小。

从预处理后的样本数据可以看出,每一部分数据的特点不同,因此选择压缩算法时应针对不同特点的数据采用不同的压缩算法来处理。第一部分数据(由符号位组成)为零(或绝大部分为零),可以采用游程编码(Run Length Encoding);第二部分数据(由指数组成)数值间相差不大,可用差分编码(Differential Encoding);第三部分数据(由部分尾数组成)随机性较大,压缩效果不明显,因此不进行压缩;第四部分数据(由最低字节尾数组成)均为零,可采用游程编码。

3.2 差分编码

差分编码又称相关编码。当源数据之间差值不大时,用数据间的差值代替源数据序列。较小的差值可以用较少的位数表示。本文用4 位二进制表示一个差值。

源数据中序列E1E2…EN 为数据的指数,其差值约在-4 ~ 4之间,用4 位二进制表示此差值:最高位用来表示差值的符号,其余三位表示差值,-7 保留。可表示的差值范围为-6~+7 ;若差值大于此范围,则不压缩,用原码输出。为了区分是差值输出还是原码输出,用保留的-7 表示下一字节为原码输出。N 字节源序列,若每一字节都可以用相邻差值来表示,其理想压缩比为1:(N/2+1)/N=1:0.5+1/N.

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

图2 为样本数据差分编码压缩后字节分布。可以看到,源数据中表示指数的部分已经被有效压缩。样本数据由825 字节压缩到726 字节,实际压缩率为88.0%.

3.3 游程编码

游程编码的思路是:若数据项d 在源数据中连续出现n 次(n称为重复因子),则在输出流中以nd 代替n 个重复项d.游程编码也可能出现压缩比大于1 的情况。为了区分输出项是重复因子还是被压缩数据,规定当重复因子n ≥ 3 时,输出ddd(n-3) ;n < 3时,输出n 个d,即不压缩输出。另外重复因子3 ≤ n ≤ 255,若数据项d 重复次数大于255,则要重新进行游程编码。设源数据长度为N,包含M 次重复,每次重复平均长度L,则游程编码压缩比为1:(N-M×(L-4))/N.

样本数据经预处理后第一部分(由符号位组成)和第四部分(由最低位尾数组成)可以用游程编码。这部分数据可以获得很高的压缩比。第一部分理想压缩比为1:4/25=1:0.16 ;第四部分理想压缩比为1:4/200=1:0.015.

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

图3 为经游程编码压缩后的数据分布图。由上一级差分编码压缩后的726 字节压缩至510 字节,实际压缩比为1:0.70.

4 结论

200 个样本数据经预处理,对一部分数据进行差分编码、对另一部分数据进行游程编码,最终有510 个字节。因此综合压缩比为1:510/800 ≈ 1:0.64,节省约36% 的空间。由于样本数据的随机性,因此可以推广到一般情况。得到以下结论:

(1)分部压缩方法可以获得约1:0.64 的压缩比;

(2)分部压缩方法为二级压缩算法构成。分别针对模拟量中不同信息类型的数据进行分部压缩;

(3)差分编码和游程编码的算法的复杂度低,其时间复杂度和空间复杂度均为O(n),故算法效率很高。

(4)压缩过程未涉及到数据的工程特性,因此算法可推广至工业过程控制领域,具有一定的实用价值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    13

    文章

    4260

    浏览量

    85653
  • 计算机
    +关注

    关注

    19

    文章

    7413

    浏览量

    87694
  • DCS
    DCS
    +关注

    关注

    20

    文章

    605

    浏览量

    49957
收藏 人收藏

    评论

    相关推荐

    计算机存储系统的构成

    计算机存储系统是计算机中用于存放程序和数据的设备或部件的集合,它构成了计算机信息处理的基础。个完整的
    的头像 发表于 09-26 15:25 543次阅读

    plc模拟量计算与优势

    模拟量是指那些连续变化的物理,它们可以在定范围内取任意值。这些物理包括但不限于电压、电流、压力、温度、速度和流量等。PLC系统
    的头像 发表于 09-16 10:16 350次阅读

    plc模拟量和数字量之间的转换方法

    PLC(Programmable Logic Controller,可编程逻辑控制器)是工业自动化领域中常用的一种控制设备。PLC系统模拟量和数字量是两
    的头像 发表于 08-30 10:51 1839次阅读

    怎样将模拟量转换为数字量

    、模数转换的原理 模拟信号与数字信号 模拟信号是指信号的幅度随时间连续变化的信号,例如声音、图像、温度等。数字信号是指信号的幅度只有两状态(通常为高电平和低电平)的信号,例如计算机中
    的头像 发表于 08-30 09:21 669次阅读

    数字量与模拟量特点、应用场景及转换方式

    着广泛的应用,如数字电路、计算机、通信等领域。 模拟量 模拟量一种连续的信号,它可以取任意值,通常用模拟信号表示。
    的头像 发表于 08-30 09:18 720次阅读

    计算机中总线的作用是什么

    计算机中,总线(Bus)扮演着极其重要的角色,它是计算机内部各功能部件之间传送信息的公共通信干线。总线不仅连接了计算机的各个核心组件,还确保了数据、指令和控制信号的高效、准确传输。
    的头像 发表于 08-26 15:57 811次阅读

    存储微型计算机系统的作用

    存储微型计算机系统扮演着至关重要的角色,它是计算机存储和处理数据的核心部件。以下将详细介绍
    的头像 发表于 08-22 14:25 1602次阅读

    边沿触发器计算机中的应用

    边沿触发器计算机中的应用极为广泛,它们作为数字电路的基本单元,对于实现计算机内部的时序控制、数据存储与传输、以及复杂逻辑功能等方面起着至
    的头像 发表于 08-12 14:20 366次阅读

    三态缓冲器计算机中的应用

    电路不影响其他电路和总线的前提下,能够灵活地控制其输出状态。以下将详细探讨三态缓冲器计算机中的具体应用,内容将涵盖其定义、优势以及不同计算机
    的头像 发表于 08-02 17:48 865次阅读

    DRAM计算机中的应用

    DRAM(Dynamic Random Access Memory,动态随机存取存储器)计算机系统扮演着至关重要的角色。它是一种半导体
    的头像 发表于 07-24 17:04 903次阅读

    4到20ma模拟量信号怎么测

    的测量方法、原理、特点以及注意事项。 、4到20mA模拟量信号的基本概念 1.1 4到20mA信号的定义 4到20mA模拟量信号是
    的头像 发表于 06-20 11:37 1576次阅读

    PLC获取模拟量方法

    工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)作为一种核心控制设备,其处理模拟量的能力至关重要。模拟量通常指的是连续变化的物理
    的头像 发表于 06-18 10:58 643次阅读

    纯硅振荡器兼容SiTime边缘计算机中的应用

    纯硅振荡器兼容SiTime边缘计算机中的应用
    的头像 发表于 04-29 10:09 311次阅读
    纯硅振荡器兼容SiTime<b class='flag-5'>在</b>边缘<b class='flag-5'>计算机中</b>的应用

    模拟量和数字量是什么意思

    电子学和信号处理领域,数字量和模拟量是两最基本的信号类型。它们几乎在所有电子设备和系统中都会涉及到,从简单的家用电器到复杂的计算机网络,都离不开对这两
    的头像 发表于 02-16 17:35 3370次阅读
    <b class='flag-5'>模拟量</b>和数字量是什么意思

    量子计算机的作用有哪些

    认为是未来计算机技术的重要发展方向。 、量子计算机的基本概念 量子计算机的核心是量子比特,与经典计算机中的比特不同,量子比特可以同时处于0
    的头像 发表于 12-30 14:32 1816次阅读