关注

扫一扫关注公众号

浅谈前向纠错

来源:奥尔卫视 时间:2013年11月29日

前向纠错也叫前向 纠错 码(Forward Error Correction简称FEC),是增加 数据通讯可信度的方法。在单向通讯信道中,一旦错误被发现,其接收器将无权再请求传输。FEC 是利用数据进行传输冗长信息的方法,当传输中出现错误,将允许接收器再建数据。

前向纠错

在卫视接收的参数中,FEC是个非常重要的数据。在早期的数字机中,例如NOKIA9500是需要输入FEC参数的。只是后来的数字机的运算速度提高,可以自动测定FEC,而不需要用户自己输入FEC参数了。但是在数字节目解码过程中,FEC还是必不可少的一个重要参数。这就像今天运算速度更快的盲扫机器不用输入参数便可以接收节目一样,但是下行频率和符 码率仍是最基本的节目数据。那么FEC到底有什么作用呢?

大家都知道,数字节目和模拟节目比,效果更清晰,色彩更纯净,通透性更高,画面没有杂质干扰。这都要得益于数字信号出色的抗干扰能力。在数字信号中,为了防止外界信号干扰,保护信号不变异,要进行多重的 纠错码设置。数字信号在解码过程中,对错误信号十分敏感,每秒钟只要有很小很小的误码,就无法正常解码。而数字卫星信号之所以能顺利播放,又是得益于数字信号中的 纠错码的设置。在各种 纠错码的设置中,被称做FEC的前向纠错是一个非常重要的防干扰算法。采用前向误差校正--FEC方法,是为了降低数字信号的误码率,提高信号传输的可靠性。

一般数据流

我们知道,数字信号实际传送的是数据流,一般数据流包括以下三种:

ES流:

也叫基本码流,包含视频、音频或数据的连续码流。

PES流:

也叫打包的基本码流,是将基本码流ES流根据需要分成长度不等的 数据包,并加上包头就形成了打包的基本码流PES流。

TS流:

也叫传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个节目,适用于误码较多的环境。

一般数据流简介:

为了能形象的、浅显易懂地说明,我们来打个比喻,如果把ES流比做产品的原材料,那么PES流就是工厂刚刚生产出来的一件产品,而TS流就是经过包装好送到商店柜台或用户手里的商品。如果ES流的重量被成为净重,那么TS流的重量就被称为毛重。这个比喻和FEC又有何相干?从PES流到TS流,这个过程中已经加进去FEC 纠错码,可以采用不同的速率的FEC,在DVB-S标准中,规定5种速率―1/2、2/3、3/4、5/6、7/8。以7/8为例,其实际意义是,在一个TS流中,只有7/8的内容是装有节目内容的PES流,而另外的1/8内容,则是用来保护 数据流不发生变异的 纠 错码。还用上面的例子做比喻,如果整个节目的符 码 率是毛重的话,则7/8的节目内容好比是净重,而1/8的 纠 错码就是包装箱的重量。

那有一点是可以肯定的,FEC纠错率越低,则 纠错码占据的比例越高,同样功率时,对解码的门限要求越低,要求天线口径越小,接收越容易;FEC越高,则纠错码越低,解码门限值越高,天线口径要求越大,接收越困难。到此,读者梁兴光的疑惑可以说是解开了,但是细心的读者又会产生新的疑问:既然FEC 纠错码率越低,门限越低,天线口径越小,越容易接收,为什么凤凰卫视和韩国阿里郎还要用7/8那么高的FEC码率呢?如果改用1/2的FEC,接收天线不是可以变的更小吗?这就涉及到FEC的另一个重要作用:如果纠错码过高,那么相应的节目内容占用的码率则更低,一方面降低节目画质,另一方面,如果不降低画质,则只能减少传送节目的数量了。比如梁先生提到的韩国阿里郎节目,符 码 率是4420,FEC是7/8;而亚洲2号各省节目的符码率也同样是4420,但是FEC则只有3/4,实际上这两个同样符码率的节目,画质并不相同,阿里郎的画质要比省台的高一些,原因是阿里郎的码流中,只拿出了1/8的码流用来保护 数 据流不受干扰变化,而亚洲2号的各省台则要拿出比阿里郎多一倍的1/4的码流来保护数据流。但是任何事物都有其两面性,如果阿里郎和亚洲2号各省台的节目信号强度相同,亚洲2号的省台接收起来更容易。

在DVB-S标准中,只规定了1/2、2/3、3/4、5/6、7/8这5种FEC 码率,为什么只规定这5种,为什么没有4/5和6/7?如果您自己考虑明白了,说明对FEC也就彻底搞清楚了。

前向纠错码

电视传输专用的前向纠错编码

电视节目广播前向纠错采用2/3 码率格形码、卷积交织码和RS码构成的级联码。RS(209,187)分组码是截短的RS(255,233)分组码,可以纠正11B的传输误码。为了减少突发脉冲干扰所造成的连续误码的影响,DMB-T传输系统在 内码和外码之间插入了卷积交织编码B=19;M=22,总时延相当于36个RS(209,187)分组码。

用于多媒体传输的前向纠错编码

多媒体综合 数据业务服务的前向纠错采用的是多层分组 乘积码(Multi-levelBlockProductCode)。它是由分组 乘积码BPC(3762,2992)构成的一种系统码,是二维分组乘积码BPC(4096,3249)的删余截短,其解码器可以采用高性能Turbo算法。