首页 > 编程知识 正文

堆叠卷积降噪自编码器,卷积编码器降维的matlab代码

时间:2023-05-06 08:41:22 阅读:175019 作者:1445

本文主要介绍卷积码,介绍了基于卷积码的状态图的绘制方法,重点阐述了卷积编码器的状态图法。

卷积码

卷积码将k个信息位组织为n位,但是k和n通常较小,特别适用于以串行形式传输,延迟小。 与分组码不同,卷积码编码后的n个符号不仅关系到当前段的k个信息而且关系到前面的N-1段的信息,其中相互关联的符号的数量为nN。 卷积码的纠错性能随n的增加而增大,误码率随n的增加呈指数下降。 在编码器复杂性相同的情况下,卷积码的性能优于分组码。

卷积码是由Elias等人在1955年提出的,是一种非常有前景的编码方法。 在一些资料中,可以找到关于组码的一些介绍。 组码的实现是对编码信息进行分组和单独编码,因此在编码或解码过程中不同代码组之间的符号是无关的。 卷积码与分组码的根本区别在于,它不是将信息序列分组后再单独编码,而是从连续输入的信息序列中连续输出的已编码序列。 也就是说,在进行分组编码时,该组中n-k个检查要素仅与组中的k个信息要素有关,而与其他组的信息无关; 但是,在卷积编码中,如果编码器将k个信息符号编码成n个符号,那么这n个符号不仅与当前段的k个信息有关,而且还与前一个(m-1 )段的信息有关(m为码元的约束长度)。

同样,在卷积码解码过程中,不仅从当时接收的码组中提取解码信息,而且在以前或以后的时刻从接收的码组中提取相关信息。 另外,卷积码的纠错能力随着约束长度的增加而增强,误码率随着约束长度的增加而呈指数函数下降。 卷积码(n,k,m )主要用于校正随机误差,其中符号与前后符号具有一定的约束关系,且编码复杂度可由编码约束长度m*n表示。

通常,最小距离d表示卷积码连续m段内的距离特性,这个码可在m个连续码流中纠正(d-1 )/2个错误。 卷积码的纠错能力不仅与约束长度有关,还与采用的解码方式有关。 无论如何,由于n、k较小,利用各组间的相关性,因此理论上和实践上都证明,在相同的编码率和设备的复杂性条件下,卷积码的性能至少不比分组码差。

编码原理

以二进制代码为例,编码器如图所示。 输入信息序列由u=(u0,u1,…)、其多项式由u ) x )=u0 u1x … ulxl …表示。 编码器的连接可由多项式表示,g (1,1 ) ) x )=1 x x2,g ) 1,2 ) ) x ),称为码的产生多项式。 将这些系数向量g (1,1 )=(111 )和g ) 1,2 )=) 101 )称为码的子生成源。 以子生成多项式为矩阵元素构成的多项式矩阵g(x )=[ g (1,1 ) (x ),g ) 1,2 ) (x ) ]被称为码的生成多项式矩阵。 由生成元构成的半无限矩阵

称为代码生成矩阵。 其中,(11,10,11 )由g ) 1,1 )和g ) 1,2 )的交叉连接构成。 编码器输出序列是被称为代码序列的c=u,其多项式用c(x )表示,可以认为这两个子代码序列c(1) (x )和c )2) ) x )经由合并开关s合成,其中c )1)

一般来说,输入信息序列被时分开关分为k0个子序列,分别为u

) x )表示I=1、2、…k0,即u(x )=[u

(x )、…、u

(x ) )。 编码器的结构由k0n0次生成多项式矩阵给出。 输出代码序列由n0个子序列,即c(x )=[c构成

(x ),c

(x )、…、c

(x ) ),且c ) x )=u ) x ) g ) x )。 m是所有子生成多项式g

) x )中最高次的式子的次数,将该代码称为(n0,k0,m )卷积代码。

怎么画卷积码的状态图

