工程师。卷积编码器
二进制数据的卷积编码。
库::`工程师` 座:: 卷积编码器
资料描述
该 EngeeComms.ConvolutionalEncoder 系统对象对二进制输入向量序列进行编码,以产生二进制输出向量序列。
要对二进制数据执行卷积编码,请按照以下步骤操作:
-
创建*EngeeComms。ConvolutionalEncoder*对象并设置其属性。
-
用参数调用对象,就好像它是一个函数一样。
若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.
创造
语法
-
对象=EngeeComms。卷积编码器-使用*default*属性创建用于卷积编码的系统对象。例子::
ConvEncoder = EngeeComms.ConvolutionalEncoder() -
对象=EngeeComms。卷积编码器(trellis)-通过网格结构创建卷积编码的系统对象。例子::
# кодер с длиной ограничения 7 и полиномами генератора кода 171 и 133 (в восьмеричных числах) ConvEncoder = EngeeComms.ConvolutionalEncoder(TrellisStructure="poly2trellis(7, [171 133])" -
对象=EngeeComms。卷积编码器(名称=值)-以对的形式创建具有指定属性的卷积编码的系统对象名称=值,在哪里姓名-物业的名称,以及价值-适当的值。 您可以指定多个对 «名称-值» 对的顺序并不重要。 未指定的属性保留其默认值。例子::
# сохраняет состояния кодера в конце каждого входа для использования в следующем кадре ConvEncoder = EngeeComms.ConvolutionalEncoder(TerminationMethod="Continuous")
特征
格架结构 — 通过晶格结构的卷积码的描述
+
poly2trellis(7,[171,133])(默认) | 晶格结构
Details
卷积码的网格描述,定义为包含速度为 ,在哪里 是输入比特流的数量,并且 -输出比特流的数量。
要创建晶格结构,可以使用函数 [医]聚二 或者手动创建它。
网格结构包含以下字段:
-
n.数字,数字-输入到编码器的字符数,设置为等于 ,在哪里 -输入比特流的数量。 -
n.数字,数字-编码器输出的字符数,设置为等于 ,在哪里 -输出比特流的数量。 -
n.数字,数字-编码器中的状态数,设置为功率2. -
下一个国家-当前状态和当前输入的所有组合的后续状态,指定为整数矩阵。 矩阵的大小应该是n.数字,数字上 . -
产出-当前状态和当前输入数据的所有组合的输出数据,指定为八进制数的矩阵。 矩阵的大小应该是n.数字,数字上 .
*终止*是 完成编码帧的方法
+
连续(默认情况下) | 截断
Details
编码帧的完成方法,设置为这些值之一:
-
连续不断-系统对象在每个输入向量的末尾保存编码器状态,以便在下一个输入向量中使用。 -
截断-系统对象在每个输入向量的开头重置。 如果将*InitialStateInputPort*属性设置为0(错误),然后对象将其状态重置为 «全零». 如果将*InitialStateInputPort*属性设置为1(真),然后对象将其状态重置为输入参数*initstate*中指定的值。
延迟反应 — 延迟输出数据复位选项
+
0(默认) | 1
Details
输出数据复位延迟选项,设置为这些布尔值之一:
-
1(true)-对象计算编码数据后,编码器的内部状态将重置。 -
0(false)-在对象计算编码数据之前重置编码器的内部状态。
依赖关系
若要使用此属性,请将*ResetInputPort*属性设置为 1.
初始输入端口 — 启用初始状态输入的选项
+
0(默认) | 1
Details
启用初始状态的输入的选项,设置为逻辑 1 (真)或 0 (错误)。 设置此属性的值时 1 该对象允许您为每个输入向量设置编码器的初始状态。
依赖关系
若要使用此属性,请将*TerminationMethod*属性设置为 截断.
FinalStateOutputPort — 选项来启用最终状态的输出
+
0(默认) | 1
Details
启用最终状态的输出的选项,设置为逻辑 1 (真)或 0 (错误)。 设置此属性的值 1 以在输出端获得编码器的最终状态。
依赖关系
若要使用此属性,请将*TerminationMethod*属性设置为 连续不断 或 截断.
标点符号来源 — 穿孔图案的来源
+
无(默认情况下) | 物业
Details
穿孔图案的来源指定为这些值之一:
-
无-对象不执行穿孔。 -
物业-对象执行代码打孔。 穿孔基于穿孔模式的向量,该向量在*PuncturePattern*属性中设置。
依赖关系
若要使用此属性,请将*TerminationMethod*属性设置为 连续不断 或 截断.
标点符号 — 射孔图案的向量
+
[1; 1; 0; 1; 0; 1] ( 默认情况下) | 列向量
Details
的穿孔图案,定义为矢量。 射孔矢量是从 1 和 0,在哪里 0 表示从输出编码数据中排除的打孔比特或比特。
依赖关系
若要使用此属性,请将*TerminationMethod*属性设置为 连续不断 或 截断,而对于*PuncturePatternSource*属性,值 物业.
使用
语法
ConvEncoder= EngeeComms.ConvolutionalEncoder()
ConvEncoder= EngeeComms.ConvolutionalEncoder(TrellisStructure="poly2trellis(3,[4 5])")
ConvEncoder= EngeeComms.ConvolutionalEncoder(TrellisStructure="poly2trellis(3,[4 5])" TerminationMethod="Truncated", FinalStateOutputPort=true)
in_data = [1; 0; 1; 0; 0; 1]
out = ConvEncoder(in_data)
资料描述
-
ConvEncoder=EngeeComms。卷积编码器()-创建默认系统对象。 -
ConvEncoder=EngeeComms。ConvolutionalEncode(名称=值)-创建具有指定参数的对象。
输出参数
出 — 输出值
+
[码字,最终状态]|[码字]
Details
如果*FinalStateOutputPort*属性设置为 1 (true),那么输出参数*out*是一个向量 [码字,最终状态],在哪里 码字 -卷积代码字,以及 最终状态 -编码器的最终状态。 如果*FinalStateOutputPort*属性设置为 0 (false),则*out*只包含卷积码字 [码字].
作为具有二进制值的列向量返回的卷积码消息。 此输出向量具有与输入消息相同的数据类型和方向。
当卷积编码器呈现码的速率为 ,输入向量的长度为 对于一些正整数 . 对象将输出向量的长度设置为 .
<无转换>*数据类型:* 漂浮64, Int8</无翻译>
最终状态 — 编码器的最终状态
+
一个整数
Details
编码器的最终状态,作为整数返回。
依赖关系
若要使用此参数,请将*TerminationMethod*属性设置为 连续不断 或 截断.
<无转换>*数据类型:* 漂浮64</无翻译>
文学作品
-
克拉克,乔治C.和J.Bibb Cain。 数字通信的纠错编码。 通信理论的应用。 繝シ繧ォ繝シ縺ォ縺ェ縺"縺ヲ縺縺セ縺呐
-
Gitlin,Richard D.,Jeremiah F.Hayes和Stephen B.Weinstein。 数据通信原则。 通信理论的应用。 繝シ繧ォ繝シ縺ォ縺ェ縺"縺ヲ縺縺セ縺呐
-
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…;
-
Hacoun,D.和G.开始。 "用于Viterbi和顺序解码的高速率穿刺卷积码。"IEEE Transactions on Communications37,no.11(November1989):1113-25. https://doi.org/10.1109/26.46505…;
-
Begin,G.,D.Hacoun和C.Paquin。 "关于Viterbi和顺序解码的高速率穿刺卷积码的进一步结果。"IEEE Transactions on Communications38,no.11(November1990):1922-28. https://doi.org/10.1109/26.61470…;