离散无记忆信源发出a,b两种符合,若信源输出的序列为babbabbbbabbabbb,对其进行LZ编码
时间: 2023-06-10 18:06:50 浏览: 167
matlab仿真
LZ编码是一种无损数据压缩算法,可以将重复出现的字符串用更短的编码表示。对于给定的序列babbabbbbabbabbb,LZ编码的过程如下:
1. 初始化字典,将所有单个字符添加到字典中:{a: 1, b: 2}。
2. 从左到右扫描序列,找到最长的重复字符串。在这个例子中,最长的重复字符串是"bb",它在位置2和位置5开始,长度为2。因此,我们将其替换为字典中的第3个条目,即"2,2",表示从位置2开始的长度为2的字符串是字典中的第2个条目。
3. 继续扫描序列,找到下一个重复字符串。在这个例子中,下一个重复字符串是"bb",它在位置7和位置9开始,长度为2。因此,我们将其替换为字典中的第4个条目,即"2,2",表示从位置7开始的长度为2的字符串是字典中的第2个条目。
4. 继续扫描序列,找到下一个重复字符串。在这个例子中,下一个重复字符串是"ab",它在位置12和位置14开始,长度为2。因此,我们将其替换为字典中的第5个条目,即"1,2",表示从位置12开始的长度为2的字符串是字典中的第1个条目。
5. 继续扫描序列,找到下一个重复字符串。在这个例子中,下一个重复字符串是"bb",它在位置15和位置17开始,长度为2。因此,我们将其替换为字典中的第6个条目,即"2,2",表示从位置15开始的长度为2的字符串是字典中的第2个条目。
6. 最后的编码结果为:2,1,2,1,2,3,3,2,4,2,5,2,6,2。
这个编码结果可以用来还原原始序列,只需要按照编码结果的顺序将每个条目替换为对应的字符串即可。
阅读全文