将编码器寄存器的内容组合(x(n-1 )、x ) n-2 ) )定义为编码器状态。 以先前举出的例子(2,1,2 )为例,该编码器的状态有00、10、01、11这4种,以下分别用a、b、c、d代替。 由于编码器每一时钟注入一个输入信息x(n ),因此所示寄存器组的内容引起(x ) n,x ) n-1 ),即,状态发生转变,同时输出g0(n ),g1 ) n )。 这可将图所示的编码过程表示为右图所示的状态图。

如图所示,当不断输入信息序列时,编码器不断从一个状态转换到另一个状态,同时输出对应的编码序列,所以图3所示的状态图能够简单直观地描述编码器的编码过程。 为此,可以根据状态图容易地给出输入信息序列的编码结果。 假设输入序列是110100,则从- 0的状态到- a的状态进行指示,并且因为输入信息是“1”,所以下一个状态是“b”输出“11”,跟随输入信息“1”,指示下一个状态是“d”,并且输出“01”

卷积码的其他表示方法

1 .多项式法

多项式法是指从卷积码的生成多项式直接得到其编码器的结构图

。如前面例子中的(2,1,2)卷积码的生成多项式矩阵为:G(D)=[1 D D2,1 D2]

其中,D是延迟算子,生成多项式的第一项为1 D D2,表示输出编码的第一个码元等于输入码元x(n)与前两个时刻输入的码元x(n-1)、x(n-2)的模2和,同理第二项类似。

2. 网格图

状态图可以完整的描述编码器的工作过程,但是其只能显示状态转移的过程而不能显示状态转移发生的时刻,由此引出用来表示卷积码的另一种常用方法——网格图。网格图就是时间与对应状态的转移图(如图),在网格图中每一个点表示该时刻的状态,状态之间的连线表示状态转移。通过观察网格图可以发现在网格图中输入信息x(n)并没有标出,但如观察到转移后的状态表示(x(n),x(n-1))就可以发现输入信息已经隐含在转移后的状态中。在图中还可以发现两个网格图不同主要集中在转移后状态位置不同。重新排序结构(即所谓蝶型结构)是为了优化运算而设计的,因为其中蝶型与蝶型之间是相互独立的。

下面就让我们来看看网格图是如何描述卷积编码过程的:仍以(2,1,2)为例,假定输入序列为1011010100,起始状态(零时刻)为状态a(零状态)。第一个有效时钟沿来临后,编码器接收到输入信息“1”,根据图所示网格图知该时刻(即时刻1)状态为b,并输出其对应的编码结果“11”,同样在下一个时刻(时刻2)接收到输入信息“0”,状态变为c并输出“10”,接下来的输入数据依次类推……,由此我们可以用网格图作出该例子的卷积编码过程,如图5所示,其中两个状态连线之间的信息为输出结果。

卷积编码器状态图画法

状态图是关于系统状态变化的描述,它将由系统的输入,根据当前的系统状态,影响系统的输出。卷积码编码器存储的L-1段消息,既要因新的消息输入而改变,又要影响当前的编码输出,把卷积码编码器的移位寄存器中任一时刻所存储的信息称为卷积码编码器的一个状态。

(n,k,L)卷积码共有2^(k*(L-1))个状态,每次输入k比特只有2^k种状态变化,所以,每个状态只能转移到全部状态的某个子集(2^k个状态)中去,每个状态也只能由全部状态的某个子集(2^k个状态)转移而来。

(2,1,2)卷积码编码器包含2级移位寄存器和2个模2加法器。2级移位寄存器共有2^2=4种不同状态,定义为S0(00)、S1(01)、S2(10)和S3(11)四种状态。在每个时刻,输入的1个比特信息,当前状态将转为4种状态中的任何一种。

状态表类似查找表,原理即根据当前的输入和当前的状态,可以从表中查得输出信息。图4为卷积码的状态转移图,图中的状态转移表示“输入/输出1输出2”。

结语

关于卷积编码器状态图画法的介绍就到这了,希望通过本文能让你对卷积编码器状态图画法有更深的认识,如有不足之处欢迎指正。

打开APP阅读更多精彩内容

点击阅读全文

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。