信道编码至纠错技术之FEC(前向纠错)
在工程实践中并不存在理想的数字信道,数字信号在各种媒质的传输过程中就会产生误码和抖动,从而导致线路的传输质量下降。
为解决此问题,需要引入纠错机制。实用的纠错码是靠牺牲带宽效率来换取可靠性,同时也增加了通信设备的复杂度。纠错技术是一种差错控制技术,按照应用场景和侧重点不同,可以分为两类:
- 检错码:重在发现误码,比如奇偶监督编码。
- 纠错码:要求能自动纠正差错,比如BCH码、RS码、汉明码。
二者没有本质区别,只是应用场合不同而侧重的性能参数不同。FEC属于后者。
FEC的特点及应用
FEC的全称是前向纠错,一种数据编码技术,数据接收方可以根据编码检查传输过程中的误码。前向是指纠错过程是单方向的,不存在差错信息反馈。
- 无需重传,实时性高
- FEC启动后,能够容忍线路上更大的噪声,但是有额外的带宽开销(用户需要根据实际情况在传输质量和带宽间做出选择)
- 适合于数据到达对端后通过自身来查验并纠正的业务,不适合于查验有重传机制的业务
- 可用于网络状况较差时的数据传输,如:在工程使用中,ONT距离远,线路质量差,导致光功率预算裕量不足或线路误码率高,推荐开启FEC
- 可用于要求时延较小的业务(因为此时如果采用重传,则时延会增大)
通过在发射端对信号进行一定的冗余编码,并在接收端根据纠错码对数据进行差错检测,如发现差错,由接收方进行纠正。常见的FEC技术有汉明码、RS编码以及卷积码等。
数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。误码的处理技术有纠错、交织、线性内插等。提高数据传输效率,降低误码率是信道编码的任务。信道编码的本质是增加通信的可靠性。但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的,这就是我们常常说的开销。这就好象我们运送一批玻璃杯一样,为了保证运送途中不出现打烂玻璃杯的情况,我们通常都用一些泡沫或海棉等物将玻璃杯包装起来,这种包装使玻璃杯所占的容积变大,原来一部车能装5000各玻璃杯的,包装后就只能装4000个了,显然包装的代价使运送玻璃杯的有效个数减少了。同样,在带宽固定的信道中,总的传送码率也是固定的,由于信道编码增加了数据量,其结果只能是以降低传送有用信息码率为代价了。将有用比特数除以总比特数就等于编码效率了,不同的编码方式,其编码效率有所不同。数字电视中常用的纠错编码,通常采用两次附加纠错码的前向纠错(FEC)编码。RS编码属于第一个FEC,188字节后附加16字节RS码,构成(204,188)RS码,这也可以称为外编码。第二个附加纠错码的FEC一般采用卷积编码,又称为内编码。外编码和内编码结合一起,称之为级联编码。级联编码后得到的数据流再按规定的调制方式对载频进行调制。
前向纠错码(FEC)的码字是具有一定纠错能力的码型,它在接收端解码后,不仅可以发现错误,而且能够判断错误码元所在的位置,并自动纠错。这种纠错码信息不需要储存,不需要反馈,实时性好。所以在广播系统(单向传输系统)都采用这种信道编码方式。下图是纠错码的各种类型:
1、RS编码
RS码即里德-所罗门码(Reed和Solomon二人发明),它是能够纠正多个错误的纠错码,RS码为(204,188,t=8),其中t是可抗长度字节数,对应的188符号,监督段为16字节(开销字节段)。实际中实施(255,239,t=8)的RS编码,即在204字节(包括同步字节)前添加51个全“0”字节,产生RS码后丢弃前面51个空字节,形成截短的(204,188)RS码。RS的编码效率是:188/204。
2、卷积码
卷积码非常适用于纠正随机错误,但是,解码算法本身的特性却是:如果在解码过程中发生错误,解码器可能会导致突发性错误。为此在卷积码的上部采用RS码块, RS码适用于检测和校正那些由解码器产生的突发性错误。所以卷积码和RS码结合在一起可以起到相互补偿的作用。卷积码分为两种:
(1)基本卷积码:
基本卷积码编码效率为,η=1/2, 编码效率较低,优点是纠错能力强。
(2)收缩卷积码:
如果传输信道质量较好,为提高编码效率,可以采样收缩截短卷积码。有编码效率为:η=1/2、2/3、3/4、5/6、7/8这几种编码效率的收缩卷积码。编码效率高,一定带宽内可传输的有效比特率增大,但纠错能力越减弱。
3、Turbo码
1993 年诞生的Turbo 码,单片Turbo 码的编码/解码器,运行速率达40Mb/s。该芯片集成了一个32×32 交织器,其性能和传统的RS 外码和卷积内码的级联一样好。所以Turbo码是一种先进的信道编码技术,由于其不需要进行两次编码,所以其编码效率比传统的RS+卷积码要好。
4、交织
在实际应用中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效(如RS只能纠正8个字节的错误)。为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些误差,使长串的比特差错变成短串差错,从而可以用前向码对其纠错,例如:在DVB-C系统中,RS(204,188)的纠错能力是8个字节,交织深度为12,那么纠可抗长度为8×12=96个字节的突发错误。
实现交织和解交织一般使用卷积方式。交织技术对已编码的信号按一定规则重新排列,解交织后突发性错误在时间上被分散,使其类似于独立发生的随机错误,从而前向纠错编码可以有效的进行纠错,前向纠错码加交积的作用可以理解为扩展了前向纠错的可抗长度字节。纠错能力强的编码一般要求的交织深度相对较低。纠错能力弱的则要求更深的交织深度。
下图是交织的原理图:
DVB-C的卷积交织和解交织原理为:交织由I=12(I为交织深度)个分支构成。每个分支的延时逐渐递增,递增的单元数M=n/I=204/12=17(M为交织基数)。这里的数据单位为字节。0支路无延时,1支路延时17个符号周期,11支路则延时l7×11个符号周期。输入端有一开关随着时间推移依次连接各个延时支路,输出端有一开关与输入端一一对应,同步连接各延时支路。
一般来说,对数据进行传输时,在发端先对数据进行FEC编码,然后再进行交积处理。在收端次序和发端相反,先做去交积处理完成误差分散,再FEC解码实现数据纠错。另外,从上图可看出,交积不会增加信道的数据码元。根据信道的情况不同,信道编码方案也有所不同,在DVB-T里由于由于是无线信道且存在多径干扰和其它的干扰,所以信道很“脏”,为此它的信道编码是:RS+外交积+卷积码+内交积。采用了两次交积处理的级联编码,增强其纠错的能力。RS作为外编码,其编码效率是188/204(又称外码率),卷积码作为内编码,其编码效率有1/2、2/3、3/4、5/6、7/8五种(又称内码率)选择,信道的总编码效率是两种编码效率的级联叠加。设信道带宽8MHZ,符号率为6.8966Ms/S,内码率选2/3,16QAM调制,其总传输率是27.586Mbps,有效传输率是27.586*(188/204)*(2/3)=16.948Mbps,如果加上保护间隔的插入所造成的开销,有效码率将更低。
在DVB-C里,由于是有线信道,信道比较“干净”,所以它的信道编码是:RS+交积。一般DVB-C的信道物理带宽是8MHZ,在符号率为6.8966Ms/s,调制方式为64QAM的系统,其总传输率是41.379Mbps,由于其编码效率为188/204,所以其有效传输率是41.379*188/204=38.134Mbps。
在DVB-S里,由于它是无线信道,所以它的信道编码是:RS+交积+卷积码。也是级联编码。
下图是DVB-C、DVB-S/S2、DTMB、DVB-T各自的信道编码方式:
DVB-S/S2
ABS-S
DTMB
5、伪随机序列扰码
进行基带信号传输的缺点是其频谱会因数据出现连“1”和连“0”而包含大的低频成分,不适应信道的传输特性,也不利于从中提取出时钟信息。解决办法之一是采用扰码技术,使信号受到随机化处理,变为伪随机序列,又称为“数据随机化”和“能量扩散”处理。扰码不但能改善位定时的恢复质量,还可以使信号频谱平滑,使帧同步和自适应同步和自适应时域均衡等系统的性能得到改善。扰码虽然“扰乱”了原有数据的本来规律,但因为是人为的“扰乱”,在接收端很容易去加扰,恢复成原数据流。实现加扰和解码,需要产生伪随机二进制序列(PRBS)再与输入数据逐个比特作运算。PRBS也称为m序列,这种m序列与TS的数据码流进行模2加运算后,数据流中的“1”和“0”的连续游程都很短,且出现的概率基本相同。利用伪随机序列进行扰码也是实现数字信号高保密性传输的重要手段之一。一般将信源产生的二进制数字信息和一个周期很长的伪随即序列模2相加,就可将原信息变成不可理解的另一序列。这种信号在信道中传输自然具有高度保密性。在接收端将接收信号再加上(模2和)同样的伪随机序列,就恢复为原来发送的信息。在DVB-C系统中的CA系统原理就源于此,只不过为了加强系统的保密性,其伪随机序列是不断变化的(10秒变一次),这个伪随机序列又叫控制字(CW)。