主要内容

维特比译码器

使用维特比算法解码卷积编码数据

  • 库:
  • 通信工具箱/错误检测和纠正/卷积

    通信工具箱HDL支持/错误检测和纠正/卷积

  • 维特比解码器块

描述

维特比解码器块通过使用维特比算法将卷积编码的输入符号解码为二进制输出符号。格子结构指定了卷积编码方案。有关更多信息,请参见卷积码的网格描述

此块可以一次处理多个符号以获得更快的性能,并且可以在模拟过程中接受长度不同的输入。有关可变大小信号的更多信息,请参见可变大小信号基础(模型)

此图标显示所有已启用的可选块端口。

维特比解码器块,可选擦除和复位端口启用

港口

输入

全部展开

卷积编码的码字,指定为列向量。如果解码器取N输入位流(即可以接收2个N可能的输入符号),则块的输入向量长度为l×N对于某个正整数l.有关更多信息,请参见输入和输出大小输入值和决策类型,以及操作模式参数。

在启用第二个输入端口之前,此端口未命名。

数据类型:||布尔|int8|int16|int32|uint8|uint16|uint32|ufixn

码字中的擦除位,指定为二进制值向量。的值1在向量中对应擦除的位,值为0对应于未擦除的位。

对于传入数据流中的这些擦除,解码器不更新分支度量。擦除端口和输入数据端口的宽度、采样次数必须一致。

依赖关系

若要启用此端口,请选择启用擦除输入端口

数据类型:|布尔

选项,用于重置解码器寄存器的状态,指定为标量值。当该端口接收到非零输入值时,块在处理输入数据之前将其内部内存设置为初始状态。将解码器寄存器重置为初始状态集:

  • 到零的全零状态度规

  • 所有其他状态度量的最大值

  • 回溯到零的内存

在这个块上使用复位端口类似于设置操作模式卷积编码器通过端口非零输入复位

依赖关系

若要启用此端口,请设置操作模式参数连续并选择开启复位输入端口

数据类型:|布尔

输出

全部展开

输出消息,作为二进制列向量返回。如果解码器产生K输出位流(即可以产生2个K可能的输出符号),则块输出向量的长度为l×K对于某个正整数l.有关更多信息,请参见输入和输出大小

该端口在块图标上未命名。

数据类型:||布尔|int8|int16|int32|uint8|uint16|uint32|ufix1

参数

全部展开

主要

卷积码的网格描述,指定为包含速率的网格描述的结构KN代码。K输入比特流的个数,和N输出比特流的数量。

你可以使用poly2trellis函数来创建网格结构或手动创建它。有关此结构的更多信息,请参见卷积码的网格描述istrellis函数。

网格结构包含这些字段。

输入到编码器的符号数,指定为等于2的整数K,在那里K输入比特流的个数。

数据类型:

编码器输出的符号数,指定为等于2的整数N,在那里N输出比特流的数量。

数据类型:

编码器中的状态数,指定为2的幂。

数据类型:

当前状态和当前输入的所有组合的Next状态,指定为整数矩阵。矩阵大小必须为numStates2K

数据类型:

当前状态和当前输入的所有组合的输出,指定为八进制矩阵。矩阵大小必须为numStates2K

数据类型:

选择此参数可查看并启用穿刺向量参数。

穿刺模式向量用于穿刺已解码的数据,指定为列向量。向量必须包含1年代和0年代,0表示穿孔位的位置。该穿刺模式必须与卷积编码器使用的穿刺模式匹配。

有关特定速率和多项式的一些常用穿刺模式,请参阅安田[4], Haccoun[5],并开始[6]参考文献

依赖关系

选项时,此参数才会出现戳破了代码参数。

选择此参数可添加时代块的输入端口。

解码器决策类型,指定为Unquantized艰难的决定,或软的决定

  • Unquantized解码器使用欧几里得距离来计算分支度量。输入数据必须是未量化的双精度或单精度软值的实值向量。对象将正的值映射到逻辑1S和负值到逻辑上0年代

  • 艰难的决定解码器使用汉明距离来计算分支度量。输入必须是硬决策值的向量,即0年代或1s.输入的数据类型必须为双精度、单精度、逻辑或数字。

  • 软的决定解码器使用汉明距离来计算分支度量。输入需要一个量化软值向量,这些值表示为0到之间的整数2SoftInputWordLength- 1.输入的数据类型必须为双精度、单精度、逻辑或数字。方法将数据类型指定为无符号和未缩放的定点对象fi(定点设计师)具有字长(SoftInputWordLength)等于指定的单词长度软决策位的数量参数。0被认为是最自信的0而且2SoftInputWordLength- 1作为最自信的人1

软输入字长,表示每个量化软输入值的位数,指定为整数。

依赖关系

时,此参数才会出现决策类型参数软的决定

如果量化的输入值超出范围,则选择此参数出错。如果不选择此参数,超出范围的输入值将被忽略。

依赖关系

时,此参数才会出现决策类型参数艰难的决定软的决定

回溯深度,指定为整数,指示用于构造每个回溯路径的网格分支的数量。

