1.一种基于LZW编码的数据压缩方法,其特征在于,该方法包括以下步骤:采集传感器数据,对传感器数据进行预处理,获得待编码序列;根据待编码序列中的每种字符构建初始的压缩字典;根据初始的压缩字典的长度获取长度上限;
将每种字符在待编码序列中的出现频率作为每种字符的整体频率;构建一个空的序列,作为已编码序列;
对待编码序列进行压缩,包括:
S1:根据压缩字典对待编码序列进行匹配,获取编码对象以及编码对象的编码结果;根据编码对象对已编码序列进行更新;
S2:当压缩字典的长度大于或等于长度上限时,根据已编码序列以及每种字符的整体频率获取每种字符的未编码频率;根据压缩字典中每个字符串包含的每个字符的未编码频率计算压缩字典中每个字符串的预测重复率;根据压缩字典中每个字符串的预测重复率对压缩字典进行更新;
S3:将编码对象以及待编码序列中编码对象的下一个字符构成一个字符串,作为第一字符串,将第一字符串加入到压缩字典末尾;
S4:重复S1至S3,直到待编码序列中每个字符都已匹配时停止迭代;根据每个编码对象的编码结果获取压缩数据;
对压缩数据进行传输以及解压分析;
所述根据已编码序列以及每种字符的整体频率获取每种字符的未编码频率,包括的具体步骤如下:获取每种字符在已编码序列中出现的次数,利用次数除以待编码序列的长度,得到每种字符的已编码频率;利用每种字符的整体频率减去已编码频率,得到每种字符的未编码频率;
所述根据压缩字典中每个字符串包含的每个字符的未编码频率计算压缩字典中每个字符串的预测重复率,包括的具体步骤如下:式中,为压缩字典中第个字符串的预测重复率;为压缩字典中第个字符串包含的每个字符的未编码频率构成的集合;为最小值函数;为压缩字典中第个字符串的序号;为压缩字典的长度上限;为压缩字典中以第个字符串为子串的字符串的个数;为以自然常数为底的指数函数;为超参数;
所述根据压缩字典中每个字符串的预测重复率对压缩字典进行更新,包括的具体步骤如下:预设剔除数量,将预测重复率最小的个字符串从压缩字典中剔除,对于压缩字典中剩余的字符以及字符串,按照其在剔除之后的压缩字典中出现的位置的序号为其重新赋予序号。
2.根据权利要求1所述的一种基于LZW编码的数据压缩方法,其特征在于,所述对传感器数据进行预处理,获得待编码序列,包括的具体步骤如下:将传感器数据转换为二进制数据,将二进制数据编码为字符,将得到的所有字符按照顺序构成的序列作为待编码序列。
3.根据权利要求1所述的一种基于LZW编码的数据压缩方法,其特征在于,所述根据待编码序列中的每种字符构建初始的压缩字典,包括的具体步骤如下:统计待编码序列中出现的每种字符,构建一个空的字典,将每种字符加入到字典中,将字典作为初始的压缩字典。
4.根据权利要求1所述的一种基于LZW编码的数据压缩方法,其特征在于,所述根据初始的压缩字典的长度获取长度上限,包括的具体步骤如下:设置扩展倍数,将扩展倍数与初始的压缩字典的长度的乘积作为长度上限。
5.根据权利要求1所述的一种基于LZW编码的数据压缩方法,其特征在于,所述根据压缩字典对待编码序列进行匹配,获取编码对象以及编码对象的编码结果,包括的具体步骤如下:根据压缩字典从待编码序列第一个未匹配的字符开始对待编码序列进行最长匹配,将匹配结果作为编码对象;将编码对象在压缩字典中的序号作为编码对象的编码结果。
6.根据权利要求1所述的一种基于LZW编码的数据压缩方法,其特征在于,所述根据编码对象对已编码序列进行更新,包括的具体步骤如下:将编码对象中每个字符依次加入到已编码序列的末尾。
7.根据权利要求1所述的一种基于LZW编码的数据压缩方法,其特征在于,所述根据每个编码对象的编码结果获取压缩数据,包括的具体步骤如下:获取所有编码对象的编码结果中的最大值,记为,将作为第一长度,用表示,其中为向上取整符号;将每个编码对象的编码结果转换为长度为的二进制数,将所有编码对象的编码结果对应的长度为的二进制数按照顺序拼接在一起,作为待编码序列的压缩数据。