Engee 文档

Convolutional Encoder

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

blockType: ConvolutionalEncoder

图书馆路径:

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

资料描述

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

块图标以及输入和输出端口的数量因参数值而异。 Specify initial state via input portOutput final state .

港口

输出

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

Details

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

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

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

数据类型

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

复数支持

非也。

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

Details

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

依赖关系

要使用此端口,请设置参数 Operation mode 其中一个值是: Continuous, Truncated (reset every frame),或 通过端口在非零输入上复位 并勾选框 输出最终状态

数据类型

漂浮64

复数支持

非也。

输入

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

Details

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

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

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

数据类型

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

复数支持

非也。

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

Details

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

依赖关系

要使用此端口,请设置参数 Operation mode 意义 Truncated (reset every frame) 并选中框 通过输入指定初始状态

数据类型

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

复数支持

非也。

参数

主机

# Trellis structure — 通过代码网格的卷积代码的描述
String

Details

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

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

晶格结构包含以下字段:

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

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

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

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

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

默认值

poly2trellis(7, [171 133])

程序使用名称

TrellisStructure

可调谐

可计算

# Operation mode — 编码帧完成方法
Continuous | Truncated (reset every frame)

Details

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

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

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

Continuous | Truncated (reset every frame)

默认值

Continuous

程序使用名称

OperationMode

可调谐

可计算

# Specify initial state via input port — 通过输入端口设置初始状态
Logical

Details

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

依赖关系

若要使用此参数,请为参数设置 Operation mode 意义 Truncated (reset every frame).

默认值

false (关掉)

程序使用名称

SpecifyInitialStateViaInputPort

可调谐

可计算

# Output final state — 输出最终状态
Logical

Details

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

依赖关系

若要使用此参数,请为参数设置 Operation mode 意义 ContinuousTruncated (reset every frame).

默认值

false (关掉)

程序使用名称

OutputFinalState

可调谐

可计算

# Puncture code — 启用卷积码打孔
Logical

Details

选中此框以使用参数 Puncture vector .

默认值

false (关掉)

程序使用名称

PunctureCode

可调谐

可计算

# Puncture vector — 穿孔图案

Details

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

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

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

依赖关系

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

默认值

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

程序使用名称

PunctureVector

可调谐

可计算

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

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

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

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

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

  • Viterbi Decoder -使用Viterbi算法与硬和软解码。

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

编码器定义

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

例如,要使用具有长度约束的编码器 7,代码生成器的多项式 171133 (以八进制数表示),为参数设置 Trellis structure 意义 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…​;