关于信道编码加入冗余

纠错编码的纠错和检错能力总是有限的,对于有必要的情况,高层协议会设计相应的机制来发现数据的损坏和丢失对于无线通信这样会突然遭遇深衰落丢一段数据的情况,会用交织技术来打散错误,提高纠错编码效率相应知识请继续学习编码理论、无线通信原理、计算机网络等课程
■网友
本人是搞这个方向的,给出一点相对专业的回答吧,希望对你有所帮助。首先,要明确CRC是检错码,不是纠错码。纠错码是类似,LDPC,turbo,RS码这种,最小汉明距离能够达到纠错条件的。一般在通信传输过程中,会有检错码,也会有纠错码。检错码的检错条件比纠错码的纠错条件要宽很多,所以判断接收到的码字是否出现错误,有两种方式:第一种,就是通过译码仍然不能译出符合校验矩阵的“有效”码字(纠错码),这种情况认为是有错。第二种,就是,虽然我能译码得到“有效”码字,但是译出来的“有效”码字,被检错码发现不符合CRC校验,仍然认为是有错的。对于上述两种情况,第一种情况只发生在一些迭代译码中,对于ML,BCJR这种搜索型的算法,始终能找到一个“有效”码字,就不会发生第一种情况的误码了。其次,回答你另外一个问题。接收的码字出错和丢失,这是两个概念。在无线通信中,通常意义下我们认为,信道是AWGN高斯信道,在高斯信道下,信号永远不会丢失,只会出现信号幅度的改变。而在有线通信中,由于丢包,或者电路原因出现的一些码字的丢失,我们定义为BEC(二元删除信道)。这两种信道下的译码方法和误码率都不一样。而如果两种情况都出现,现阶段,有一些学术文章把它定义为insert,delete channel,就是插入删除高斯信道。这种情况下,还需要有同步码,以及一系列后续的处理,才能对抗这种误码。最后,我回复一下‘liang hanchen,工程师’的表述,说如果出错就重发一次。实际上,这种方式叫做chase combine(CC),就是把原来的码字重新转发一次。这是传统通信的做法,但是在现代通信里面,一般不重发原来的码字,而是再生成新的冗余码发出去,用新的冗余码和原来的码字联合译码,叫做incremental redundancy(IR)。举一个很简单的例子,宇宙飞船和太空通信中,这种深空通信的衰减非常强烈,有可能在某一段时间,用chase combine的方式可能转发上万次都不可能成功,但是用IR的方法,在有限次数内,就有让接收端正确译码。
■网友
冗余码是用原始码根据某个算法算出来的,不管是原始信息错了还是冗余部分错了,效果是一样,就是冗余码和原始码不再符合之前的计算关系,这样接收端就发现有错了。发现有错以后,如果收到的信息很可能是由一个符合计算关系的码字出少量错变过来的,接收端就把它猜成是这个码字(这就是纠错)。如果多个符合计算关系的码字都有可能变成这个信息,接收端也猜不准,但知道肯定是不对(这就是检错),这时干脆就不猜了,叫发送端重新发一个(这就是ARQ)。
■网友
通信永远就是一个权衡利弊的事!比如信号带宽效率、功率效率、实现复杂度都是根据实际系统需求选择,在卫星通信(典型的带宽、功率双受限的信道)中,绝对不可能使用AM,ASK等功率效率调制,并且也不太可能使用高阶调制,比如64QAM、256QAM。尽管高阶调制带宽效率好,但解调门限高,所以注定会找带宽、功率效率较为均衡的调制方式,比如OQPSK,CPM调制。CPM信号虽然带宽效率、功率效率双高,但解调、同步复杂度极高,因此也不太会被采用。同样道理,信道编码的初衷是通过冗余降低误码率,单考虑调制、解调,采用什么信道编码,信道编码的码速率都是跟系统需求相关的。存在纠错能力逆天的信道编码,只看你想付出多大代价了!回归正题:实际上,除了通过物理层信道编码降低误码率(交织可以大大降低连续的突发错误),在数据链路层还会有其他方式来进一步实现可靠传输。
■网友
你的意思是信息没有错但是纠错码错了吧?没啥稀奇的,只要有错,就要求再发一遍,直到接收到信息+校验都正确的码为止。当然,校验的位数远小于信息,所以这种几率也不大。


推荐阅读