数据压缩算法研究
数据压缩算法研究(精选9篇)
数据压缩算法研究 第1篇
心血管疾病是当今危害人类健康的主要疾病之一。随着心电生理学研究的开展和深入, 心电图检查已经是目前临床上诊断心血管疾病的重要手段[1]。心电远程监护 (ECG Telemonitor) 系统的发展, 使得心脏病人可以得到及时有效的治疗。通常ECG信号的数据量是很庞大的, 例如采集一个患者3导联2 4小时心电数据, 若以2 5 0Hz采样率, 1 2位A/D转换精度计算, 则产生的数据量约为100Mbyte。心电监护仪对ECG信号采样所得的大量数据是难以存储和传输的, 为了减少数据存储空间, 有必要采用数据压缩算法对心电数据进行压缩。
在过去的几十年中, 各国的科研人员针对心电信号压缩提出了许多方法。这些方法大致可以分为三类:直接压缩方法、变换域压缩方法和参数提取方法[2]。近年来又在此基础上发展出了神经网络法和小波神经网络法。本文通过压缩技术的评价标准, 对每一压缩方法的压缩结果进行分析判断, 得出了每种方法用于心电信号数据压缩的优缺点。
1 直接压缩方法
直接 (时域) 压缩方法是建立在直接分析原始数据的冗余基础上, 利用插值、预测或模板匹配处理等, 去除冗余。它包括AZTEC算法、SAPA算法、TP算法、CORTES算法、LADT算法、QRS波模板匹配法等, 其中性能最好的是SAPA算法和LADT算法。直接压缩简单快速, 易于实时实现, 但是很难保证高的数据压缩比和高的信息保真度, 鲁棒性与其它两种方法相比较差, 所以很少单独使用直接压缩算法。
2 变换域压缩方法
变换域压缩方法是一种直观反应信息中关于消除数据之间相关性的数据压缩理论的方法。它利用线性正交变换将原始信号从时域转化为频域, 从而排除信号中的冗余信息。该方法具有失真小、抑制噪声能力强的优点。主要包括小波变换和离散余弦变换。
2.1 小波变换
小波变换是一种处理非平稳信号的时、频局部化分析方法[3], 它有着较高的高频域时间分辨率和低频域频率分辨率。一方面, 它可以消除各种噪声对诊断的干扰, 例如病人移动、肌肉收缩等;另一方面, 它又有良好的特征摄取以及数据压缩能力, 故一经问世就受到基础学科与应用工程的广泛重视, 在非线性分析、算子理论、数值分析等领域都有许多应用。
近年来, 基于小波变换的ECG压缩算法不断涌出, 提出了很多更完善的方法。由于方法众多, 本文不一一列举, 只对以下两种方法进行阐述。
2.1.1 基于小波变换的混合二维心电数据压缩算法[4]。
ECG信号具有两种相关性, 即心跳间相关性和心跳内相关性。通常大多数ECG压缩算法只利用了心跳内相关性, 而忽略了心跳间相关性。基于小波变换的混合二维心电数据压缩算法则充分利用了这两种相关性。该方法适合于各种波形的ECG信号, 它既能保证良好的压缩质量, 又可以获得较高的压缩比。但因其对噪声干扰较敏感, 故在干扰信号存在时, 压缩效果不理想, 所以在实际应用中, 人们通常先采取一定措施消除干扰信号, 再用该方法进行压缩。
2.1.2 应用时变小波包零树编码实现心电数据的压缩。
传统小波零树编码在给定编码阈值情况下, 会导致孤立零[5]的出现, 使得压缩效果不能进一步提高。时变小波包零树编码算法则克服了这一缺点, 它结合时频相关性和频域最优小波包分解, 在降低信息熵的同时改善了孤立零的存在问题, 保留了小波零树编码实现累进传输编码的优点, 并且该方法实现了单一符号码流编码, 降低了编码噪声的比特数, 具有良好的压缩效果。该方法在解决孤立零的问题时, 增加了所需编码的系数, 使得运算工作量和计算复杂性大大提高。
2.2 离散余弦变换
离散余弦变换由Ahmed和Ron于1974年提出, 至今已有近40年历史。DCT是正交变换的一种, 它通过正交变换把图像从空间域转变到能量比较集中的变换域, 然后对变换系数进行量化、编码, 从而达到压缩数据的目的[6]。离散余弦变换 (DCT) 由于其算法简单有效, 去噪性能高, 具有较好的能量压缩特性, 并且允许使用各种快速算法, 重构波形质量好, 故在图像压缩领域有着广泛的应用。为了进一步提高压缩比, 在DCT变换之后又进行了量化, 但量化虽然取得了较高的压缩比, 却使图像产生了方块效应, 从而降低了重建图像的主观质量。
3 神经网络
神经网络是由一组大规模并行分布式处理机构成的能存储并使用知识的网络[7]。作为一种自适应非线性建模工具, 神经网学、计算机等众多学科, 才能进一步拓展研究领域, 取得更好的压缩效果。
4 小波神经网络
小波神经网络是将小波变换与神经网络相结合而产生的一种新的压缩方法, 也称小波网络。它用小波函数作为神经元激活函数, 使得小波分析与神经网络相结合。小波网络融合了小波变换和神经网络的优点, 并弥补了各自的不足, 故小波神经网络有着其他方法无可比拟的优势, 包括良好的函数逼近能力和模式识别能力, 学习算法的多分辨率特性, 良好的波形重建能力及较高的压缩比和鲁棒性等, 有较强的实用价值。所以, 小波网络从一开始就受到了广泛关注, 并迅速成为研究热点。但目前小波网络仍处于发展阶段, 许多问题仍有待于进一步深入研究。如目前的研究偏重于改进学习算法, 网络模型的结构方面并未深入, 在小波函数的选取、收敛性等一些细节问题方面也有待于进一步深入的探讨研究[8]。
5 结语
本文针对较常用的心电信号数据压缩进行了细致的分析, 得出了相应的优缺点。其中, 直接 (时域) 压缩算法简单快速, 但很难保证高的压缩比和信息保真度。变换域压缩算法压缩比高, 然而计算所需存储空间大, 计算量也大。神经网络易受噪声干扰, 鲁棒性差。综上所述, 笔者认为小波神经网络数据压缩算法既继承了小波基变换的函数表达能力和神经网络的自适应特性, 又能自适应神经元个数以提高压缩比, 表现出了良好的ECG数据压缩效果。但是, 迄今为止, 小波神经网络还处于发展阶段, 很多问题的细节方面仍可以进一步优化, 在未来的心电信号数据压缩领域仍有较广阔的发展前景。
摘要:随着心电监护系统的不断深入发展, 心电信号数据压缩算法在减少存储空间、提高传输效率方面日益凸显出其重要性。在过去的几十年, 已经研究出很多压缩算法, 本文大量查阅资料分析现有的算法, 分析其优缺点, 给出综合评价。本文不仅将已有的算法进行综述分析, 使各种算法的使用情况一目了然, 还为心电信号数据压缩算法的深入研究做了基本的铺垫。
关键词:远程监护系统,心电信号,数据压缩
参考文献
[1]薛涛.基于小波变换的E C G信号的特征提取与数据压缩[J].江苏大学硕士学士论文, 2007年6月
[2]孙景群, 冯焕清.心电数据压缩方法的新进展[J].上海生物医学工程, 1999年01期
[3]路敬祎.基于小波变换的图像压缩编码技术的研究[J].大庆石油学院硕士研究生学位论文, 2005年3月
[4]王兴元, 孟娟.基于小波变换的混合二维ECG数据压缩算法[J].生物物理学报, 2006年03期
[5]周仲兴, 张永伟, 万柏坤, 张力新, 明东, 李轶, 程龙龙.应用时变小波包零数编码实现心电数据的高效压缩[J].天津大学学报, 2007年02期
[6]姜秀华.DCT压缩编码[J]
[7]郭巧惠.基于小波神经网络的心电信号数据压缩方法研究.重庆大学硕士学位论文, 2006年6月
数据压缩算法研究 第2篇
提出了一种新的海量地震数据准无损压缩算法,并针对LWT的特点给出了率失真优化的码率分配方案.
作 者:邹江花 朱荣 秦前清 作者单位:邹江花(武汉大学,电子信息学院,湖北,武汉,430079)
朱荣(武汉大学,多媒体实验室,湖北,武汉,430079)
秦前清(武汉大学,测绘遥感信息国家重点实验室,湖北,武汉,430079)
数据压缩算法研究 第3篇
收稿日期: 20131217
基金项目: 黑龙江省自然科学基金项目(F201227)
作者简介: 宋鸿梅(1971),女,讲师,博士,主要从事数据压缩、图像压缩、图像处理方面的研究。
摘要: 提出一种合成孔径雷达(synthetic aperture radar,SAR)原始数据幅相(amplitude and phase,AP)变换域压缩算法,该算法首先把以幅度、相位形式表示的SAR原始数据做离散余弦变换以降低数据间的相关性,并使数据的统计特性符合高斯分布,再对变换系数进行网格编码量化(TCQ)。对实测SAR数据进行了实验,结果表明该算法能够有效地控制相位精度,在同等量化标准下,平均误差和相位误差有了一定的降低,数据相似度、数据信噪比、图像信噪比等指标都有相应的改善。
关键词: SAR原始数据压缩; 离散余弦变换; 比特分配; 网格编码量化
中图分类号: TN 958文献标志码: Adoi: 10.3969/j.issn.10055630.2014.03.007
Compression algorithm for SAR AP raw data based on DCT
SONG Hongmei, LIU Xianglou, MU Haiwei, ZHAO Dongyan
(College of Electronic Science, Northeast Petroleum University, Daqing 163318, China)
Abstract: In this paper, a transform algorithm for compressing synthetic aperture radar (SAR) raw amplitude and phase (AP) data is proposed. This algorithm is based on combination of discrete cosine transform (DCT) and trellis coding quantization (TCQ). Firstly, the SAR raw data, expressed in the form of amplitude and phase, is done with the DCT in order to reduce the correlation of all data, and makes the statistical properties of the data in according to the Gaussian distribution. Then, the transform coefficients are done with the TCQ. Test results on the actual measurement SAR raw data show that the proposed algorithm can effectively control the precision of the phase data. Under the same quantization criteria, the average error and phase error has been reduced and the data similarity, the signal to noise ratio (SNR) of both data and image have been improved.
Key words: SAR raw data compression; discrete cosine transform; bit allocation; trellis coding quantization
引言合成孔径雷达(synthetic aperture radar,SAR)成像具有成像面积大的特点,能全天候全天时工作,在民用和军工领域都有广泛的应用。早在1951年科学家首次提出了利用频率分析方法改善雷达的角分辨率,经过数十年的发展,高分辨率、干涉、多极多频成像成为SAR成像的主要特点[1],而相位精度对SAR高品质成像质量有着重要意义。经典的雷达原始数据压缩算法BAQ、分块浮点量化(BFPQ)以及后来发展的矢量量化、正交变换后量化等算法都着重于提高算法的信噪比,没有对相位数据进行专门处理。文献[2]提出的算法把SAR的 I、Q两路数据在极坐标下表示为幅度和相位数据,可以独立控制相位的精度,但算法的信噪比有待提高。SAR原始数据转换为极坐标下的幅度和相位数据,数据间存在着微弱的相关性,为了进一步改善压缩性能,采用了能够去除相关性的正交变换。在所有的正交变换中,离散余弦变换(DCT)具有仅次于最优正交变换KL的正交基,可以有效地去除数据间的相关性,并且DCT变换拥有二维可分离特性和快速数值计算方法[3]。因此本文提出了一种基于DCT变换的SAR原始数据的幅相变换域压缩方案。1SAR原始数据特点分析[4]SAR成像区域内的散射体很多,所以SAR回波信号可以看作是大量统计独立的随机矢量的和,可以表示为A(x,y,z)=∑N-1k=0Akexp(iΦk)(1)其中,N为分辨单元内所有独立散射体的总数,Ak为第k个散射体的回波数据幅度,Φk为第k个散射体的回波数据相位。所以SAR回波信号可以表示为极坐标下的幅度数据和相位数据,也可表示直角坐标下实部数据和虚部数据(I、Q两路数据)。大量实测数据说明,SAR的I、Q两路均符合高斯分布;SAR的幅度数据服从瑞利分布,相位数据服从[-π,π]的均匀分布。SAR成像面积较其他成像模式要大得多,数据量非常庞大,为了分析数据的概率分布特性和数据间的相关性,从SAR原始数据中截取大小为512×512的任意一块,分析计算幅度数据和相位数据的概率分布和相关系数,结果如图1~图4所示。光学仪器第36卷
第3期宋鸿梅,等:基于离散余弦变换的SAR原始数据幅相压缩算法
图1幅度和相位数据的概率分布
Fig.1The probability distribution of the AP data
图2幅度和相位数据的相关系数
Fig.2The correlation coefficients of the AP data
图3幅度和相位数据DCT系数的概率分布
Fig.3The probability distribution of the DCT coefficients of the AP data
图4幅度和相位数据DCT系数的相关系数
Fig.4The correlation of the DCT coefficients of the AP data
幅度和相位数据经DCT变换后,两者的变换系数均呈正态分布,这样不仅便于设计码书,同时数据间的相关性也被有效地去除。2本文算法解析本文数据压缩算法的流程具体包括:(1)把SAR原始数据转换为极坐标下的幅度数据和相位数据;(2)把SAR原始数据的幅度数据和相位数据分割成合适大小的数据块;(3)对幅度数据和相位数据分别做DCT变换;(4)按照数据信息熵进行比特分配;(5)用Viterbi算法对TCQ量化,输出压缩码流。解码流程为编码流程的逆过程。
nlc202309032023
2.1SAR原始数据分块SAR成像特点决定了SAR原始数据量非常庞大,为了加快处理速度,往往需要并行处理。在实际处理时通常要分块进行,数据分块还可以降低数据的动态范围,便于量化。不同统计特性的数据在量化时采用的量化码书不同,使用统计特性不符的码书量化会急剧恶化量化性能。数据分块过小,样本太少不能体现统计特性,无法选择合适的量化码书对数据进行量化。数据分块过大,相应数据的动态范围也很大,会带来很大的量化噪声而影响最终的压缩性能。经过DCT变换,系数按照频率重新组合,低频系数含有较多信息,高频系数含有较少信息。为使每组频率的DCT变换系数近似吻合高斯分布,经过核算可知,把SAR原始数据分为256×256的数据块进行处理是比较适中的。
2.2离散余弦变换离散余弦变换是由Ahmed等于70年代提出,正交变换可以有效去除数据间的相关性而不改变数据的信息熵,而DCT是性能最接近于KL变换的准最佳正交变换,并且DCT有二维可分离快速变换算法,计算复杂度小,便于硬件实现。因为DCT优异的去相关属性,使得变换后的SAR幅度和相位数据的统计特性均非常接近于白噪声,其概率与高斯分布更加吻合,两组数据均可使用高斯量化码书对其量化,简化了码书的设计。对于SAR原始数据做二维DCT采用行列分离算法,即直接利用一维DCT快速算法或硬件结构,方便实现。
2.3量化比特分配对于SAR原始数据的压缩处理,涉及到两个方面的比特分配。SAR的幅度数据和相位数据要分配量化比特,幅度数据和相位数据分别进行DCT后,各组DCT系数也要分配量化比特。SAR原始数据I、Q两路数据统计独立,转换为极坐标下的幅度和相位数据后,幅度、相位仍然统计独立,相位数据包含比幅度数据多的信息,相位数据的信息熵要大于幅度数据的信息熵,正交变换只是改变了数据的基向量,因而不会改变数据的信息熵。同幅SAR数据的幅度数据含有比相位数据少的信息量[5],为了减小量化噪声,信息量多的分配较多比特,信息量少的分配较少比特。对于3比特/样本量化时,分配相位数据4比特/样本,幅度数据2比特/样本[5]。不同频率DCT系数的能量不同,能量大多聚集在低频系数上,重构时低频系数对于原始数据的贡献也大,因此可以对能量较高的低频系数分配较多量化比特数,而对能量较低的高频系数则分配较少的比特数,使得在总比特数不变,总的量化误差为最小,还可实现比特的非整数分配。下面是根据香农率失真理论对各组系数分配量化比特的定量计算。假设对信号无记忆标量量化,则量化失真可表示为d(R)=E[(X-X^)2](2)其中,X为待量化信号,X^为信号重建值,R为量化比特率。对于高斯分布信号,其率失真函数可以表示为R(D)=12log2σ2D(3)其中,D表示最大平均失真,σ表示数据的方差。选择8×8的DCT变换块,共有64组矢量,则所有系数量化的平均失真为:DT(RT)=164∑63n=0dn(Rn)(4)其中,DT为平均失真,RT为平均比特率,dn为失真函数,Rn为第n组的比特率。由式(3)可以求出D=σ2×4-R(5)把式(5)代入式(4)中,可得DT(RT)=164∑63n=0σ2n×4-Rn(6)最优比特分配问题为:当所有系数量化的平均比特率RT=1M∑M-1n=0Rn为一定时,使得式(6)所定义的平均量化失真为最小。为此,建立目标函数:argminRnJ=argminRn1M∑M-1n=0σ2n×4-Rn+λ1M∑M-1n=0Rn-RT(7)求解上述最小化问题,需求解方程组JRn=σ2n(-ln4)4-Rn+λ=0,n=0,1,…,M-1
Jλ=1M∑M-1n=0Rn-RT=0(8)求解方程组(8),可得Rn=RT+12log2σ2n-1M∑M-1n=0log2σ2n(9)其中M=64。求得的Rn一般不能为整数,通常需要对其进行四舍五入取整。
2.4网格编码量化和Viterbi算法[6]网格编码量化(TCQ)具有网格的约束特性,是标量量化的一种,量化码书是同样量化标准的标量量化码书的两倍,从而量化噪声得以进一步抑制,TCQ从通信理论的网格编码调制(TCM)中借鉴了网格和集合划分的思想[7],使其量化噪声接近于率失真理论下的均方误差,而不会消耗过多的运算资源。有限状态机的状态转移图可以构成网格,每一个状态有两个分支进入和离开的网格应用最为广泛。在量化编码时,从一个特定的初始状态依照网格的约束特性穿行网格,采用Viterbi算法进行网格编码,边穿行,边遗弃失真较大的路径,记录失真最小路径[6,8]。3实验结果分析比较采用本文提出算法对实测的SAR原始数据进行验证,一般来说,SAR原始数据非常庞大,为了能在台式机上顺利验证,截取一幅SAR原始数据中的方位向4 096点,距离向4 096点两路数据。把数据分为256×256的小块,采用3比特/样本量化进行实验,幅度数据分配2比特/样本,相位数据分配4比特/样本。对采用RD(距离多普勒)算法成像后的图像和原始数据进行性能评估,并与常用的原始数据压缩算法进行比较。图像评估参数选择信噪比(SNR)、相关系数(ρ);原始数据评估参数选择量化信噪比(SNR)、逼真度(K)、平均误差(ERMS)、相位误差(—)。评估参数的定义和意义参照文献[4],实验结果如表1所示。
表1各种算法性能比较
Tab.1Performance comparison of different algorithms
压缩算法数据域性能指标SNR/dBKERMS—图像域性能指标SNR/dBρ本文算法15.267 30.989 43.962 30.125 522.935 20.997 7APTCQ15.187 40.989 05.269 30.173 622.842 40.997 4APBAQ14.424 70.976 05.752 90.151 121.736 70.996 7BAQ14.536 20.966 55.679 50.204 221.886 90.996 8
由表1可以看出本文算法相对于常用算法APTCQ、APBAQ和BAQ在各项性能评价指标上均有不同程度的提升,尤其相位误差有了较明显的降低,体现了对SAR原始数据相位精度的保护。4结论本文对SAR原始数据的特点进行了深入的讨论,在此基础上提出了一种SAR原始数据的幅相变换域压缩算法,该算法首先把SAR原始数据转换为极坐标下的相位、幅度数据,再分别对相位数据和幅度数据进行DCT变换,使两组数据的统计特性均符合高斯分布,可以使用统一的高斯量化码书量化,并有效降低了数据间的相关性;再分别对相位数据和幅度数据的变换系数进行TCQ量化和Viterbi编码,网格的约束特性使量化码书扩充了一倍,改善了压缩性能。实验结果表明,该算法相对于其他常用算法对SAR原始数据的各项压缩性能指标均有所改善。参考文献:
[1]林幼权.星载合成孔径成像雷达发展现状与趋势[J].现代雷达,2009,31(10):1013.
[2]姚世超,王岩飞,张冰尘,等.合成孔径雷达原始数据幅相压缩算法[J].电子与信息学,2002,24(11):16271633.
[3]付天舒,韩春杰,隋鑫,等.基于DCT变换的自适应图像水印实现[J].光学仪器,2013,35(3):5157.
[4]潘志刚.低比特率合成孔径雷达数据压缩算法研究[D].北京:中国科学院研究生院,2006.
[5]张文超,王岩飞,潘志刚.合成孔径雷达原始数据压缩AP算法幅相比特分配研究[J].电子与信息学报,2008,30(4):10071010.
[6]UNGERBOECK G.Trellicscoded modulation with redundant signal setsPart Ⅱ:State of the art[J].IEEE Communication Magazine,1987,25(2):1221.
[7]宋鸿梅,王岩飞,潘志刚.基于DCTTCQ的SAR原始数据压缩算法[J].电子与信息学报,2010,25(2):10401044.
[8]TAUBMAN D S,MARCELLIN M W.JPEG2000Image Compression Fundamentals,Standards and Practice[M].Boston:Kluwer Academic Publishers,2002.
数据压缩算法研究 第4篇
在进入本世纪初的十年, 生物的测序技术实现了跨越式的发展, 为生物学研究与发展提供了强大的支持。二代测序技术出现于2005年, 它采用的是一种边合成边测序的技术, 以Roche的454平台、Illumina公司的solexa技术和ABI的SOLID平台为代表, 具有高通量、时间快、成本低的特点[1]。由于二代测序不是单分子测序, 而是将序列打碎成片段后进行测序然后再进行拼接, 所以, 要保证测序的准确性, 需要加大测序的深度。例如, 对某一物种的DNA进行36层测序的含义是指从理论上来说, 这一物种的基因组序列的每个碱基都被测了36次, 通过这样的方法, 尽可能的将这个基因组上所有的碱基都测到, 以提高测序的准确性。较大深度测序在提高测序准确度的同时, 也大大的增加了测序数据的体积。例如, 一个水稻个体进行36层pair-end测序后生成的数据大约有36G之多。测序的数据需要利用计算机进行处理, 这就需要占用硬盘空间或网络传输带宽。根据文献, 近几年测序费用下降的速度远远高于硬盘费用下降的速度[2,3], 如图1所示。
二代测序数据可以分成原始测序数据、与参考基因组比对结果的数据和基因组序列集三类。原始测序数据一般是用文本格式存放的文件, 文件里包含了测序的相关信息, 现在常用的是以fastq格式保存的文本文件, 该文件的每条记录包含读段ID、碱基序列、每个碱基的测序质量分值[4]。与参考基因组比对的数据是指将初始测序的读段参照已有的参考基因组数据进行定位与组装生成的数据, 这些数据一般也是保存在文本文件类型的数据中, 现有的比对结果数据一般存放在SAM/BAM格式的文件里, 这个文件记录了初始测序读段与参考基因组进行比对的结果, 信息较为丰富, 所以文件一般需要较大的存储空间[5]。基因组序列集则是指同一物种的不同个体的基因组信息整合在一起的数据, 虽然同一物种的基因组中的大多数内容都是相同的, 但存在着少许的变异, 这些变异信息的生物学意义有时十分重要。例如:人类基因组中约99%以上都是相同的, 那么具体的每个人有可能有大约1%的基因是不同的, 很多的疾病等数据与这些不同的基因相关。基因组序列集数据一般存放在vcf格式的文件里[6]。
数据压缩一般来说是指采用一种编码技术, 消除原始数据中的冗余信息, 以减少占用的存储空间[7]。数据压缩根据根据实现的原理不同可以分成有损压缩和无损压缩两大类[8], 在数据压缩前后, 没有信息丢失的称为无损压缩;反之, 则为有损压缩。无损压缩算法通常是建立在统计冗余性的基础上的, 常用的算法有字典编码、局部匹配预测、信息熵编码和游程长度编码、BWT矩阵转换等[9]。有损压缩认为在数据压缩过程中, 去除一些不是太重要的信息是可以被接受的, 消去一些不重要的信息对人们理解原始数据没有太大的影响, 如在图像的压缩中去除部份信息后, 对人眼来说是觉察不到的[10]。压缩算法的评价一般是从压缩率和压缩时间两个方面来进行。
2 二代测序压缩算法介绍
由于二代测序的序列数据常常具有一定的生物学意义, 不能随消除, 所以用在二代测序数据上的压缩算法主要是无损压缩算法。针对不同的二代数据, 使用的压缩算法也有所不同。
2.1 原始测序数据的压缩算法
二代测序数据大多以一定格式的文件来保存数据。原始测序数据一般不能直接用于生物序列的分析, 还需要根据是否有参考基因组来做进一步的处理, 才可用于生物学研究, 但是许多的生物数据中心都要求研究人员必需提供初始的测序数据供其它研究人员使用或进行实验的验证, 所以研究如何对原始测序数据进行压缩也是很有意义的。原始测序数据使用一般是采用Fastq格式的文本文档进行保存。这类数据常常使用基于字典的思想的LZ77算法进行压缩, 可以达到3倍左右的压缩率[11]。但是, 这类算法不能利用原始测序数据的特征。在分析fastq文件格式特点的基础上, 产生了一些压缩效率更高的算法, 如:DSRC[12]、G-SQZ[13]、SCALCE[14]等。
2.2 与参考基因组比对结果的数据
二代测序可以分为重测序和从头测序两大类, 从头测序是指对没有任何的参考基因组的物种的个体进行测序, 将测序后得到的短读段进行拼接和组装进而生成生物序列的办法, 这类数据的压缩目前研究尚无太大进展, 一般是先构建重叠群, 形成基因组内部的重叠区后, 再利用重叠区的信息进行压缩[15,16,17]。
重测序是指对已有了基因组参考序列的物种的某些个体进行测序, 通过测序找出与参考基因组不同的位点, 进而来解释被测的个体的一些特性, 常应用于医学和农业生产。因为具有参考基因组, 所以重测序数据可以只记录与参考基因组相异的信息, 从而获得较大的压缩率, 甚至可以将一个人的dna数据用一封电子邮件的附件 (20M左右) 就可以发送。
虽然基于参考基因组的压缩方法压缩比很高, 但必需要有参考序列, 而且参考序列必需要在本地, 压缩和解压都完全依赖于参考基因组序列, 如果没有参考基因组序列, 压缩和解压缩算法是不能工作的。
根据重测序中压缩算法的思想从压缩的方法来说可以分成对参考基因组进行压缩处理和对测序得到的短读段进行优化编码处理两大类。Korodi和Tabus在2007年提出了Ge NML算法[18], 对二代测序的参考基因组序列采用均一化最大似然模型, 将序列分为有规则和无规则的两部份采用不同的编码策略进行编码, 可以将平均1个碱基占用的空间缩到1.6bit。Kuruppu利提出了改进的RLZ算法[19], 该算法采用非贪婪解析的算法, 采用4种组合方式, 对参考基因组序列进行预处理后压缩, 在有参考基因组的前提下, 可以将人类的重测序压缩至0.48比特/碱基。而对短读段进行优化编码处理是利用短读段序列自身的特点, 进行优化编码, 以期缩小所占用的空间。Grabowski S[20]等采用bwt变换原理设计的基于磁盘的序列压缩算法可以将人类基因组的134GB左右的数据压缩为5.31Gb, 较好的实现了二代测序数据的压缩。
从头测序是对末进行过测序的物种个体直接进行测序, 因为没有参考基因组的信息, 需要利用计算机软件对测序得到的短读段进行拼接和组装, 因为缺少了参考基因组的信息, 就不能够直接像重测序那样获得较高的压缩率。目前, 从头测序序列的压缩算法一般是采用对序列自身进行分析, 生成一系列contig, 再利用这些contig做为短的参考基因组然后进行压缩, 这些方法的理论基础一般是基于de-bruijn图和贪婪算法[21]。目前, 针对从头测序序列的压缩算法进展较为缓慢, 目前已有的算法有Joes等提出的Quip[22], 该算法将概率算法应用于读段的分析, 有效的提高了读段的拼接效率, 缩减了读段拼接时消耗的内存空间。
2.3 基因组序列集压缩算法
基因组序列集压缩算法是对基因组序列集数据进行分析的基础上有效减少该类数据所占的存储空间的方法。解决此类问题有的是考虑在基因组序列集生成过程中为减少工作空间而采用的压缩算法, 如熊文林针对传统基因组序列的bwt变换结果进行分析, 采用了bwt索引压缩算法, 提高了索引的压缩比率[23]。
2.4 二代测序压缩算法的评价指标
二代测序压缩算法的评价指标除了普通压缩算法的压缩比率, 压缩时间之外, 根据二代测序数据量大的特点还有资源消耗和稳健性两项指标。例如一个水稻个体的36层测序数据就有16g左右, 对这样大的数据进行压缩, 需要消耗大量的内存和硬盘空间, 除了强调算法的压缩比和压缩时间之外, 对资源消耗也要加以考虑, 否则算法很难用在实际当中;而稳健性考虑的是生物学中的物种很多, 某一算法针对不同的物种是否是稳定的, 也很重要, 如果某一压缩算法只能针对少数特定的物种有效, 那算法的应用的广泛性就不能得到保证。
3 小结
生物二代测序技术发展为生命科学的研究提供了强大的动力, 可以帮助人们从分子水平来研究和考虑生物学问题和生命现象, 但是二代产生的海量数据占用了大量的存储空间, 二代序列的压缩算法为精练有效的保存这些数据提供了保证, 随着算法研究的不断发展与进步, 二代测序数据的压缩算法势必会有更好的发展。
摘要:二代测序技术亦称为下一代测序, 它具有高通量、价格低廉、测序准确性高的特点, 在现代生物学研究中具有重要的应用, 但是二代测序生成的序列数据量较大, 在存储和传输上效率较低。利用数据压缩技术对二代测序的数据进行处理, 可以降低数据文件所占的外存空间, 并在可以减少网络传输的时间。本文对生物二代测序数据中有代表性的压缩算法进行了介绍。
数据压缩算法研究 第5篇
由于煤矿主扇风机是全天候运行,采集的数据包括三相电数据、电动机控制与运行数据、风机的前后轴温数据、运转速度及环境信息数据等,这些庞大的数据如果不采取可靠的数据采集方法和数据压缩算法,是难以实现数据的采集与记录的。而出于设备小型化的需求和成本的考虑,存储器不可能无限扩展。
为了解决上述问题,本文在分析和研究了经典数据压缩理论的基础上,针对风机工作状态的特点,开发了一种应用于风机监控系统中的数据压缩算法,使存储器的信息容量增加了近一倍,大大增强了数据的存储量。
1 系统结构
风机监控系统的工作原理如图1所示。
1.1 系统功能
整个风机监控系统的核心是单片机部分和数据存储部分。单片机采集主扇风机的运行及供电和控制信号,对采集的信号进行数据滤波和正确性验证,然后与实时时间一起进行数据压缩处理,得到一个数据包,单片机负责将数据包保存在FLASH中,同时通过RS485接口将数据传输到监控中心。
1.2 信号采集
风机工作状态的信号有缓变信号和速变信号,其工作在高压、大功率环境中,采集的数据存在各种干扰。因此,数据进入单片机时要经过隔离、滤波和信号变换处理,才能转换成控制信号。数据采集流程如图2所示。
经过隔离和滤波的信号,并不能直接输入单片机进行A/D转换,电压基准和ADC的单极性输入要求使滤波后的信号还要经过信号变换电路进行抬升和限幅,得到信号采集所用的信号,作为单片机的输入。单片机内部集成了一个A/D转换器,对输入信号进行抽样和量化。
2 压缩算法和流程[1,2,3]
主扇风机的工作是连续的,数据采集也需要实时地同步进行,这就产生了庞大的数据量。若按数据保留1 d为例,信号采样速率为8 kpbs时,每个采样值需要2 B的存储空间,这就需要至少660 MB的存储空间。针对这一问题,本文采用了数据压缩的方法,从软件的角度对记录的数据进行压缩。
输入信号经过A/D转换为一个12位的数字值,占用2 B的空间,出于节省存储空间的考虑,对该数值进行压缩,压缩结果暂存在单片机的片内RAM中,最后存储到FLASH芯片。输入信号数据流向如图3所示。
由于是基于单片机平台上的实时操作,算法不能采用基于概率统计的变长编码,也不能采用字典压缩方法(要求很大的存储空间建立字典)。针对记录仪的数据特点和需求,笔者设计了一种有损压缩算法,即在有限范围内牺牲数据精度,换取数据长度的降低。该算法结构如图4所示。
有损压缩算法对原始数据采用2种不同策略进行压缩,设数据长度为L,原始数据为D0,以2n作为这2种策略的分界点,则:
undefined
其中,n-x=8;L-y=8;8L16。
显然,L越大,误差越大,算法是否适用首先要对误差进行评估,以判定算法的极限误差是否在指标范围内。
对于这2种压缩策略可加入标志字节予以区分。由于数据字节并未占满所有表示空间,所以不会发生标志字节和数据字节的冲突。数据的恢复十分简单,只需对压缩数据进行移位和修正。
1次A/D转换和压缩程序流程如图5所示[4]。
本系统应用该压缩算法时,取L=12,n=9,2 B的数据被压缩为1 B。压缩算法的测试结果如表1所示。
测试中虽然加入了一些标志字节,但压缩效率仍可以达到55%,经计算,解压缩数据与原始数据最坏情况下的误差仅为0.78%。多次试验的结果表明该算法稳定可靠。
3 结语
本文设计的风机监控系统中的数据采集模块可稳定而准确地采集风机工作时的运行状态信号,以实现风机故障监测和故障预警;针对数据记录的存储需要而开发的数据压缩算法,能够高效而可靠地对数据进行压缩,不但压缩效率达到了55%,误差也被限制在0.78%以内。这将使记录仪的连续工作时间倍增,可用性大大增加,推广也更为方便。
摘要:针对风机监控系统中数据采集量较大的情况,文章介绍了一种适用于风机监控系统的实时数据采集和数据压缩的算法,详细介绍了数据采集流程及数据压缩算法的原理和流程。实验表明,该算法稳定、可靠,可应用于煤矿主扇风机监控系统中。
关键词:煤矿,风机,监控系统,数据采集,数据压缩
参考文献
[1]DAVID S.数据压缩原理与应用[M].2版.吴乐南,译.北京:电子工业出版社,1999.
[2]周宁.集散结构在数据采集系统中的应用[J].北京理工大学学报,1997(3).
[3]胡少青.应用高分辨率A/D和DSP实现的加速度计并行数据采集系统[J].电子测量与仪器学报,2002(1):13~17.
[4]詹辛农.运载火箭遥测数据压缩技术研究[J].导弹与航天运载技术,1997(1):39~42.
实时数据库数据压缩算法探讨与改进 第6篇
实时数据库 (RTDB) 作为组态软件的核心, 保存着系统运行时产生的各种数据和信息。这些信息对管理层及时了解生产现场的实时情况、实现上层信息系统与底层控制系统的集成都具有重要意义。随着RTDB应用领域的不断扩展, 对它的研究也越来越深入, 其中如何存储与管理实时数据库中大量历史数据的问题也受到了更多的关注。
参考文献
[1]方来华, 吴爱国, 何熠.组态软件核心技术研究[J].化工自动化及仪表, 2004, 31 (1) :33-35.
[2]王伟, 刘文怡, 秦丽, 等.遥测数据实时压缩技术的设计与实现[J].仪器仪表学报, 2006, 27 (6) :2467-2469.
[3]张景涛, 王华, 王宏安.实时数据的存取与压缩[J].化工自动化及仪表, 2003, 30 (3) :47-50.
[4]徐新.增强型矢量数据压缩算法的设计与实现[J].计算机应用研究, 2007, 24 (12) :393-395.
[5]WELCH T A.A Technique for High Performance Data Com-pression[J].IEEE Computer, 1984, 17 (6) :8-18.
[6]黄豪佑, 董辉, 卢建刚.历史数据压缩算法在DSP上的实现[J].计算机测量与控制, 2006, 14 (12) :1686-1688.
数据压缩算法研究 第7篇
关键词:数据压缩,Huffman,编码,动态,堆
1、引言
数据压缩在许多领域都有应用, 如中文全文检索、数据通讯和数据采集等, 甚至还有一种将数据压缩用于网上用户操作评价的方法。通常, 数据压缩可以分为有损压缩和无损压缩。无损压缩是基于信息熵原理的可逆编码。目前的可逆编码有Huffman编码, 算术编码、行程编码、LZW编码等。
Huffman算法为通用数据压缩算法, 它是大多数通用压缩程序的基础。并且往往做为压缩过程中的一个步骤。Huffman编码效率高, 运算速度快, 实现方式灵活, 目前该算法已经构成了当今压缩软件的核心。见表:
2、Huffman编码的算法
Huffman算法最早由David Huffman提出。它采用的是一种优化静态编码方法, 由该算法产生的二叉树具有最小的加权路长之和∑WjLj, 其中Wj是哈夫曼树中第j个叶结点的重量, Lj为该叶结点到树根的距离。假设原始数据中含有k个各不相同的字符a[1], a[2]……a[k], 其编码方式就是为这k个各不相同的字符都静态地分配一个Lj位的“0”“1”编码序列 (因而称为静态哈夫曼编码) , 该序列指明由根结点到第j个叶结点的路径, “0”表示向左, “1”表示向右, 并用该序列替换原始数据中的对应字符。在Huffman算法中, 根据算法构造的代码满足前缀的约定, 能把文件压到极小。算法由下列重复的过程组成直到C只有一个字符为止。由CI和CJ频率只和的频率得到新的节点CX, 而CI和CJ是CX的儿子。令C=C-{CI, CJ}U{CX}。
Huffman算法的思想可以概括为两次扫描:第一次是根据输入的字符计算各个字符的频率, 并根据频率给每个字符编码;第二次扫描是对每个输入的字符进行匹配, 并把输入的字符转换为编码输出到压缩文件中。
3、改进的Huffman算法
3.1 动态哈夫曼编码
由于静态哈夫曼方法需要对原始数据进行两遍扫描, 这样如果用于网络通信中, 将会引起较大的延时。对于文件压缩这样的应用场合, 额外的磁盘访问将会降低该算法的数据压缩速度。所以改进后的算法采用动态变化的哈夫曼树对数据编码, 不需预先对原始数据进行一遍扫描以建立哈夫曼树。
采用动态变化的哈夫曼树的原理是这样的:对第t+1个字符编码是根据原始数据中前t个字符得到的哈夫曼树来进行的。压缩和解压子程序具有相同的初始化树, 每处理完一个字符, 压缩和解压方使用相同的算法修改哈夫曼树, 因而该方法不需要为解压而保存树的有关信息。压缩和解压一个字符所需的时间与该字符的编码长度成正比, 因而该过程可以实时进行。
在压缩开始前, 需要引进一个空叶结点, 它的重量值始终为0。在以后的压缩和解压过程中, 如果k (已处理数据中各不相同字符的个数) <n (字母表的长度) , 我们用它来表示n-k个字母表中还未出现的字符。初始化的哈夫曼树中只有一个根结点和空叶结点。
压缩子程序读进一个字符后, 它将该字符加到根结点的右分枝上, 而空叶结点仍留在左分枝上, 然后将该字符以ASCII码方式输出。解压子程序对其哈夫曼树作同样的调整。
以后每读进一个字符a[i] (字母表中第i个字符) , 压缩子程序都执行以下的步骤:首先它检查a[i]是否出现在编码树中, 如果是, 压缩子程序就以静态哈夫曼编码中相同的方式对a[i]进行编码;如果a[i]不在编码树中, 压缩子程序首先对空叶结点进行编码, 然后将a[i]以ASCII码方式输出, 最后在编码树中增加两个结点:在空叶结点的右分枝上加入一个新结点, 并将a[i]放在里面, 然后在其左分枝上加入一个新的空叶结点。
解压子程序对解压树也做同样的调整, 因为它和压缩子程序具有相同的哈夫曼树。当它遍历到空叶结点时, 解压子程序就从压缩数据中取出一个ASCII字符, 然后对解压树做与压缩子程序相同的调整。
每处理一个字符, 压缩和解压程序都需要修改各自的哈夫曼树, 为了修改的方便, 树中每个结点都具有一个序号, 它是根据结点的重量由大到小排列而确定的一个递减序列。
本算法的关键是如何将含t (已处理的原始数据中字符的总个数) 个字符的哈夫曼树调整成一棵含t+1个字符的哈夫曼树。分两步来进行。第一步把前t个字符的哈夫曼树转换成它的另一种形式, 在该树中只需在第二步中简单地把由根到叶结点a[i+1]路径上的所有结点重量加1, 就可以变成前t+1个字符的哈夫曼树。其过程就是以叶结点a[i+1]为初始的当前结点, 重复地将当前结点与具有同样重量的序号最大的结点进行交换, 并使得后者的父结点成为新的当前结点, 直到遇到根结点为止。
3.2 极小堆排序算法
传统的构造Huffman树的主要操作是用极小频率的字符进行插入和删除。极小堆是支持这种操作的较优的数据结构。这种方法可以减少对内存读写的次数, 提高系统的响应速度。
其算法如下:
3.3 算法的时间复杂性
算法分析:堆排序的时间主要花费在将原始序列调整为一个初始堆以及排序中不断将堆顶与最后一条记录交换位置后的非堆到堆的重新调整着两部分工作中。
在堆排序中构造初始堆时所需时间为:各层的结点数与该层结点可移动的最大距离乘积的总和, 即
因此, 构造初始堆的时间复杂度为O (n) 。
重新调整成新堆的算法, 结点移动的最大距离为完全二叉树的深度k=[log2n]+1, 共调用了n-1次该算法, 因此其花费为 (n-1) ([log2n]+1) , 时间复杂度为O (nlog2n) 。即各层在堆排序中所有字母插入堆的时间是O (n) , 从堆中删除两个元素和加上一个新元素所需时间是O (nlog22n) 。因为是重复n-1次, for循环的时间是O (nlog2n) 。
由此可见, 堆排序算法的时间复杂性是O (nlog2n) 。
而传统的Huffman编码采用选择排序, 其算法的时间复杂度为O (knlog2n) , 最坏时间复杂度为O (n2) 。所以堆排序算法要优于普通排序算法。
4、总结
Huffman算法是一种有效的数据压缩算法, 针对经典Huffman算法的不足, 本文提出了新的改进算法。此方法的改进主要有两点:第一个是对编码的方法采用动态编码, 改变了原有的静态编码的不足;第二个是对排序算法选择的改进, 采用了堆排序算法, 减少对内存的读写次数, 提高了系统的响应速度。
参考文献
[1]苏德富, 钟诚.计算机算法设计与分析电子工业出版社
[2]陈松乔, 肖建华, 刘丽华, 陈可.算法与数据结构清华大学出版社北方交通大学出版社
无线传感器网络数据压缩算法综述 第8篇
一般在监测区域内网络节点采集的数据具有时间相关性、空间相关性和时空相关性三个方面的特点[2]。针对上述采集数据特点, 研究人员已研究出多种经典的数据压缩算法来解决这些数据冗余。具体的压缩算法如下。
1 基于时间相关性的数据压缩算法
此类压缩算法主要是去除时间方面的冗余数据。主要算法有:基于线性回归原理的分段常数逼近算法 (PMC-MR) 和其改进算法 (PMC-MENAN) 算法, 其基本原理是根据实际应用场景给定数据最大误差限值, 原始数据使用一分段常数的表达式来拟合, 并记录获得的这次原始数据的最小、最大值, 两者进行差值计算, 其值超过给定的最大误差容限后输出该段序列的持续时间和其最值平均;基于预测编码思想的算法主要是利用已获得的原始数据根据数学模型来预测未来数据, 将预测值与真实值进行比较所得值即误差如在允许的范围内, 就用预测值代替所采集的真实数据。此时就实现了对原始数据的压缩目的。常用的算法有自回归预测算法、移动平均预测算法、指数平滑预测算法等;LZW编码算法原理是将采集的数据按照各自特征建立初始词典, 编码器在所建的词典中依据其数据在词典中的位置输出索引值进行查找, 并将查找结果对应用作编码值。随着压缩过程词典的不断扩充, 最终得到所有数据用位置索引来代表数据串。而在压缩过程中不会保存相应的字典, 在解压缩过程会根据数据的特征重新建立初始词典, 然后根据编码查找到字典中相对应的数据值;Huffman编码算法是一种依据字符出现概率来构造异字头的平均长度最短的码字的基于统计规律的数据压缩算法, 常使用算法思想有静态Huffman和动态Huffman[3]。
2 基于空间相关性的数据压缩算法
这类压缩算法主要是去除空间方面的冗余数据, 代表算法有分布式信源编码[4]。其原理为两个独立关系的离散的无记忆信源C和D, D为C的参考信息。根据香农信息理论可知, D已知 (即K闭合) , C的无损压缩极限为H (C|D) , 其中H (C|D) 为C的条件熵, 与之相对应在解压缩端C, 此时压缩极限仍然为C的条件熵H (C|D) 。此时解压缩端只需知道C和D的联合概率分布就可以在参考消息D不清楚的情况下就可以进行压缩, 并且可以取得和已知参考消息D一样的编码效果。
3 基于时空相关性的数据压缩算法
此类压缩算法主要是去除数据在时间和空间方面的冗余。其代表算法有两级DPCM差分脉码调制, 原理为在处理时间冗余阶段采用基于历史数据的预测, 而在处理空间冗余是则采用基于相邻节点的预测;小波算法[5]是近几年来压缩算法研究的热点, 其理论基础是继承和发展短时傅立叶变换局部化的思想并独特的提出“时间-频率”窗口概念, 通过对信号的时间、空间频率进行局部化分析, 使用伸缩平移运算过程来对信号 (函数) 逐步的进行多尺度的细化以取得高频处时间细分、低频处频率细分。小波算法可以自动适应时频信号并聚集到所采集信号的任意细节, 进而达到压缩数据的目的;压缩感知算法[6]原理是对一类具有稀疏或可压缩特性的信号进行信号压缩重构的技术。主要是利用观测矩阵把可以压缩或稀疏的高维信号用一定的技术投影到一个低维空间得到压缩数据, 然后根据信号的稀疏性先验条件, 借助重构算法高概率恢复原始信号的过程。压缩感知过程主要包括信号的稀疏表示、编码测量以及压缩信号的精确重构三个方面。
4 结束语
文章主要研究了无线传感器网络的时间冗余、空间冗余和时空冗余这三种冗余数据类型, 然后根据数据冗余类型不同, 分别介绍了对应的且适用于无线传感器节点的数据压缩算法, 并详细描述了各自的压缩工作原理。
摘要:无线传感器网络不同于常规网络, 网内节点受能量和信道等硬件条件的限制, 且网络采集和传输的数据存在大量冗余, 将额外消耗大量节点能量, 此时需要适用于节点的数据压缩算法除去冗余数据, 节约能量, 提高网络的生存周期。文章依据冗余数据的类型, 分别介绍了对应的数据压缩算法, 并详细描述了各自的压缩工作原理。
关键词:无线传感器,数据压缩,冗余
参考文献
[1]Liang Yuzhu, Zhang Aili, Li Yongzhen.An energy effective routing protocolconstructs cluster topology for WSNs[C]//Proceedings of the 2013 Third International Conferenceon Instrumentation, Measurement, Computer, Communication and Control (IMCCC) , Shenyang:IEEE, 2013:1097-1100.
[2]刘河, 陈宇.无线传感器网络数据压缩算法研究[J].智能计算机与应用, 2013, 3 (5) :28-30.
[3]吕利娟, 李静.霍夫曼算法在降低WSN系统功耗中的应用研究[J].电脑知识与技术, 2007, 2 (9) :735-735.
[4]胡易俗.无线传感器网络中的数据压缩技术研究[D].西安电子科技大学, 2012.
[5]党小超, 高琪, 郝占军.基于小波变换的分布式WSN数据融合模型研究[J].计算机工程与应用, 2014, 50 (22) :97-101.
数据压缩算法研究 第9篇
设计的数据压缩器以FPGA为控制单元,用DSP实现数据压缩,可将6路模拟信号采集并压缩,再经长线发送至数据接收器。实现硬件模块化、功能软件化设计,依靠FPGA的并行执行特性,结合高速DSP通信,可靠地完成被测信号的采集、压缩功能。在保证系统可靠性的同时节省系统的开发成本,提高了系统的可重构性[1,2]。
1 数据压缩器的总体设计
数据压缩器基于FPGA和DSP的硬件平台,将待压缩的6路模拟信号经过调理后输入给A/D转换器进行量化,FPGA将量化结果写入其内部FIFO(First In First Out)缓存中。DSP通过判断FIFO的半满信号读取数据,并根据通道号把数据流分配到6个分组缓存区,当其中任一分组缓存区满2 KB时,就进行一次压缩,压缩后的数据被存入缓存器中。当缓存器半满时,DSP将压缩后的数据串行发送至FPGA,FPGA根据接口的通信协议再把压缩数据发送给数据接收器,以保证压缩数据传输的实时性。压缩器的总体设计方案如图1所示[3,4,5]。
2 硬件及实现原理
2.1 控制单元的选型
FPGA采用XILINX公司的低成本产品XC3S200AN。其包含丰富的Block RAM资源,可利用IP核建立内部FIFO,以便于数据缓存。XC3S200AN内部含有4 MB大小的Flash,可以存储FPGA程序。DSP是执行数据压缩的核心单元器件,选型时在考虑处理速度的同时,还要兼顾其与其他设备的接口匹配能力。选用TI公司的TMS320C6416高性能DSP,其CPU工作主频达到600 MHz,内含容量为1 MB的RAM内存,同时可通过外部存储器接口(EMIF)、多通道缓存串口(MCBSP)等外设接口与FPGA及存储器连接。
2.2 信号采集电路设计
设计要实现对6个通道的信号进行每通道30 k Hz、8位分辨率的采样,相当于总采样率180 k Hz。选用TI公司的16位、250 k S/s、6通道同步采样模数转换器ADS8365,能够满足要求[2]。为了保证模拟信号能被正确量化,先采用运算放大器OPA4340对信号进行电压跟随,再由FPGA控制ADS8365进行采样,通过在FPGA内部建立FIR滤波器IP核对采集到的数据进行数字滤波,随后将其低13位并置3位通道编号发送给DSP。DSP工作频率通常能达到几百兆赫兹,但FPGA的工作频率仅为几十兆赫兹,所以FPGA要将数据先缓存在其内部FIFO,便于DSP读取[6,7,8]。信号调理电路如图2所示。
2.3 DSP的通信接口设计
DSP从FPGA中读取采样数据进行压缩,再将压缩后数据发回FPGA,由FPGA进行编码后发送到数据接收器。由于数据压缩需要较大的处理空间,而DSP内部存储空间有限,为防止在数据压缩期间内采样数据和压缩结果因不能及时传送而丢失,故在数据输入、输出接口之间设计了缓存单元。采样数据输入缓存可用FPGA内部FIFO承担,考虑到FPGA内部RAM资源有限,仅能搭建容量较小的FIFO,而需要的是大容量数据输出缓存单元。因此,设计中DSP的外部存储采用64 MB容量,能够缓存1 MB压缩数据,64位数据宽度的同步动态随机存储器(SDRAM)MT48LC2M32B2TG芯片。DSP在采集数据时的数据通信操作较复杂,如果按照外设的器件手册编程实现对其控制效率太低,而用DSP的外部存储器接口EMIFA可极大地简化操作过程,将采集数据FIFO映射到EMI-FA的CE2空间;将SDRAM映射到CE0空间,只需设置DSP的EMIFA相关寄存器参数即可实现数据通信。同样可通过设置DSP的MCBSP相关寄存器参数来完成压缩后数据的发送[9,10,11]。连接如图3所示。
3 逻辑控制
3.1 FPGA逻辑设计
压缩器中,FPGA作为控制单元,完成6路模拟信号采集的逻辑控制、数据传输控制以及与DSP的数据传输。如图4所示,FPGA逻辑功能可划分为4个模块,分别为信号采集模块、数据输入缓存模块、DSP通信模块和数据输出模块。其中数据输入、输出缓存模块的实现,可通过调用FPGA的IP核设置参数生成相应容量的FIFO来完成。
3.2 DSP程序设计
DSP程序模块主要完成模拟信号的压缩处理。DSP的程序包括模拟数据的预处理、模拟数据的压缩以及与外部存储器的通信等。DSP程序流程图如图5所示[12,13,14]。
TMS320C6416在上电启动或者复位后,DSP程序从Flash中加载并启动,完成系统的初始化以及各个参数的设置,然后进入主函数、初始化CSL函数库、MCBSP、可编程输入输出接口(GPIO)等相关中断寄存器和内部FIFO。当TMS320C6416检测到输入FIFO半满信号,DSP从输入FIFO中读取模拟信号的量化值,当SBUF中有待处理标志时,DSP启动ARC编码开始数据压缩,ARC编码将返回压缩后的数据长度,如果压缩后的数据长度比压缩前的小,DSP将压缩后数据写入内部数据发送缓存器,反之则将压缩前的数据直接写入。同时DSP不断监测内部缓存的状态与外部输出FIFO中数据状态,当内部FIFO数据量大于512 B,同时外部FIFO不半满,DSP从内部FIFO取出数据启动MSBSP传输,将压缩后的数据发送到FPGA。
3.3 无损压缩算法及实现
通过试验,比较ARC、WINZIP、WINRAR、字典编码等常用的数据无损压缩算法的压缩结果。在压缩去除率、压缩速度以及稳定性等各方面综合分析后,最终采用ARC编码。ARC编码采用依次递推方式,对全序列连续编码。ARC算法不是依据每个信源符号单独映射后编码,而是将整个信号符号序列全部映射到实数轴上(0,1)区间内的一个子区间内,子区间长度等于该序列的概率。当整个序列映射完毕,就可以用一个概率值表示,可以在子区间内选择一个有代表性的介于0和1之间的二进制小数作为实际的ARC编码输出,从而实现高效编码。例如,算术编码对某条输入信号序列的输出为1011001111,它表示小数0.101100111,即十进制数0.72。在VC中编译调试后,再将算法移植到DSP开发平台CCS3.3上继续编译直到通过[15,16]。
4 测试结果
数据压缩器地面测试台是专门用来对数据压缩器进行单元测试的,它可以完全地模拟数据压缩器在实际环境下的电气工作环境。地面测试台通过电缆传输到压缩器信号输入接口,压缩器采集处理完毕,把数据通过422接口回传到地面测试台,测试台将接收到的数据通过USB接口存储到计算机以便事后分析处理。测试系统结构图如图6所示。
对采集到的6组遥测信号利用ARC算法进行32 min无损压缩,测试得到162.8 MB的数据。可得压缩去除率为:
压缩过程中SDRAM的最大占用比例为55%。通过MATLAB工具,对一路压缩前的原始数据和解压还原后数据进行频域分析,图7和图8分别为两者的幅频特性图,横轴为频率值,纵轴为幅值。实测噪声的主要频率分布在1~2 k Hz的范围内,解压后,由于前端滤波器的作用,频率大于10 k Hz的部分基本被滤掉,但数据主要成分基本保持下来,能比较真实地反映数据的实际分布情况。通过对比,可以看出原始数据与解压后数据具有一致性,压缩器的压缩性能良好,可以较好地完成数据压缩任务,而且在设计指标上考虑了一定冗余量,提高了压缩装置的可靠性,减轻遥测系统的传输带宽压力。
为有效降低遥测速变数据单信道容量,从而在有限的带宽中增加更多的测试通道和测试参数,提高带宽利用率,通过对压缩机理的研究、压缩算法的比较及相关硬件的设计,总体上实现了遥测噪声数据的无损压缩。通过单元测试,充分验证了所设计的遥测噪声数据无损压缩装置的正确性与可靠性。数据无损压缩对当前许多应用领域都产生了深远的影响,特别是在航天遥测领域,意义重大。针对目前的研究情况,进一步需改进的问题包括:(1)数据采集部分可以在现有遥测噪声数据采集的基础上,结合FPGA的高性能和AD器件的更新,增加提高数据采集路数,提高采集速率和精度。(2)优化ARC编码方式。可以结合其他的算法,实现算法自适应以增强数据处理适应能力,进一步提高压缩器性能。(3)推广技术的使用范围,比如应用在数据采编、存储等各个领域,以节省数据存储容量开销。
摘要:针对无损压缩技术在航天遥测系统中的应用情况,提出了基于现场可编程门阵列(FPGA)和数字信号处理器(DSP)硬件结构的遥测噪声数据实时无损压缩系统的方案。结合Shannon信息论中信息熵的概念,研究了数据压缩的本质和算法评估标准。通过PC仿真试验对多种算法的压缩效果进行了比较,最终选择算术编码(ARC)作为无损压缩的算法。测试结果表明,该方案能够实时采集并压缩遥测噪声数据,有效地提高压缩去除率和压缩速度,优化压缩性能。
数据压缩算法研究
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。