1、FEC原理及原理及应用应用第四组第四组差错控制编码差错控制编码 1 引言引言 2 常用简单分组码常用简单分组码 3 线性分组码线性分组码 4 循环码循环码 5 BCH码码 6 RS码码 1.1 引言引言 1.1.1 信源编码与信道编码的基本概念信源编码与信道编码的基本概念 在数字通信系统中,为了提高数字信号在数字通信系统中,为了提高数字信号传输的有效性而采取的编码称为信源编码;传输的有效性而采取的编码称为信源编码;为了提高数字通信的可靠性而采取的编码称为了提高数字通信的可靠性而采取的编码称为信道编码。为信道编码。1、信源编码、信源编码 2、信道编码(差错控制编码)信道编码(差错控制编码)差错控
2、制编码是在信息序列上附加上一差错控制编码是在信息序列上附加上一些监督码元,利用这些冗余的码元,使原来些监督码元,利用这些冗余的码元,使原来不规律的或规律性不强的原始数字信号变为不规律的或规律性不强的原始数字信号变为有规律的数字信号;差错控制译码则利用这有规律的数字信号;差错控制译码则利用这些规律性来鉴别传输过程是否发生错误,或些规律性来鉴别传输过程是否发生错误,或进而纠正错误。进而纠正错误。1.1.2 纠错编码的分类纠错编码的分类 (1)按照信道编码的不同功能,可以将)按照信道编码的不同功能,可以将它分为检错码和纠错码。它分为检错码和纠错码。(2)按照信息码元和监督码元之间的检按照信息码元和监
3、督码元之间的检验关系,可以将它分为线性和非线性码。验关系,可以将它分为线性和非线性码。(3)按照信息码元和监督码元之间的约按照信息码元和监督码元之间的约束方式不同,可以将它分为分组码和卷积码。束方式不同,可以将它分为分组码和卷积码。(4)按照信息码元在编码后是否保持原按照信息码元在编码后是否保持原来的形式,可以将它分为系统码和非系统码。来的形式,可以将它分为系统码和非系统码。(5)按照纠正错误的类型不同,可以将按照纠正错误的类型不同,可以将它分为纠正随机错误码和纠正突发错误码它分为纠正随机错误码和纠正突发错误码。(6)按照信道编码所采用的数学方法不按照信道编码所采用的数学方法不同,可以将它分为
4、代数码、几何码和算术码。同,可以将它分为代数码、几何码和算术码。随着数字通信系统的发展,可以将信道随着数字通信系统的发展,可以将信道编码器和调制器统一起来综合设计,这就是编码器和调制器统一起来综合设计,这就是所谓的网格编码调制。所谓的网格编码调制。1.1.2 差错控制方式差错控制方式 发发可以纠正错误的码(a)前向纠错(FEC)收收发能够发现错误的码应答信号(b)检错重发(ARQ)收可以发现和纠正错误的码应答信号(c)混合纠错检错(HEC)检错重发方式:检错重发方式:检错重发(检错重发(ARQ)的优点主要表现在:)的优点主要表现在:(1)只需要少量的冗余码,就可以得到)只需要少量的冗余码,就可
5、以得到极低的输出误码率;极低的输出误码率;(2)有一定的自适应能力;有一定的自适应能力;信源编码器和缓冲存储器重发控制双向信道解码器指令产生器输出缓冲存储器收信者正确时输出错误时删除某些不足主要表现在:某些不足主要表现在:(1)需要反向信道,故不能用于单向传需要反向信道,故不能用于单向传输系统,并且实现重发控制比较复杂;输系统,并且实现重发控制比较复杂;(2)通信效率低,)通信效率低,不适合严格实时传输不适合严格实时传输系统。系统。混合纠错方式是前向纠错方式和检错重混合纠错方式是前向纠错方式和检错重发方式的结合。发方式的结合。1.1.2 纠错编码的基本原理纠错编码的基本原理 信道编码有关的基本
6、概念:信道编码有关的基本概念:码长:码字中码元的数目;码长:码字中码元的数目;码重:码字中非码重:码字中非0数字的数目;数字的数目;码距:两个等长码字之间对应位不同的数码距:两个等长码字之间对应位不同的数目,有时也称作这两个码字的汉明距离。目,有时也称作这两个码字的汉明距离。最小码距:在码字集合中全体码字之间距最小码距:在码字集合中全体码字之间距离的最小数值。离的最小数值。纠错码的抗干扰能力完全取决于许用码纠错码的抗干扰能力完全取决于许用码字之间的距离,码的最小距离越大,说明码字之间的距离,码的最小距离越大,说明码字间的最小差别越大,抗干扰能力就越强。字间的最小差别越大,抗干扰能力就越强。分组
7、码的最小汉明距离分组码的最小汉明距离d0与检错和纠错与检错和纠错能力之间满足下列关系:能力之间满足下列关系:(1)当码字用于检测错误时,如果要检)当码字用于检测错误时,如果要检测测e个错误,则个错误,则 d0 e+1;(2)当码字用于纠正错误时,如果要纠当码字用于纠正错误时,如果要纠正正t个错误,则个错误,则 d0 2t+1;(3)若码字用于纠若码字用于纠t个错误,同时检个错误,同时检e个个错误时(错误时(et),则),则 d0 t+e+1。编码效率编码效率Rc可以用下式表示:可以用下式表示:nrnrnnkRc1eBAd0tAtB1tAeB1(a)(b)(c)d0d0 1.2 常用简单分组码常
8、用简单分组码 1.2.1 奇偶监督码奇偶监督码 可以表示成为(可以表示成为(n,n-1)。如果是奇)。如果是奇监督码,在附加上一个监督元以后,码长监督码,在附加上一个监督元以后,码长为为n的码字中的码字中“1”的个数为奇数个;如果的个数为奇数个;如果是偶监督码,在附加上一个监督元以后,是偶监督码,在附加上一个监督元以后,码长为码长为n的码字中的码字中“1”的个数为偶数个。的个数为偶数个。an-1+an-2+a1+a0=0 奇偶监督码的编码可以用软件实现,也奇偶监督码的编码可以用软件实现,也可用硬件电路实现。可用硬件电路实现。如果码组如果码组B无错,无错,BA,则,则M0;如果;如果码组码组B有
9、单个(或奇数个)错误,则有单个(或奇数个)错误,则M1。a4a3a2a1a0a4a3a2a1信息组编码输出b0b4b3b2b1接收码组检错信号SBAM 1.2.2 行列监督码行列监督码 行列监督码又称水平垂直一致监督码或行列监督码又称水平垂直一致监督码或二维奇偶监督码,有时还被称为矩阵码。二维奇偶监督码,有时还被称为矩阵码。1 1 0 0 1 0 1 0 0 00 1 0 0 0 0 1 1 0 10 1 1 1 1 0 0 0 0 11 0 0 1 1 1 0 0 0 01 0 1 0 1 0 1 0 1 0001011 1 0 0 0 1 1 1 1 0 0 二维奇偶监督码适于检测突发错码
10、。二二维奇偶监督码适于检测突发错码。二维奇偶监督码不仅可用来检错,还可用来纠维奇偶监督码不仅可用来检错,还可用来纠正一些错码。正一些错码。1.2.3 恒比码恒比码 恒比码又称等重码,该码的码字中恒比码又称等重码,该码的码字中1和和0的位数保持恒定的比例。具体情况见表的位数保持恒定的比例。具体情况见表8-3。目前我国电传通信中普遍采用目前我国电传通信中普遍采用3:2码,码,国际上通用的国际上通用的ARQ电报通信系统中,采用电报通信系统中,采用3:4码即码即7中取中取3码。码。1.3 线性分组码线性分组码 1.3.1 基本概念基本概念 分组码是一组固定长度的码组,可表分组码是一组固定长度的码组,可
11、表示为(示为(n,k),通常它用于前向纠错。在),通常它用于前向纠错。在编码时,编码时,k个信息位被编为个信息位被编为n位码组长度,位码组长度,而而n-k个监督位的作用就是实现检错与纠错。个监督位的作用就是实现检错与纠错。这样,一个这样,一个k比特信息的线性分组码可比特信息的线性分组码可以映射到一个长度为以映射到一个长度为n码组上。码组上。线性分组码的主要性质如下:线性分组码的主要性质如下:(1)任意两许用码之和仍为一许用码,)任意两许用码之和仍为一许用码,也就是说,线性分组码具有封闭性;也就是说,线性分组码具有封闭性;(2)码组间的最小码距等于非零码的最码组间的最小码距等于非零码的最小码重。
12、小码重。对偶校验时的监督关系。在接收端解码时,对偶校验时的监督关系。在接收端解码时,实际上就是在计算:实际上就是在计算:S=bn-1+bn-2+b1+b0 若若S0,则无错;若,则无错;若S1就认为有错。就认为有错。当当r个监督方程式计算得到的校正子有个监督方程式计算得到的校正子有r位,可以用来指示位,可以用来指示2r-1种误码图样。种误码图样。如果希望用如果希望用r个监督位构造出个监督位构造出r个监督关系个监督关系式来指示一位错码的式来指示一位错码的n种可能,则要求:种可能,则要求:例如例如r 3,若取,若取r=3,则,则n=k+r=7。假。假设设S3、S2、S1三位校正字码组与误码位置的三
13、位校正字码组与误码位置的关系如表关系如表8-4。根据表。根据表8-4,可以构成如下关,可以构成如下关系式:系式:1212rknrr或S1=a6+a5+a4+a2 ,S2=a6+a5+a4+a2 ,S3=a6+a4+a3+a0 进而得到进而得到下面的方程组形式:下面的方程组形式:接收端收到每个码组后,计算出接收端收到每个码组后,计算出S3、S2和和S1,如不全为,如不全为0,则可按表,则可按表8-4确定误码的确定误码的位置,然后予以纠正。不难看出,上述(位置,然后予以纠正。不难看出,上述(7,4)码的最小码距)码的最小码距dmin3。000034613562456aaaaaaaaaaaaaaaa
14、aaaaaaaa034613562456 1.3.2 监督矩阵监督矩阵H和生成矩阵和生成矩阵G 将(将(7,4)码的三个监督方程式可以重)码的三个监督方程式可以重新改写为如下形式:新改写为如下形式:上式可以记作:上式可以记作:HAT=0T或或AHT=0,其中,其中 010011010010101100010111012345601234560123456aaaaaaaaaaaaaaaaaaaaa0001001101010101100101110123456TaaaaaaarIPH1001101010101100101110000aaaaaaa0123456A也可以用矩阵形式来表示:也可以用矩阵
15、形式来表示:或表示成为:或表示成为:这时这时Q=PT,如果在,如果在Q矩阵的左边在加上一矩阵的左边在加上一个个kk的单位矩阵,就形成了一个新矩阵的单位矩阵,就形成了一个新矩阵G:3456012110110110111aaaaaaa Q34563456012110101011111aaaaaaaaaaa1101000101010001100101110001QIGk 这里这里G称为生成矩阵,利用它可以产生整称为生成矩阵,利用它可以产生整个码组:个码组:GGMA3456aaaa 1.3.3 校验子校验子S 设发送组码设发送组码A,在传输过程中有可能出,在传输过程中有可能出现误码,这时接收到的码组为
16、现误码,这时接收到的码组为B。则收发码。则收发码组之差为:组之差为:其其中:中:则接收端利用接收到的码组则接收端利用接收到的码组B计算校正子:计算校正子:S=BHT=(A+E)HT=AHT+EHT=EHT 因此,校正子仅与因此,校正子仅与E有关,即错误图样与校有关,即错误图样与校正子之间有确定的关系。正子之间有确定的关系。021021021eeeaaabbbnnnnnnEABiiiiiababe10 1.3.4 汉明码汉明码 汉明码是一种能够纠正单个错误的线性汉明码是一种能够纠正单个错误的线性分组码。它有以下特点:分组码。它有以下特点:(1)最小码距)最小码距dmin3,可纠正一位错误;,可纠
17、正一位错误;(2)码长码长n与监督元个数与监督元个数r之间满足关系之间满足关系式:式:。通常二进制汉明码可以表示为:通常二进制汉明码可以表示为:12 rnrknrr1212,(7,4)系统汉明码的编码器和译码器)系统汉明码的编码器和译码器电路:电路:6a6a5a4a3a5a4a3a2a1a0a6b5b4b3b校正子计算器3-8 译码器6a5a4a3a2b1b0b3S2S1S误码指示1.4 循环码循环码 循环码是线性分组码的一个重要子集,循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码,它有许多是目前研究得最成熟的一类码,它有许多特殊的代数性质。特殊的代数性质。1.4.1 循环码的特
18、点循环码的特点 循环特性是指:循环码中任一许用码循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是组经过循环移位后,所得到的码组仍然是许用码组。许用码组。则可以写为:则可以写为:F(x)R(x)(模(模N(x))。)。在循环码中,若在循环码中,若A(x)是一个长为是一个长为n的许用的许用码组,则在按模码组,则在按模 运算运算下,亦是一个许用下,亦是一个许用码组。例如,码组。例如,其对应的码组为其对应的码组为0101110,它正是下表中,它正是下表中第第3码字。码字。xNxRxQxNxF1nx 1172353589256373xxxxxxxxxxxxxxAx模 为了利用代数理论
19、研究循环码,可以将为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称码组用代数多项是来表示,这个多项式被称为码多项式,为码多项式,对于许用循环码对于许用循环码A=(an-1 an-2 a1 a0),可以将它的码多项式表示为:可以将它的码多项式表示为:若一个整数若一个整数m可以表示为可以表示为:则在模则在模n运算下,有运算下,有mp(模(模n),同样),同样对于多项式而言:对于多项式而言:012211axaxaxaxAnnnn是整数QnpnpQnm1.4.2循环码的表示方法循环码的表示方法 一种(7,3)循环码的全部码字 表中的第7码字可以表示为:1.4.3 模模N运算运算
20、 在整数运算中,有模n运算。例如,在模2运算中,有1+120(模2),1+231(模2),2360(模2)等。因此,若一个整数m可以表示为:在模n运算下,有mp(模n),也就是说,在模n运算下,一整数m等于其被n除所得的余数。模模N运算运算 码多项式系数可按模2运算,即只取值0和1,假设:计算x4+x2+1除以x3+1的值可得:在上述运算中,由于是模2运算,因此,加法和减法是等价的,在式子中通常用加法运算符,具体模2运算的规则定义如下:通过上述分析和演算可以得到了一个重要的结论:一个长度为n的循环码,它必为按模()运算的一个余式。循环码中次数最低的码多项式称为生成多循环码中次数最低的码多项式称
21、为生成多项式,用项式,用g(x)表示。可以证明生成多项式表示。可以证明生成多项式g(x)具有以下特性:具有以下特性:(1)g(x)是一个常数项为是一个常数项为1的的 次次多项式;多项式;(2)g(x)是是 的一个因式;的一个因式;(3)该循环码中其它码多项式都是)该循环码中其它码多项式都是g(x)的倍式。的倍式。knr1nx 为了保证构成的生成矩阵为了保证构成的生成矩阵G的各行线性的各行线性不相关,通常用不相关,通常用g(x)来构造生成矩阵,来构造生成矩阵,显然,上式不符合显然,上式不符合 形式,所以形式,所以此生成矩阵不是典型形式。此生成矩阵不是典型形式。xgxgxxgxxgxxkk21G
22、因此,一旦生成多项因此,一旦生成多项式式g(x)确定以后,该循环确定以后,该循环码的生成矩阵就可以确定。码的生成矩阵就可以确定。1111xaxaxxgrrrQIGk 利用循环码的特点来确定监督矩阵利用循环码的特点来确定监督矩阵H:由于(由于(n,k)循环码中)循环码中g(x)是是xn+1的因式,的因式,因此可令:因此可令:监督矩阵表示为:监督矩阵表示为:11111xhxhxxgxxhkkkn xhxhxxhxxhxxHknkn21 1.4.5 循环码的编、译码方法循环码的编、译码方法 1、编码过程、编码过程 首先需要根据给定循环码的参数确定生首先需要根据给定循环码的参数确定生成多项式成多项式g
23、(x),然后,利用循环码的编码特然后,利用循环码的编码特点,即所有循环码多项式点,即所有循环码多项式A(x)都可以被都可以被g(x)整整除,来定义生成多项式除,来定义生成多项式A(x)。下面就将以上。下面就将以上各步处理加以解释:各步处理加以解释:(1)用用xn-k乘乘m(x)。这一运算实际上是。这一运算实际上是把信息码后附加上(把信息码后附加上(n-k)个)个“0”。(2)求求r(x)。由于循环码多项式。由于循环码多项式A(x)都可都可以被以被g(x)整除,也就是:整除,也就是:上式也等效于:上式也等效于:这样我们就得到了这样我们就得到了r(x)。(3)编码输出系统循环码多项式编码输出系统循
24、环码多项式A(x)为:为:xgxrxgxmxxgxrxmxxQxgxAknkn xgxrxQxgxmxkn xrxmxxAkn 上述三步编码过程,在硬件实现时,可上述三步编码过程,在硬件实现时,可以利用除法电路来实现。以利用除法电路来实现。2、译码过程、译码过程 循环码的译码可以分三步进行:循环码的译码可以分三步进行:(1)由接收到的码多项式)由接收到的码多项式B(x)计算校正计算校正子(伴随式)多项式子(伴随式)多项式S(x);abcd1122输出输入mef (2)由校正子由校正子S(x)确定错误图样确定错误图样E(x);(3)将错误图样将错误图样E(x)与与B(x)相加,纠正相加,纠正错误
25、。错误。校正子计算电路错误图样识别k级缓存器输入纠错后输出12n-k1.5 BCH码码 主讲:廖云0121211()()()()()mnnnrmtn kdtXg x h xx px px p (2)mGF2220,1,mF()g X232,t()0ii()0iX()()iiXX122()(),(),()tg XLCMxxx2lii2()lii1321()(),(),()tg xLCMxxx1011()kkuxuu XuX11011()n kn kn knkXu Xu Xu XuX()()()()nkXu xa x g xb x()()()()n kXu xb xa x g x210121()n
26、nV xxxx210121()()()iiiinnV 210121()nnr xrrxr xrx210121()()()iiiininsrrrrr()()()()iiiiirab ()()()()()iiiiiirbaV ()()()iiiisrbe12()vjjje XXXX12122()()()()()()()vjjjiiiiijjjiiise(1)ljllv 12(12)iiiivsit 122012()(1)(1)(1)vvvxxxxxxx()()()vjvsje xe xr x0112212231121vvvvv 1121 1231 22 13111 1111 210203000vv
27、vvvvvvsssssssssssss(1)(2)(1)(1)(2)(2)()()()()()()txxxxdxxx()()()2()12()1uullXXXX()()()11211lldssss(1)()10,(),dxx ll111(1)()1()()()(1)121120max(,)()()()lldlllxxd dxxdsssFEC(前向纠错)的应用主讲:常莹FEC(前向纠错)的应用 在目前的数字通信系统中,前向纠错技术FEC(Forward Error Correction)得到了广泛的应用。这一技术的产生和发展源于通信系统本身的需求,在工程实践中并不存在理想的数字信道,信号在各种媒
28、体的传输过程中总会产生畸变和非等时时延,对数字信号来说就意味着产生误码和抖动,而抖动的最终效果也反映在系统的误码上。FEC编解码可以用硬件实现也可用软件实现,采用FEC技术可较好地改善误码性能。前向纠错是指信号在被传输之前预先对其进行按一定的格式处理,在接收端则按规定的算法进行解码以达到找出错码并纠错的目的。FEC(前向纠错)的应用 FEC在光纤通信中的应用 FEC在EPON中的应用FEC在光纤通信中的应用 前向纠错技术是指信号在被送入传输信道之前预先进行编码处理,加入带有信号特征的冗码,在接收端按照相应算法对接收信号进行解码,从而找出传输过程中产生的错误码并将其纠正的技术。按照FEC编码和S
29、DH 之间的关系,目前主要有三种方式:带内FEC、带外FEC、超级FEC。带内FEC 带内FEC 方案是ITU-T 在2000 年10 月通过的G.707 建议中提出的。所谓带内,是指将FEC 的冗余监督位置于SONET/SDH 原有帧格式开销中的未定义位上,无须增加额外的带宽,利用SDH 帧中的一部分开销字节装载FEC码的监督码元。为了便于接收机区分发送端是否用了FEC,在开销中加了两比特的FEC 状态指示器(FSI),若FSI 为01,便表明用了FEC,若为00,则表示未用FEC。带内FEC SDH设备中带内FEC的位置带外FEC 所谓带外FEC,是指在SDH层下面另外增加一个FEC层,专
30、门用于FEC的处理。这种方式要进行码速调整,增加了线路码率,从而提高了系统的成本和复杂性;带内编码是指将监督码元映射到SDH帧结构中示使用的开销字节中,即利用未使用的开销字节传送FEC的校验位,显然,这种方法避免了码速调整,系统的成本提高不多。但这种方法的译码延时比带外编码的稍大,并占用了部分开销,同时由于校验位可获得的带宽受限,从而使其纠错性能受到一定影响。带外FEC带外FEC编码示意图带外FEC带外FEC解码示意图FEC(前向纠错)的应用 FEC在光纤通信中的应用 FEC在EPON中的应用 FEC在EPON中的应用FEC的码型和帧结构 EPON标准IEEE 8023ah-2004规定了FE
31、C码型是最常用的RS(255,239,8)。这和ITU-T Recom-mendation G.975里的规定相同。FEC层从物理编码子层接收来的所有帧都包含了前导码、帧体和帧校验序列这些帧内容。整个帧首先是被分组然后再编码,每239个字节分为一组。FEC的码型和帧结构FEC编码的帧结构 FEC功能在EPON中的优势 因为分路器的损耗和过滤损耗。PON的功率预算显得并不富余,除此之外PON的最远传输距离同时还受到模式分配噪声的限制,而模式分配噪声会导致码间串扰和幅度噪声,进而带来功率恶化和对误码率的要求。所以模式分配噪声也是限制PON覆盖距离的一个主要因素之一设计人员更多时候通过选用性能良好、
32、价格昂贵的光器件来提高光功率预算。这也就使得系统整体成本升高。FEC功能在EPON中的优势 FEC是满足长距离、大分光比并同时维持光器件低成本的有效途径。利用FEC可以提高OLT和ONU中接收端的有效灵敏度。节省下来的光功率就可以用来提高距离、分光比。至于模式分配噪声导致的误码,FEC可以很容易地纠正这些错误。FEC在EPON中的劣势 FEC 不可避免的要给EPON系统引入升销。而由于8B/10B的线路编码的存在,EPON的效率已经低于其它系统。对于RS(255 236)编码,引入的开销约为7;延时是应用FEC的另外一个影响。对于RS(255、236)检错和纠错需要3个码组的时间,根据EPON中帧的最大长度是l5l8字节最大的帧延时可以计算如下:(l5l8+l6+3255)8ns。这里l6是每一个码组检验位的字节数255是每一个码组里总的字节数。上式计算结果是18us左右考虑到EPON系统中信号在光纤上的往返时间要达到100us,FEC引入的延时不是很明显。小组成员:常莹 廖云 鄢芬 杜勇 付超 李畅 马少林 徐永熊志明 朱舒雨 陈江龙 徐远翔 彭丹 蔡安 郭剑