问题标签 [viterbi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1033 浏览

matlab - 软维特比解码器无法正常工作

我一直在 matlab2009 中使用简单的 1/2 速率卷积编码器开发维特比解码器。这是我的代码

根据这个输入代码,我得到的代码 = 00 11 10 00 01 10 01 11 11 10 00 10 11 00 11 这是正确的,但谈论维特比解码器后输出的 dcd 不正确,即 000000101110010。这是完全不同的从我的味精输入。

指导我去哪里不正确

0 投票
0 回答
94 浏览

debugging - 理解Prolog函数,如何间歇性打印结果

我正在努力理解以下 Prolog 代码:

它是维特比算法的实现。

我想了解不同位置的代码中的数据结构是如何填充的,它们是什么样的。是否可以在算法中散布等效的“打印”语句,以便我可以看到每一步发生了什么?我在用 Java 或 Python 编码时经常这样做,我发现它是一种或多或少有用的机制来“了解”程序的内容。

如果您有兴趣,我一直在以以下概率使用它:

并像这样检查结果:

0 投票
0 回答
4351 浏览

algorithm - 维特比算法 Matlab

我正在尝试在 Matlab 中实现 Viterbi 算法,并且由于某种原因,在我的第一次通过后,我的归纳部分 alpha 变为 0。IE V =

V =

V =

V =

此外,BestPath 只会产生一堆 0,最后是一个,我不知道为什么。

我的代码:

0 投票
1 回答
1865 浏览

dvb - 为什么在 DVB-T 中同时使用 Viterbi 和 Reed-Solomon?

据我了解,DVB-T数据包通过两个FEC系统,分别是Viterbi,数据丢失高达50%,RS,数据丢失高达10%。这些被称为外部和内部编码。

我无法理解第二个 RS 编码的必要性(在这种情况下,188 字节长的 MPEG-TS 数据包会额外增加 20 个字节)。

更具体地说,损坏的数据包会发生什么,例如 55%?50% 的错误是否由 Viterbi 解码器修复,剩余的 5% 由 RS 修复?

对不起我的愚蠢。

0 投票
2 回答
201 浏览

algorithm - 使用动态编程时,捕获整个路径以获得最小和?

我正在尝试使用 Viterbi min-sum 算法,该算法试图找到通过一堆节点的路径,以最小化针对某些固定输入的整体汉明距离(“异或两个数字并计算结果位”的花哨术语)。

我了解如何使用 DP 来计算整体最小距离,但我无法使用它来捕获与最小距离相对应的相应路径。

似乎在每个节点上记住路径确实会占用大量内存。是否有处理此类问题的标准方法?

编辑:

http://i.imgur.com/EugiEWG.jpg

这是我正在谈论的示例格子。一般的想法是找到通过网格的路径,该路径最接近地模拟输入位串,并且误差最小(通过最小化整体汉明距离或不匹配位的数量来测量)。

如您所见,我输入字符串的第一个块是 01,我可以在格子的第 1 列中遍历那里。下一个块是 10,我可以在第 2 列中移动到那里。下一个块是 11。到目前为止还不错。Next chunk 是 10,这是一个问题,因为我无法从现在的位置达到那个状态,所以我必须去下一个最好的东西(00),其余的可以很好地填充。

但这可能会变得更加复杂。我需要能够以某种方式获得最小汉明距离的相应路径。

(这个练习的重点是格子表示什么是实际有效的转换,而输入字符串是您通过电信收到的,可能会出现乱码并且到处都有不正确的位。这个程序试图找出输入字符串应该通过最小化错误)。

0 投票
1 回答
174 浏览

algorithm - 如果图中有环,我们可以应用维特比算法吗?

我正在尝试解决一个可以通过 BFS 和 viterbi 算法解决的问题。但是如果图中有循环,BFS 可能会失败。所以我的问题是维特比算法循环安全吗?

0 投票
1 回答
243 浏览

machine-learning - 试图更好地理解 VITERBI 算法

我目前正在尝试在 python 中实现维特比算法,更具体地说是在线课程中提供的版本。

就目前而言,算法是这样呈现的:给定一个带有 K 个标记的句子,我们必须生成 K 个标签。

我们假设标签 K-1 = 标签 K-2 = '*',然后对于 k 从 0 到 K,我们为令牌设置标签如下: tag(WORD_k) = argmax(p(k-1, tag_k -2, tag_k-1) * e( word_k, tag_k) * q(tag_k, tag_k-1, tag_k-1))

根据我的理解,这很简单,因为 p 参数已经在每一步中计算出来(我们从 1 开始,我们已经知道 p0),并且 e 和 q 参数的最大值可以通过标签的一次迭代来计算(因为我们不能想出 2 个不同的标签,我们基本上必须找到 q * e 乘积最大的标签 T,然后返回)。这节省了很多时间,因为我们在大 O 表示法中几乎处于线性时间,而不是指数复杂度,如果我们迭代所有可能的单词/标签组合,我们会得到。

我是正确地理解了算法的核心还是遗漏了一些东西?

提前致谢

0 投票
1 回答
2029 浏览

python - NLTK ViterbiParser 无法解析不在 PCFG 规则中的单词

当我运行上面的代码时,它会为句子“关闭灯”产生以下输出 -

(S(VP(VB转)(PRT(RP关闭))(NP(DT)(NNS灯)))(p=2.53851e-14)

但是,它会为句子“请关闭灯”引发以下错误-

ValueError: Grammar does not cover some input words: u"'please'"

我正在通过为其提供概率上下文无关语法来构建 ViterbiParser。它在解析包含已经在语法规则中的单词的句子时效果很好。它无法解析解析器在语法规则中没有看到单词的句子。如何绕过这个限制?
我指的是这个作业

0 投票
1 回答
692 浏览

convolution - 使用matlab进行卷积码和维特比解码

我正在尝试使用 Matlab 对简单消息进行编码和解码。该消息表示为 msg=[1 0 0 1 1 1 0 1]。编码步骤是富有成效的,但解码步骤“维特比”返回零的二进制字符串'0 0 0 0 0 0 0 0'而不是初始味精。以下是代码源,我不知道问题出在哪里

多谢。

0 投票
1 回答
145 浏览

algorithm - 维特比算法中的这一行具体做什么?

维特比线

我更关心的是理解左边的赋值箭头,然后是 max s'=1 到 N。忽略变量的语义。

谢谢!