杰林码与其他码的比较
发布网友
发布时间:2022-04-22 08:45
我来回答
共1个回答
热心网友
时间:2024-02-20 15:43
首先普及一下知识:检错算法用来干嘛的?
检错算法是通信领域中很重要的基础技术之一,很多标准中都有这样的算法。其作用是数据在传输时,我们该如何判断这个数据是传输正确的?如果没有传输正确,是否提醒对方重新传输?以前的做法是,无论正确与否,每个数据包重复传输几次,按照概率来讲,总有一次是正确的,然后交由应用层去判断。但是有了检错算法,就能第一时间得出数据是否传输错误了,检错算法的优势是:可以用很少的检错成本(代价)实现检错,相比于纠错算法在这个代价很低。所以在一些比较稳定的信道,一般都是用检错算法。目前市面上有CRC、奇偶校验、海明校验等。
根据行业特征,一般以发明者的名字命名新算法,所以叫杰林码。比如香浓费诺码、哈夫曼编码、所罗门码、RS码等。
杰林码之检错算法极为简单,具体来讲有两个步骤
1、给序列进行添加规律,比如二进制序列中“每个1后面增加1个0”,这方法具有很多组合方式,且每一种方式增加的符号量是不同的,且得到的概率系数r是不同的。告知大家一个公式:
等概二进制序列中,给c个符号1后增加一个符号0,则实际增加符号0的比例(概率)为:
p(c)=1/((2^(c+1))-2)
感兴趣的朋友不妨利用这个公式去验证一下伪随机数。c=1时,p(c)=1/2;c=2时,p(c)=1/6。现在免费赠送一个知识点,一个序列编码后是否达到最混乱(等熵)状态,可以利用上面的公式对编码后的结果做判断(这一方法也已申请专利)。
2、基于非归一化概率模型进行编码,因为通过该理论编码既可以极大的消除添加的符号(编码后的比特长度极大趋近于未添加符号前的比特程度),又可以保持解码时人为添加的规律还存在,理论和实践均已经证明,当编码结果等于原序列长度时,添加的规律无效。
检错判据:
按序译码时,如果连续译码出两个符号1,则说明数据在传输时发生了错误。
优势:
1、码率可以无限接近1,比如支持(0,1)的任意码率,极大降低了通讯检错成本;
2、*长*,最小支持1比特,最长支持无限;
3、当二进制序列中概率不均等时,可以实现无损压缩,即算法具有检错和压缩双重功能,当然也可以*不放开压缩功能;
4、通过理论证明:当码长无限长是,检错概率等于1,即可以100%实现检错;以译码32bit为例,检验32比特是否符合规律的误判概率为0.00164126,且这个比特数越长,误判概率越小。
5、逻辑极为简单,仅须一个int型的缓存空间。
6、不增加代码量的情况下,功能可以任意组合,比如加密和检错,压缩和检错,压缩和加密,压缩、加密、检错组合等等。
7、已经具有了知识产权保护,且所有的专利和知识产权属于湖南瑞利德信息科技有限公司。
有些专家可能会问,你这样的方式,其他的熵编码可以做到,那你不妨试试!相信试过了才知道我的理论原创性。有一个前提,编码结果要尽可能的接近熵极限,同时还要保持规律。
同时,上述任意一条优点,任何专家可以去寻找一下是否有雷同理论和方法!