EngeeComms.ConvolutionalEncoder
二进制数据的收敛编码。
资料库 |
EngeeComms. Block::Convolutional Encoder |
说明
系统对象 EngeeComms.ConvolutionalEncoder 对一串二进制输入向量进行编码,生成一串二进制输出向量。
要对二进制数据进行卷积编码,请执行以下步骤:
-
创建对象 EngeeComms.ConvolutionalEncoder 并设置其属性。
-
像调用函数一样调用带参数的对象。
要进一步了解如何使用系统对象,请参阅Engee 系统对象 。
创建
语法
-
object = EngeeComms.ConvolutionalEncoder
创建一个具有 default 属性的卷积编码系统对象。示例
ConvEncoder = EngeeComms.ConvolutionalEncoder()
-
object = EngeeComms.ConvolutionalEncoder(trellis)
通过网格结构 TrellisStructure 创建一个用于卷积编码的系统对象。示例
# кодер с длиной ограничения 7 и полиномами генератора кода 171 и 133 (в восьмеричных числах) ConvEncoder = EngeeComms.ConvolutionalEncoder(TrellisStructure="poly2trellis(7, [171 133])"
-
object = EngeeComms.ConvolutionalEncoder(Name=Value)
创建一个用于卷积编码的系统对象,每个指定的属性 Name(名称)设置为指定的 价值观(值)。您可以以任意顺序(Name1
=Value1
,…,NameN
=ValueN
)指定其他参数作为名值对(name-value pair)。例如
# сохраняет состояния кодера в конце каждого входа для использования в следующем кадре ConvEncoder = EngeeComms.ConvolutionalEncoder(TerminationMethod="Continuous")
属性
TrellisStructure -.
通过网格结构描述卷积码
poly2trellis(7, [171 133]) (default)` | `格子结构
Details
卷积码的 Trellis 描述,以结构形式给出,包含对速率为 的编码的 Trellis 描述,其中 是输入比特流的数量, 是输出比特流的数量。
要创建 Trellis 结构,可以使用 poly2trellis
函数或手动创建。
网格结构包含以下字段:
-
numInputSymbols` - 输入到编码器的符号数,指定为等于 的整数,其中 是输入比特流的数量。
-
numOutputSymbols` - 从编码器输出的符号数,指定为等于 的整数,其中 - 输出比特流的数量。
-
numStates`-编码器中的状态数,指定为 "2 "度。
-
nextStates
- 当前状态和当前输入的所有组合的后续状态,以整数矩阵形式给出。矩阵大小必须为numStates
,地址为 。 -
outputs
- 当前状态和当前输入的所有组合的输出,以八进制数矩阵形式给出。矩阵大小应为`numStates`,网址为 。
终止方法 -
终止编码帧的方法
连续(默认)` |`截断
Details
指定为这些值之一的编码帧终止方法:
-
Continuous
- 系统对象在每个输入矢量结束时保存编码器状态,以便在下一个输入矢量中使用。 -
Truncated` - 系统对象在每个输入矢量开始时重置。如果将 InitialStateInputPort 属性设置为
0 (false)
,对象将重置其状态为全部 0。如果将 InitialStateInputPort 属性设置为 "1(true)",则对象会将其状态重置为 initstate 输入参数中指定的值。
DelayedResetAction -。
用于延迟重置输出数据的选项
0(默认)
| 1
Details
以这些逻辑值之一指定的输出数据重置延迟选项:
-
1
(真) - 编码器内部状态的重置发生在对象计算编码数据之后。 -
0"(假)- 在对象计算编码数据之前重置编码器的内部状态。
依赖关系
要使用此属性,请将 ResetInputPort 属性设置为 1
。
InitialStateInputPort -。
选项启用初始状态输入
0(默认)
| 1
Details
启用初始状态输入的选项,指定为逻辑 1
(真) 或 0
(假)。此属性设置为 1
时,对象允许为每个输入向量设置编码器的初始状态。
依赖关系
要使用此属性,请将 TerminationMethod 属性设置为 Truncated
。
FinalStateOutputPort -.
选项启用最终状态输出
0(默认)
| 1
Details
启用最终状态输出的选项,指定为逻辑 1
(真)或 0
(假)。将此属性设为 1
,可获得编码器的最终状态输出。
依赖关系
要使用此属性,请将 TerminationMethod 属性设置为 Continuous
或 Truncated
。
PuncturePatternSource — 穿孔图案源
None (default)
| Property
Details
冲孔图案的来源,指定为以下值之一:
-
None
- 该对象不执行打孔。 -
属性"--对象执行代码穿孔。穿孔基于*PuncturePattern*属性中指定的穿孔模式向量。
依赖关系
要使用此属性,请将 TerminationMethod 属性设置为 Continuous
或 Truncated
。
PuncturePattern — 穿孔图案向量
[1;1;0;1;1;0;1] (默认)
|列向量
。
Details
以向量形式指定的穿孔模式。穿孔向量是由 1
和 0
组成的模式,其中 0
表示穿孔位或从输出编码数据中排除的位。
依赖关系
要使用此属性,请将 TerminationMethod 属性设置为 Continuous
或 Truncated
,并将 *PuncturePatternSource*属性设置为 Property
。
使用方法
语法
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.ConvolutionalEncoder()`创建默认系统对象。
-
ConvEncoder= EngeeComms.ConvolutionalEncode(Name=Value)
- 用指定参数创建对象。
输出参数
out -
输出值
[codeword, finalstate]
| [codeword]
Details
如果 FinalStateOutputPort 属性设置为 1
(true),则输出参数 out 是一个向量 [codeword,finalstate]
,其中 codeword
是卷积码,而 finalstate
是编码器的最终状态。如果 FinalStateOutputPort 属性设置为 0
(false),则 out 只包含卷积码字 [codeword]
。
卷积编解码信息会以二进制值列向量的形式返回。该输出向量的数据类型和方向与输入信息相同。
当卷积编码器以 的速率输出编码时,对于某个正整数 ,输入向量的长度为 。对象设置输出向量的长度等于 。
数据类型: Float64
, Int8
finalstate -
编码器最终状态
整数
Details
编码器的最终状态,以整数形式返回。
依赖关系
要使用此参数,请将 TerminationMethod 属性设置为 Continuous
或 Truncated
。
数据类型: Float64
文学
-
Clark, George C. 和 J. Bibb Cain.数字通信的纠错编码》。通信理论的应用》。纽约:Plenum 出版社,1981 年。
-
Gitlin, Richard D., Jeremiah F. Hayes, and Stephen B. Wee.Hayes, and Stephen B. Weinstein.Data Communications Principles.通信理论的应用》。纽约:Plenum 出版社,1992 年。
-
Yasuda, Y., K.Kashiki, and Y. Hirata.Hirata."High-Rate Punctured Convolutional Codes for Soft Decision Viterbi Decoding." IEEE Transactions of Communications 32, no.IEEE Transactions on Communications 32, no.3 (March 1984):315-19.https://doi.org/10.1109/TCOM.1984.1096047.
-
Haccoun, D., and G. Begin."High-Rate Punctured Convolutional Codes for Viterbi and Sequential Decoding." IEEE Transactions of Communications 37, no.IEEE Transactions on Communications 37, no.11 (November 1989):1113-25.https://doi.org/10.1109/26.46505.
-
Begin, G., D.Haccoun, and C. Paquin.Paquin."Further Results on High-Rate Punctured Convolutional Codes for Viterbi and Sequential Decoding." IEEE Transactions on Communications 38, no.IEEE Transactions on Communications 38, no.11 (November 1990):1922-28.https://doi.org/10.1109/26.61470.