CN116979972B - 一种针对模数转换器采集数据的压缩及解压缩方法 - Google Patents
一种针对模数转换器采集数据的压缩及解压缩方法 Download PDFInfo
- Publication number
- CN116979972B CN116979972B CN202311219191.6A CN202311219191A CN116979972B CN 116979972 B CN116979972 B CN 116979972B CN 202311219191 A CN202311219191 A CN 202311219191A CN 116979972 B CN116979972 B CN 116979972B
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- bits
- flag
- 8bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000007906 compression Methods 0.000 title abstract description 30
- 230000006835 compression Effects 0.000 title abstract description 30
- 230000006837 decompression Effects 0.000 title abstract description 9
- 238000013500 data storage Methods 0.000 claims abstract description 7
- 230000008707 rearrangement Effects 0.000 claims abstract description 3
- 230000001133 acceleration Effects 0.000 abstract description 2
- 238000013144 data compression Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种针对模数转换器采集数据的压缩及解压缩方法,涉及数据处理技术领域,输入模数转换器ADC采集的数据;判断数据大小是否超出门限,如果超出按照设定的数据存储格式重新排列数据,设置标志位为0,组成16位数,输出数据;如果未超出门限,截出数据的2~8位,设置标志位为1,组成8位数,输出数据;接收端判断数据标志位,如果数据标志位为1,则将数据扩充为16位,输出数据;如果数据标志位为0,则与下一个8位数组成16位数,重新排列后输出数据。本发明实现方式简单适用于FPGA加速运算;运算量小,处理速度快;对于ADC采集数据有较高的压缩比;数据相对独立,如果有部分数据错误或丢失不会对其他数据造成影响。
Description
技术领域
本发明涉及数据处理技术领域,具体的说,是一种针对模数转换器采集数据的压缩及解压缩方法。
背景技术
无损数据压缩是指压缩数据解压后与原来的数据完全相同。无损压缩和有损数据压缩相比,通常压缩比小于有损压缩。传统的无损压缩算法在理论模型上主要分为2种:概率模型和字典模型。基于概率模型的算法包括霍夫曼编码和算术编码等。霍夫曼编码主要方法是对于出现概率大的符号用较少的位数来表示,而对于出现概率小的符号用较多的位数来表示。其编码效率主要取决于需编码的符号出现的概率分布,分布越集中压缩比越高。算术编码的基本思想是将编码的一条信息或字符串表示成0与1之间的一段间隔,即对一串符号直接编码成[0,1]区间上的一个浮点小数。也就是说算术编码用小数来表示二进制数,并由此接近无损压缩算法的熵极限。字典模型并不直接计算字符出现的概率,而是使用一本字典。其主要方法是将已经编码过的信息作为字典,如果需要编码的信息曾经出现过,就输出该字符串的出现位置及长度,否则就输出一个新的字符串,如LZ77和LZ78机器应用算法,如LZSS和LZW(LZSS和LZW是基于字典模型的无损压缩算法的理论基础)。传统的压缩算法有各自的优点,但是要实现较高压缩比的前提是数据比较规律或者数据重复率比较高,比较适用于文本、图像、视频等类型的数据压缩。但是对于模数转换器ADC采集的波形数据,波形变化比较大,并且由于噪声的存在使得数据重复率较低,导致使用传统的压缩算法来压缩ADC采集的数据时压缩比并不高。对于调制信号,数据压缩后依然有原始大小的95%左右。
对于相对简单的单载波数据,在不同信噪比下使用字典模型对数据进行压缩效果如图1所示,然而对于高速ADC采集数据的场景,使用传统的数据压缩解压算法在软件中实时处理的速度远远不够。由于传统压缩算法相对复杂,如果在可编程门阵列FPGA中实现有难度,对于ADC采集数据压缩率不高;并且如果使用传统的压缩算法,数据传输或者存储过程中有丢失或者错误,可能导致所有数据都无法恢复。因此需要使用新的压缩方法。
发明内容
本发明的目的在于提供一种针对模数转换器采集数据的压缩及解压缩方法,用于解决传统压缩算法在软件中实时处理的速度远远不够、可编程门阵列FPGA中实现有难度,对于ADC采集数据压缩率不高以及数据传输或者存储过程中有丢失或者错误的问题。
本发明通过下述技术方案解决上述问题:
一种模数转换器采集数据的压缩及解压缩方法,包括:
步骤S100、输入模数转换器ADC采集的数据;
步骤S200、判断数据大小是否超出门限,如果超出按照设定的数据存储格式重新排列数据,设置标志位为0,组成16位数,输出数据;如果未超出门限,截出数据的2~8位,设置标志位为1,组成8位数,输出数据;
步骤S300、接收端判断数据标志位,如果数据标志位为1,则将数据扩充为16位,输出数据;如果数据标志位为0,则与下一个8位数组成16位数,重新排列后输出数据。
所述步骤S200具体包括:
对采集数据的大小进行判断,如果数据处于-256~255之间,则对数据进行压缩,否则不对数据进行压缩;
原始数据的数据位用Di表示,i=0,1,2,…,15,压缩后的数据位用D’j表示,j=0,1,2,...,7;当数据需要压缩时,D’0位为标志位Flag,置1,D’7=D8,D’6=D7,D’5=D6,D’4=D5,D’3=D4,D’2=D3,D’1=D2;
当数据不需要压缩时,数据存储格式为D’15-D’0,其中D’0位为标志位Flag,置0,D’8位为标志位Flag,置0,D’15=D15,D’14=D14,D’13=D13,D’12=D12,D’11=D11,D’10=D10,D’9=D9,D’7=D8,D’6=D7,D’5=D6,D’4=D5,D’3=D4,D’2=D3,D’1=D2。
所述步骤S300具体包括:接收端检测每个8bit数据的标志位Flag,如果Flag=1,则此数据需要扩充成16位,数据还原成:高位8bit数据为D’7,第7~2位为D’6-D’1,最低2位为0;如果Flag=0,则不需要扩充,将8bit数据与下一个8bit数据合并成16bit数据,合并后数据表示为D’15-D’0,则数据还原为:高位8bit数据为D’15~D’9、D’7,低位8bit数据为D’6~D’1、0、0。
本发明与现有技术相比,具有以下优点及有益效果:
本发明实现方式简单,适用于FPGA加速运算;运算量小,处理速度快;对于ADC采集数据有较高的压缩比;数据相对独立,如果有部分数据错误或丢失不会对其他数据造成影响。
附图说明
图1为现有技术中简单的单载波数据在不同信噪比下使用字典模型对数据进行压缩的效果图;
图2为本发明的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图2所示,一种模数转换器采集数据的压缩及解压缩方法,包括:
步骤S100、输入模数转换器ADC采集的数据;16位的ADC,有效位数一般都在12bit以下,数据的低位实际上基本都被淹没在噪声之中,因此可以在16bit数据中拿出2bit作为标志使用,而剩余的14bit足以表征采集到的信号,不会对信号质量产生影响;
步骤S200、判断数据大小,如果数据处于-256~255之间,则能够对数据进行压缩,否则不能对数据进行压缩;
原始数据的数据位用Di表示,i=0,1,2,…,15,压缩后的数据位用D’j表示,j=0,1,2,...,7,不需要压缩的数据处理后的数据位用D’k表示,k=0,1,2,…,15。
常规数据存储格式为:
当数据不需要压缩时,数据存储格式如下所示,其中标志位Flag为0:
当需要压缩数据时,截取数据2~8位,数据存储格式如下所示,其中标志位Flag为1:
解压缩为压缩的逆过程,首先检测每个8bit数据的最低位(flag标志位)。
如果flag=1,表示此数据为压缩过的数据,需要扩充成16位,数据按照如下格式进行还原:
如果flag=0,表示此数据为未被压缩过的数据,不需要扩充,只需将该8bit数据与下一个8bit数据进行合并,并且按照常规格式进行还原即可。未压缩还原数据格式如下:
本方案采样的数据压缩算法压缩比也会受到输入信号的影响,如果输入信号功率较小时(ADC输入数据功率≤-42dBFS)(FS是full scale,满量程,dBFS表示信号相对满幅的功率级别),最优可以达到2:1。如果输入数据功率较大,采集到的数据有大有小,如果数据符合随机分布,则需要压缩的数据比例为9/16=0.5625,因此压缩比为1:(0.5625*0.5+0.4375)≈1.4:1。
高速数据采集场景中一般采用的ADC数据分辨率是16位,因此每个采样点的数据占用16bit空间。但是对于信号波形而言,波形有起有伏,数据有大有小。对于部分较小的数据,其高位都是符号位,对于传输和存储是非常浪费的。基于这种考虑,本发明提供了一种可变长数据位的压缩方法来对数据进行压缩。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (2)
1.一种模数转换器采集数据的压缩及解压缩方法,其特征在于,包括:
步骤S100、输入模数转换器ADC采集的数据;
步骤S200、判断数据大小是否超出门限,如果超出按照设定的数据存储格式重新排列数据,设置标志位为0,组成16位数,输出数据;如果未超出门限,截出数据的2~8位,设置标志位为1,组成8位数,输出数据;
所述步骤S200具体包括:
对采集数据的大小进行判断,如果数据处于-256~255之间,则对数据进行压缩,否则不对数据进行压缩;
原始数据的数据位用Di表示,i=0,1,2,…,15,压缩后的数据位用D’j表示,j=0,1,2,...,7;当数据需要压缩时,D’0位为标志位Flag,置1,D’7=D8,D’6=D7,D’5=D6,D’4=D5,D’3=D4,D’2=D3,D’1=D2;
当数据不需要压缩时,不需要压缩的数据处理后的数据位用D’k表示,k=0,1,2,...,15,其中D’0位为标志位Flag,置0,D’8位为标志位Flag,置0,D’15=D15,D’14=D14,D’13=D13,D’12=D12,D’11=D11,D’10=D10,D’9=D9,D’7=D8,D’6=D7,D’5=D6,D’4=D5,D’3=D4,D’2=D3,D’1=D2;
步骤S300、接收端判断数据标志位,如果数据标志位为1,则将数据扩充为16位,输出数据;如果数据标志位为0,则与下一个8位数组成16位数,重新排列后输出数据。
2.根据权利要求1所述的一种模数转换器采集数据的压缩及解压缩方法,其特征在于,所述步骤S300具体包括:接收端检测每个8bit数据的标志位Flag,如果Flag=1,则此数据需要扩充成16位,数据还原成:高位8bit数据为D’7,第7~2位为D’6-D’1,最低2位为0;如果Flag=0,则不需要扩充,将8bit数据与下一个8bit数据合并成16bit数据,合并后数据表示为D’15-D’0,则数据还原为:高位8bit数据为D’15~D’9、D’7,低位8bit数据为D’6~D’1、0、0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219191.6A CN116979972B (zh) | 2023-09-21 | 2023-09-21 | 一种针对模数转换器采集数据的压缩及解压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219191.6A CN116979972B (zh) | 2023-09-21 | 2023-09-21 | 一种针对模数转换器采集数据的压缩及解压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116979972A CN116979972A (zh) | 2023-10-31 |
CN116979972B true CN116979972B (zh) | 2023-12-12 |
Family
ID=88477046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311219191.6A Active CN116979972B (zh) | 2023-09-21 | 2023-09-21 | 一种针对模数转换器采集数据的压缩及解压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116979972B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933104A (en) * | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
US6529512B1 (en) * | 1997-07-15 | 2003-03-04 | International Business Machines Corporation | Statistical method of data compression and decompression |
CN102291398A (zh) * | 2011-08-05 | 2011-12-21 | 中兴通讯股份有限公司 | 无线通讯系统中数据压缩与解压缩方法、装置及系统 |
JP2012010319A (ja) * | 2010-05-28 | 2012-01-12 | Hitachi Ltd | 時系列データの圧縮方法および圧縮装置 |
CN108616280A (zh) * | 2018-04-09 | 2018-10-02 | 重庆大学 | 非稳态数据实时采集数据压缩方法 |
CN112134568A (zh) * | 2020-09-15 | 2020-12-25 | 广州市埃信电信有限公司 | 一种有损的数据压缩、解压缩方法及其系统 |
CN115913246A (zh) * | 2022-09-07 | 2023-04-04 | 江苏科技大学 | 基于自适应瞬时熵的无损数据压缩算法 |
-
2023
- 2023-09-21 CN CN202311219191.6A patent/CN116979972B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933104A (en) * | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
US6529512B1 (en) * | 1997-07-15 | 2003-03-04 | International Business Machines Corporation | Statistical method of data compression and decompression |
JP2012010319A (ja) * | 2010-05-28 | 2012-01-12 | Hitachi Ltd | 時系列データの圧縮方法および圧縮装置 |
CN102291398A (zh) * | 2011-08-05 | 2011-12-21 | 中兴通讯股份有限公司 | 无线通讯系统中数据压缩与解压缩方法、装置及系统 |
CN108616280A (zh) * | 2018-04-09 | 2018-10-02 | 重庆大学 | 非稳态数据实时采集数据压缩方法 |
CN112134568A (zh) * | 2020-09-15 | 2020-12-25 | 广州市埃信电信有限公司 | 一种有损的数据压缩、解压缩方法及其系统 |
CN115913246A (zh) * | 2022-09-07 | 2023-04-04 | 江苏科技大学 | 基于自适应瞬时熵的无损数据压缩算法 |
Non-Patent Citations (2)
Title |
---|
Data compression for energy efficient IoT solutions;Biljana Risteska Stojkoska等;《25th Telecommunications forum TELFOR 2017》;1-4 * |
全数字化焊缝超声探伤系统设计Ⅰ——FPGA模块设计;宫苍穹;《中国优秀硕士学位论文全文数据库信息科技辑》;I140-383 * |
Also Published As
Publication number | Publication date |
---|---|
CN116979972A (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7365658B2 (en) | Method and apparatus for lossless run-length data encoding | |
EP1057269B1 (en) | Block-wise adaptive statistical data compressor | |
US20200235750A1 (en) | Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation | |
CA2334497C (en) | Method and apparatus for data compression of network packets employing per-packet hash tables | |
US5955976A (en) | Data compression for use with a communications channel | |
CN101501999B (zh) | 数据编码 | |
US20090045991A1 (en) | Alternative encoding for lzss output | |
US5877711A (en) | Method and apparatus for performing adaptive data compression | |
CN108810553B (zh) | 一种基于稀疏化处理的移动节点监测数据序列压缩方法 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN114520659A (zh) | 结合rANS和LZ4编码的数据无损压缩、解码方法 | |
EP1266455A1 (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
CN114614833A (zh) | 自适应游程编码的测试数据压缩及解压方法 | |
US20100321218A1 (en) | Lossless content encoding | |
US6748520B1 (en) | System and method for compressing and decompressing a binary code image | |
Gupta et al. | A review on different types of lossless data compression techniques | |
CN116979972B (zh) | 一种针对模数转换器采集数据的压缩及解压缩方法 | |
US8537038B1 (en) | Efficient compression method for sorted data representations | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
US5708431A (en) | Method for compression coding of potentially unbounded integers | |
KR100462789B1 (ko) | 이진 산술 부호화를 이용한 다중 부호 데이터 압축 방법및 장치 | |
Kwong et al. | A statistical Lempel-Ziv compression algorithm for personal digital assistant (PDA) | |
Logeswaran et al. | Performance survey of several lossless compression algorithms for telemetry applications | |
US20120016918A1 (en) | Method for Compressing Information | |
CN117465471A (zh) | 一种针对文本文件的无损压缩系统及其压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |