(n,k,N)卷积码的生成矩阵

卷积码

   ( n , k , N ) (n,k,N) (n,k,N)卷积码是将每 k k k个信息比特作为一组,编码成 n n n个编码比特输出。 N N N为编码的约束长度,表示编码过程中有N组信息比特相互约束。卷积码的编码器具有记忆性,针对每组信息比特( k k k个比特)输入,有n个编码比特输出,编码比特不仅与当前输入的 k k k个信息比特有关系,还与前 N − 1 N-1 N1 k k k位输入信息比特有关。编码效率为 η c = k n \eta_c=\frac{k}{n} ηc=nk η c \eta_c ηc N N N是衡量卷积码性能的两个重要参数。
(关于 N N N的含义,我在不同地方看到的不一样,有的说是编码过程中有 N N N组信息比特相互约束,还有说是编码过程中有 N + 1 N+1 N+1组信息比特相互约束,本文我采用前者。)

卷积码编码器

   ( n , k , N ) (n,k,N) (n,k,N)卷积码的编码器由 N N N k k k级输入移位寄存器( N × k N \times k N×k位寄存器)、 n n n级输出移位寄存器和 n n n个模2和加法器构成,每个输出移位寄存器有一个模2和加法器与其对应,每个模2和加法器输入端的数目不一定相同。下图为 ( n , k , N ) (n,k,N) (n,k,N)卷积码编码器原理图。
在这里插入图片描述
  卷积码的生成矩阵就是在描述 N × k N \times k N×k位输入移位寄存器的每一位与每个模2和加法器的连接关系。

卷积码生成矩阵

  教材上是按照先子生成矩阵、生成矩阵后生成元、子生成元的顺序讲解的,我感觉不太好理解。按”子生成元 → \to 生成元 → \to 子生成矩阵 → \to 生成矩阵”的顺序介绍,似乎更容易理解矩阵中的0和1所代表的的物理意义。

子生成元和生成元

  子生成元 g ( i , j ) g^{(i,j)} g(i,j) ( n , k , N ) (n,k,N) (n,k,N)卷积码有 k n kn kn个子生成元 g ( i , j ) g^{(i,j)} g(i,j),其中 i = 1 , 2 , 3 , ⋯   , k i=1,2,3,\cdots,k i=1,2,3,,k j = 1 , 2 , 3 , ⋯   , n j=1,2,3,\cdots,n j=1,2,3,,n。每个子生成元是一个 N N N维行向量, g ( i , j ) g^{(i,j)} g(i,j)的第 m m m位写成 g m ( i , j ) g^{(i,j)}_m gm(i,j) m = 0 , 1 , 2 , ⋯   , N − 1 m=0,1,2,\cdots,N-1 m=0,1,2,,N1 g ( i , j ) g^{(i,j)} g(i,j)可以表示为: g ( i , j ) = g 0 ( i , j )   g 1 ( i , j )   ⋯   g N − 1 ( i , j ) g^{(i,j)}=g^{(i,j)}_0\:g^{(i,j)}_1\:\cdots \: g^{(i,j)}_{N-1} g(i,j)=g0(i,j)g1(i,j)gN1(i,j) g m ( i , j ) g^{(i,j)}_m gm(i,j)表示第 m m m组输入寄存器比特的第 i i i位与第 j j j个模2和加法器的连接关系,其中1表示相连,0表示不相连。
  生成元 g ( i ) g^{(i)} g(i) ( n , k , N ) (n,k,N) (n,k,N)卷积码有 k k k个生成元 g ( i ) g^{(i)} g(i),其中 i = 1 , 2 , 3 , ⋯   , k i=1,2,3,\cdots,k i=1,2,3,,k。每个子生成元是一个 N n Nn Nn维行向量, g ( i ) g^{(i)} g(i)可以表示为: g ( i ) = g 0 ( i , 1 )   g 0 ( i , 2 )   ⋯   g 0 ( i , n )   ⋯   g N − 1 ( i , 1 )   g N − 1 ( i , 2 )   ⋯   g N − 1 ( i , n ) g^{(i)}=g^{(i,1)}_0 \:g^{(i,2)}_0\:\cdots\:g^{(i,n)}_0\:\cdots\:g^{(i,1)}_{N-1}\:g^{(i,2)}_{N-1} \:\cdots \:g^{(i,n)}_{N-1} g(i)=g0(i,1)g0(i,2)g0(i,n)gN1(i,1)gN1(i,2)gN1(i,n)

子生成矩阵和生成矩阵

  子生成矩阵 g m g_m gm ( n , k , N ) (n,k,N) (n,k,N)卷积码有 N N N个子生成矩阵 g m g_m gm,其中 m = 0 , 1 , 2 , ⋯   , N − 1 m=0,1,2,\cdots,N-1 m=0,1,2,,N1。每个子生成矩阵由 k n kn kn g m ( i , j ) g^{(i,j)}_m gm(i,j)组成的 k × n k \times n k×n矩阵, g m g_m gm可以表示为: g m = [ g m ( 1 , 1 ) g m ( 1 , 2 ) ⋯ g m ( 1 , n ) g m ( 2 , 1 ) g m ( 2 , 2 ) ⋯ g m ( 2 , n ) ⋮ ⋮ ⋱ ⋮ g m ( k , 1 ) g m ( k , 2 ) ⋯ g m ( k , n ) ] g_m= \begin{bmatrix} g^{(1,1)}_m&g^{(1,2)}_m&\cdots&g^{(1,n)}_m \\ g^{(2,1)}_m&g^{(2,2)}_m&\cdots&g^{(2,n)}_m \\ \vdots&\vdots&\ddots&\vdots \\ g^{(k,1)}_m&g^{(k,2)}_m&\cdots&g^{(k,n)}_m \end{bmatrix} gm=gm(1,1)gm(2,1)gm(k,1)gm(1,2)gm(2,2)gm(k,2)gm(1,n)gm(2,n)gm(k,n)
  基本生成矩阵 G B G_B GB ( n , k , N ) (n,k,N) (n,k,N)卷积码的基本生成矩阵 G B G_B GB N N N个子生成矩阵 g m g_m gm组成,是一个 k × N n k \times Nn k×Nn矩阵。 G B = [ g 0 g 1 ⋯ g N − 1 ] G_B=\begin{bmatrix}g_0&g_1&\cdots&g_{N-1}\end{bmatrix} GB=[g0g1gN1]
  生成矩阵 G ∞ G_\infty G ( n , k , N ) (n,k,N) (n,k,N)卷积码的生成矩阵 G ∞ G_\infty G是一个半无穷矩阵, G ∞ G_\infty G可以表示为: G ∞ = [ g 0 g 1 ⋯ g N − 2 g N − 1 0 0 0 ⋯ 0 g 0 g 1 ⋯ g N − 2 g N − 1 0 0 ⋯ 0 0 g 0 g 1 ⋯ g N − 2 g N − 1 0 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ] G_\infty= \begin{bmatrix} g_0&g_1&\cdots&g_{N-2 }&g_{N-1}&0&0&0&\cdots\\ 0&g_0&g_1&\cdots&g_{N-2 }&g_{N-1}&0&0&\cdots\\ 0&0&g_0&g_1&\cdots&g_{N-2 }&g_{N-1}&0&\cdots\\ \cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots \end{bmatrix} G=g000g1g00g1g0gN2g1gN1gN20gN1gN200gN1000 G ∞ G_\infty G的每 k k k行( g m g_m gm k k k行)是前一 k k k行向右移位 n n n列( g m g_m gm n n n列)的结果。

生成矩阵的作用

  假设移位寄存器的初态都是0,编码器对每组 k k k个信息比特的输入产生一组 n n n个编码比特输出。当第一组 k k k个信息比特(用 M ( 0 ) M(0) M(0)表示)输入时,输出为 Y ( 0 ) = M ( 0 ) g 0 Y(0)=M(0)g_0 Y(0)=M(0)g0(对比 G ∞ G_\infty G的第一列,观察规律),相当于 M ( 0 ) M(0) M(0)中的 k k k个比特输入到与其相连的模2和加法器后运算的结果。当第二组 k k k个信息比特(用 M ( 1 ) M(1) M(1)表示)输入时,前一组 k k k个信息比特向后移位,输出为 Y ( 1 ) = M ( 0 ) g 1 + M ( 1 ) g 0 Y(1)=M(0)g_1+M(1)g_0 Y(1)=M(0)g1+M(1)g0(对比 G ∞ G_\infty G的第二列,观察规律),相当于 M ( 0 ) M(0) M(0) M ( 1 ) M(1) M(1)中的 2 k 2k 2k个比特输入到与其相连的模2和加法器后运算的结果。以此类推,可得 Y ( N ) = M ( 0 ) g N − 1 + M ( 1 ) g N − 2 + ⋯ + M ( N − 2 ) g 1 + M ( N − 1 ) g 0 ( 对 比 G ∞ 的 第 N 列 , 观 察 规 律 ) Y(N)=M(0)g_{N-1}+M(1)g_{N-2 }+\cdots+M(N-2)g_1+M(N-1)g_0(对比G_\infty的第N列,观察规律) Y(N)=M(0)gN1+M(1)gN2++M(N2)g1+M(N1)g0GN)此时,再有一组信息比特(用 M ( N ) M(N) M(N)表示)输入时, M ( 0 ) M(0) M(0)被移除移位寄存器而消失。
(我有点口拙,这块可能描述的不是很清楚,主要靠意会 😄,后面举例子)

举例

( n , 1 , N ) (n,1,N) (n,1,N)卷积码

  给定子生成元: g ( 1 , 1 ) = 10011 g^{(1,1)}=10011 g(1,1)=10011 g ( 1 , 2 ) = 11101 g^{(1,2)}=11101 g(1,2)=11101
  由子生成元可得: n = 2 n=2 n=2 N = 5 N=5 N=5
  生成元为: g ( 1 ) = 11   01   01   10   11 g^{(1)}=11\:01\:01\:10\:11 g(1)=1101011011
  子生成矩阵为: g 0 = [ 11 ] g_0=\begin{bmatrix}11\end{bmatrix} g0=[11] g 1 = [ 01 ] g_1=\begin{bmatrix}01\end{bmatrix} g1=[01] g 2 = [ 01 ] g_2=\begin{bmatrix}01\end{bmatrix} g2=[01] g 3 = [ 10 ] g_3=\begin{bmatrix}10\end{bmatrix} g3=[10] g 4 = [ 11 ] g_4=\begin{bmatrix}11\end{bmatrix} g4=[11]
  生成矩阵为: G ∞ = [ 11 01 01 10 11 00 00 00 ⋯ 0 11 01 01 10 11 00 00 ⋯ 0 0 11 01 01 10 11 00 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ] G_\infty= \begin{bmatrix} 11&01&01&10&11&00&00&00&\cdots\\ 0&11&01&01&10&11&00&00&\cdots\\ 0&0&11&01&01&10&11&00&\cdots\\ \cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots \end{bmatrix} G=110001110010111100101111001001110000011000000
  编码器原理图为:在这里插入图片描述
  当输入序列为 m = 110110000 ⋯ m=110110000\cdots m=110110000时,输出序列为 y = 11   10   00   00   11   11   11   01   11   00   ⋯ y=11\:10\:00\:00\:11\:11\:11\:01\:11\:00\:\cdots y=11100000111111011100

( n , k , N ) (n,k,N) (n,k,N)卷积码

  给定子生成元: g ( 1 , 1 ) = 100 , g ( 1 , 2 ) = 000 , g ( 1 , 3 ) = 101 g^{(1,1)}=100,g^{(1,2)}=000,g^{(1,3)}=101 g(1,1)=100g(1,2)=000g(1,3)=101 g ( 2 , 1 ) = 000 , g ( 2 , 2 ) = 100 , g ( 2 , 3 ) = 110 g^{(2,1)}=000,g^{(2,2)}=100,g^{(2,3)}=110 g(2,1)=000g(2,2)=100g(2,3)=110
  由子生成元可得: n = 3 n=3 n=3 k = 2 k=2 k=2 N = 3 N=3 N=3
  生成元为: g ( 1 ) = 101   000   001 g^{(1)}=101\:000\:001 g(1)=101000001 g ( 2 ) = 011   001   000 g^{(2)}=011\:001\:000 g(2)=011001000
  子生成矩阵为: g 0 = [ 1 0 1 0 1 1 ] , g 1 = [ 0 0 0 0 0 1 ] , g 2 = [ 0 0 1 0 0 0 ] g_0=\begin{bmatrix}1&0&1\\0&1&1\end{bmatrix},g_1=\begin{bmatrix}0&0&0\\0&0&1\end{bmatrix},g_2=\begin{bmatrix}0&0&1\\0&0&0\end{bmatrix} g0=[100111]g1=[000001]g2=[000010]
  生成矩阵为: G ∞ = [ 101 000 001 000 000 000 ⋯ 011 001 000 000 000 000 ⋯ 000 101 000 001 000 000 ⋯ 000 011 001 000 000 000 ⋯ 000 000 101 000 001 000 ⋯ 000 000 011 001 000 000 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ] G_\infty= \begin{bmatrix} 101&000&001&000&000&000&\cdots\\ 011&001&000&000&000&000&\cdots\\ 000&101&000&001&000&000&\cdots\\ 000&011&001&000&000&000&\cdots\\ 000&000&101&000&001&000&\cdots\\ 000&000&011&001&000&000&\cdots\\ \cdots&\cdots&\cdots&\cdots&\cdots&\cdots&\cdots \end{bmatrix} G=101011000000000000000001101011000000001000000001101011000000001000000001000000000000001000000000000000000000
  编码器原理图为:在这里插入图片描述
  当输入序列为 m = 10   11   00   00 ⋯ m=10\:11\:00\:00\cdots m=10110000时,输出序列为 y = 101   110   000   001   000   ⋯ y=101\:110\:000\:001\:000\:\cdots y=101110000001000

参考:卷积码
   通信原理(第二版)张会生 著

  • 28
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值