LFSR线性反馈移位寄存器循环码编码原理

线性反馈移位寄存器(LFSR)循环码编码原理

   作为知识储备,近日在学习循环码编码的原理,教材为John G.Proakis和Masoud Salehi所著的《数字通信》第五版,循环码编码器对应于课本的第328页,对于利用LFSR实现模2除法书本只给出了大体框架,并没有详细阐述其具体的原理,通过查阅其他书籍和相关博客关于此方面的详细分析也十分少,最终经过一下午的苦思冥想,终于有了一些成果。

1.基本原理

   对于一个 (n,k)循环码可以用一个n-k次的生成多项式g(X)来生成,其消息多项式为u(X)。对于一个(n,k)循环码,n为码字的长度,k为编码的信息序列长度。
LFSR线性反馈移位寄存器循环码编码原理_第1张图片
   系统循环码(前k个bit的码元为信息位)通过如下的方法产生:
1.将消息多项式u(X)乘以X^(n-k);
2.将X^(n-k)*u(X)除以g(X)得到余式r(X);
3.将r(X)加到X^(n-k)*u(X)。
   使用LFSR进行系统循环码编码的示意图如下所示:编码器的前k比特的输出直接就是k位信息比特,并且由于此时开关①处于闭合位置,这k比特在输出也按时钟频率同步的进入移位寄存器,在k位信息比特全部进入编码器后,两个开关均切换到相反的位置,此时移位寄存器的内容就是n-k位校验比特,它对应于余式的系数,这n-k位校验比特按时钟频率每节拍输出1个比特并送入调制器。
LFSR线性反馈移位寄存器循环码编码原理_第2张图片

2.举例分析

一个生成多项式g(X)=X^3+X+1的(7,4)循环码,其移位寄存器结构如下图所示:LFSR线性反馈移位寄存器循环码编码原理_第3张图片

假设输入消息比特为0110,则移位寄存器的内容随着时钟频率节拍的变化如下表:

输入信息 移位 寄存器内容 C0C1C2
0 000
0 1 000
1 2 110
1 3 101
0 4 100

C3代表余数的高位,g(X)矢量表示为1011,u(X)矢量表示为0110,X^(n-k)*u(X)的矢量表示为0110000,
把0110000理解为0000000+100000+10000+0000,依次对应着线性移位寄存器的4次移位。

LFSR线性反馈移位寄存器循环码编码原理_第4张图片

LFSR线性反馈移位寄存器循环码编码原理_第5张图片
LFSR线性反馈移位寄存器循环码编码原理_第6张图片
LFSR线性反馈移位寄存器循环码编码原理_第7张图片
总结:可以看到,商的值取决于当前信息比特和上一级运算后余数的最高位C2,两者做异或运算,即两者不同时商为1,相同时商为0,以此来消掉当前输入比特,当商为0时,LFSR简化为单纯的移位寄存器,余数完成移位,当商为1时,LFSR完成g(X)与上一级余数的加运算并移位。在信息比特输入完毕之后,开关切换位置,此时C0C1C2存储的便是余数信息,经过三个时钟周期节拍,监督位跟随信息位输出,最终完成系统循环码的编码。
LFSR线性反馈移位寄存器循环码编码原理_第8张图片

你可能感兴趣的:(LFSR线性反馈移位寄存器循环码编码原理)