Engee 文档

卷积编码器

使用卷积编码方案对二进制数据进行编码。

blockType: ConvolutionalEncoder

图书馆路径:

/Communication Systems/Error Detection And Correction/Convolution/Convolutional Encoder

资料描述

卷积编码器 使用由格结构指定的卷积编码方案对输入二进制消息进行编码。

块图标以及输入和输出端口的数量因参数值而异。 通过输入端口指定初始状态输出最终状态 .

港口

输出

# OUT_1 — 输出信号
二进制列向量

Details

作为二进制列向量返回的卷积码字。

此端口在块图标上没有名称。

如果编码器产生 输出比特流(即,它可以产生 可能的输出字符),该块的输出向量的长度为 对于一些正整数 . 此输出从 In 输入继承数据类型。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

非也。

# FSt — 寄存器的最终状态
一个非负整数

Details

从块输出的每个帧的编码器寄存器的最终状态,作为非负整数返回。

依赖关系

要使用此端口,请设置参数 操作模式 其中一个值是: 连续, 截断(每帧重置),或 通过端口在非零输入上复位 并勾选框 输出最终状态

数据类型

漂浮64

复数支持

非也。

输入

# — 的输入信号
二进制列向量

Details

指定为二进制列向量的输入消息。 此端口保持未命名,直到启用第二个输入端口。

编码器只接受一个输入比特流 .

例子: [1 1 0 1 0 0 1 1] 将消息定义为包含八个元素的字符串的二进制向量。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

非也。

# ISt — 寄存器的初始状态
一个非负整数

Details

进入块的每个帧的编码器寄存器的初始状态被设置为非负整数。

依赖关系

要使用此端口,请设置参数 操作模式 意义 截断(每帧重置) 并选中框 通过输入指定初始状态

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

非也。

参数

主机

# 分层结构 — 通过代码网格的卷积代码的描述
String

Details

卷积码的晶格描述,定义为具有速度的码的晶格结构 ,在哪里 是输入比特流的数量,并且 -输出比特流的数量。

要创建晶格结构,可以使用函数 poly2trellis 或手动设置。

晶格结构包含以下字段:

  • n.数字,数字 -输入编码装置的输入的字符数被设定为等于 ,其中K是输入比特流的数量。

  • n.数字,数字 -来到编码设备的输出的字符数被设置为整数等于 ,其中K是输出比特流的数量。

  • n.数字,数字 -编码装置中的状态数,设定为2的幂。

  • 下一个国家 -当前状态和当前输入的所有组合的以下状态,指定为整数矩阵。 矩阵的大小应该是 n.数字,数字 .

  • 产出 -电流状态和电流输入的所有组合的输出,指定为八进制数的矩阵。 矩阵的大小应该是 n.数字,数字 .

默认值

poly2trellis(7, [171 133])

程序使用名称

TrellisStructure

可调谐

可计算

# 操作模式 — 编码帧完成方法
连续 | 截断(每帧重置)

Details

编码帧的完成方法,设定为这些模式值之一。

  • 连续 -该块在每个输入结束时保存编码器状态,以便在下一帧中使用。

  • 截断(每帧重置) -单位独立地处理每个输入。 在每个输入帧的开始,编码器状态被重置为"全零"状态,或者,如果选择了*通过输入端口指定初始状态*复选框,则重置为*ISt*端口指定的状态。

Continuous | Truncated (reset every frame)

默认值

Continuous

程序使用名称

OperationMode

可调谐

可计算

# 通过输入端口指定初始状态 — 通过输入端口设置初始状态
Logical

Details

选择此选项可将 ISt 输入端口添加到块。

依赖关系

若要使用此参数,请为参数设置 操作模式 意义 截断(每帧重置).

默认值

false (关掉)

程序使用名称

SpecifyInitialStateViaInputPort

可调谐

可计算

# 输出最终状态 — 输出最终状态
Logical

Details

选择此选项可将 FSt 输出端口添加到块。

依赖关系

若要使用此参数,请为参数设置 操作模式 意义 连续截断(每帧重置).

默认值

false (关掉)

程序使用名称

OutputFinalState

可调谐

可计算

# 穿孔代码 — 启用卷积码打孔
Logical

Details

选中此框以使用参数 穿刺矢量 .

默认值

false (关掉)

程序使用名称

PunctureCode

可调谐

可计算

# 穿刺矢量 — 穿孔图案

Details

的穿孔图案,定义为矢量。 射孔矢量是来自 10,在哪里 0 表示从输出编码数据中排除的比特。

向量的长度必须是 长度(In),输入消息向量的长度。

[3],[4],[5]中给出了某些速度和多项式的一些常用穿刺模式。

依赖关系

要使用此选项,请选中*穿刺代码复选框。*

默认值

[1; 1; 0; 1; 0; 1]

程序使用名称

PunctureVector

可调谐

可计算

了解有关卷积编码的更多信息

卷积编码是一种具有内存的错误控制编码。 特别是,计算和编码输出取决于当前输入字符集和先前输入字符的数量,这取决于网格配置。

卷积编码器输出 位为每个 输入位。 在建模过程中,输入数据可以是 位。

使用定义一组生成器多项式的晶格结构,您可以使用直接或系统反馈对非系统,系统卷积码进行建模。

要解码卷积码的输出,可以使用:

  • 维特比解码器 -使用Viterbi算法与硬和软解码。

  • *APP解码器*块使用后验概率解码器对卷积码的输出进行软解码。

编码器定义

要定义卷积编码器,请使用参数 分层结构 . 网格结构可以通过调用函数来设置 poly2trellis.

例如,要使用具有长度约束的编码器 7,代码生成器的多项式 171133 (以八进制数表示),为参数设置 分层结构 意义 poly2trellis(7,[171 133]).

文学作品

  1. 克拉克,乔治C.和J.Bibb该隐。 数字通信的纠错编码。 通信理论的应用。 繝シ繝ォ縺ァ縺呐

  2. Gitlin,Richard D.,Jeremiah F.Hayes和Stephen B.Weinstein。 数据通信原则。 通信理论的应用。 繝シ繝ォ縺ァ縺呐

  3. Yasuda,Y.,K.Kashiki和Y.Hirata。 "High-Rate Punctured Convolutional Codes for Soft Decision Viterbi Decoding."IEEE Transactions on Communications32,no.3(March1984):315-19. https://doi.org/10.1109/TCOM.1984.1096047…​;

  4. Hacoun,D.和G.开始。 "用于Viterbi和顺序解码的高速率穿刺卷积码。"IEEE Transactions on Communications37,no.11(November1989):1113-25. https://doi.org/10.1109/26.46505…​;

  5. Begin,G.,D.Hacoun和C.Paquin。 "关于Viterbi和顺序解码的高速率穿刺卷积码的进一步结果。"IEEE Transactions on Communications38,no.11(November1990):1922-28. https://doi.org/10.1109/26.61470…​;