回溯深度影响解码延迟。解码延迟是在输出中第一个解码符号之前的零符号数。

  • 对于连续工作模式,解码延迟等于回溯深度符号的数量。

  • 对于截断或终止工作模式,解码延迟为零。在这种情况下,回溯深度必须小于或等于每个输入中的符号数。

一般估计,典型的回溯深度值大约是2到3倍ConstraintLength- 1) / (1 -coderate.代码的限制长度,ConstraintLength,等于(log2 (格子numStates) + 1).的coderate等于K/N) ×(长度(PuncturePattern) / sum(PuncturePattern

K是输入符号的个数,N是输出符号的数量,还是PuncturePattern是穿刺模式向量。

例如,应用这个一般的估计,可以得到这些近似的回溯深度。

  • 速率1/2代码的回溯深度为5 (ConstraintLength- 1)

  • 速率为2/3的代码的回溯深度为7.5 (ConstraintLength- 1)

  • 速率为3/4的代码的回溯深度为10 (ConstraintLength- 1)

  • 速率5/6代码的回溯深度为15 (ConstraintLength- 1)

有关更多信息,请参见[7]

在连续输入帧之间转换的方法,指定为这些模式值之一。

  • 连续-块在每个输入结束时保存其内部状态度量,用于下一帧。每个回溯路径都是独立处理的。这种模式导致解码延迟回溯深度×K0位表示速率K/N卷积码。K是消息符号的数量,还是N是编码符号的数目。如果开启复位输入端口时,解码器状态将重置Rst端口接收非零值。

  • 截断—block独立地处理每个输入。回溯路径从具有最佳度量的状态开始,始终以全零状态结束。此模式对应时适当卷积编码器Block有操作模式设置为截断(重置每帧).这种模式没有输出延迟。

  • 终止—块对每个输入都独立处理,回溯路径的起始和结束状态始终为全0。此模式适用于未编码消息信号时(即输入到相应的卷积编码器块)在每个输入的末尾有足够的零来填充前馈编码器的所有内存寄存器。具体来说,至少有k *马克斯(constr-1)0在输入的末尾,对于编码器k输入流和约束长度向量若干(使用多项式描述)。对于反馈编码器,此模式是适当的,如果对应卷积编码器块有操作模式设置为通过追加位来终止网格

请注意

当块在模拟过程中输出长度不同的序列时,解码器状态在每个输入时步重置操作模式截断终止

当输入信号只包含一个符号时,使用连续运行模式。

选择此参数可添加Rst输入端口。

依赖关系

时,此参数才会出现操作模式参数连续

选择此参数将延迟解码器的重置,直到计算当前时间步长中接收的已编码数据之后。您必须启用此选项以支持HDL。生成HDL代码需要HDL Coder™软件。

依赖关系

时,此参数才会出现操作模式参数连续并选择开启复位输入端口

数据类型

状态度量字长,指定为正整数。

输出数据类型,指定为布尔int8uint8int16uint16int32,或uint32,或设置为“通过内部规则继承”最小无符号整数

  • 当设置为最小无符号整数中使用的设置选择输出数据类型硬件实现窗格中的“配置参数”对话框。如果ASIC / FPGA硬件实现窗格中,输出数据类型为ufix (1).对于所有其他选择,它是一个无符号整数,具有与char值对应的最小指定字长(例如,uint8).

  • 当设置为“通过内部规则继承”,块:

    • 为双输入输出数据类型double

    • 输出数据类型为单一输入

    • 行为类似于最小无符号整数所有其他数据类型输入的选项

块特征

数据类型

布尔||不动点一个|整数|

多维信号

没有

适应信号

是的

一个输入可以是硬决策的ufix(1),软决策的ufix(N);输出只能是ufix(1)。

更多关于

全部展开

参考文献

[1]克拉克,乔治·C和j·比布·凯恩。数字通信纠错编码.通讯理论应用“,”纽约:全会出版社,1981年。

[2]吉特林、理查德·D、耶利米·f·海耶斯和斯蒂芬·b·韦恩斯坦。数据通信原则。传播学理论应用.纽约:全会出版社,1992年。

[3]海勒,J,和我,雅各布斯。卫星和空间通信的维特比译码IEEE通讯技术汇刊19日,没有。5(1971年10月):835-48。https://doi.org/10.1109/TCOM.1971.1090711。

[4]安田,Y., K. Kashiki和Y. Hirata。“用于软决策维特比解码的高速率穿孔卷积码。”IEEE通讯汇刊32岁的没有。3(1984年3月):315-19。https://doi.org/10.1109/TCOM.1984.1096047。

[5]哈昆,D.和G.贝京。用于维特比和顺序解码的高速率刺穿卷积码IEEE通讯汇刊37岁的没有。11(1989年11月):1113-25。https://doi.org/10.1109/26.46505。

[6]贝京,G.哈昆,C.帕奎因。用于Viterbi和顺序解码的高速率刺穿卷积码的进一步结果IEEE通讯汇刊38岁的没有。11(1990年11月):1922-28。https://doi.org/10.1109/26.61470。

[7]Moision B。卷积码的截断深度经验法则信息理论与应用研讨会(2008年1月27日- 2008年2月1日,加州圣地亚哥),555-557。纽约:IEEE, 2008。

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。

版本历史

R2006a之前介绍

全部展开

Baidu
map