问题标签 [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 投票
0 回答
20 浏览

decoder - 我在编码 Viterbi 解码器时遇到问题

在 pycharm 上,我使用 ConvCodec4 类作为编码器和解码器以及模拟类来实验 Ber 与 data_size

我原以为它可以工作,但它发出错误消息说:range expected at most 3 arguments, got 4" 但我确定我在代码顶部给出了 4 个数据空白

ConvCodeck4 类 '''

将 numpy 导入为 np

def 编码器(数据):

def ViterbiDecoder(encoded_bit):

'''

模拟类

将 numpy 导入为 np

将 matplotlib.pyplot 导入为 plt

将 ConvCodeck4 导入为 cc

数据大小=100

max_snr=10# 최대 SNR

min_snr=9

伯=[]

对于范围内的 snr_db (min_snr, max_snr): data=np.random.randint(0,2, data_size)

打印(dec_input)

打印(real_detected_signal)

'''

0 投票
0 回答
21 浏览

diagram - 维特比解码器 k=4

在 k=3 格子图中,我使用此代码将我的距离相加并选择最短的

我将范围设置在 0~3 之间,因为 K=3 状态图中有 4 个状态,但在 k=4 环境中,图中有 8 个状态,所以我将范围更改为 0~7,但这个解码器不能正常工作

在此之下,是我的整个编解码器代码

0 投票
1 回答
67 浏览

python - 没有拟合 HMM 模型的维特比算法,python

我有一组我确定的观察和陈述。我试图将观察结果与状态相关联,但 hmmlearn 库只会在将 HMM 拟合到观察结果后解码观察结果。配件改变了不需要的状态。

是否有不适合模型的 HMM 实现?

0 投票
0 回答
111 浏览

python - python中的卷积解码-维特比算法

我在 python 中有一个任务来创建一个接收多项式的类,例如 1+x+x^2+...x^n。基于这些多项式(可能有很多),我对比特流进行编码。
我设法正确地完成了编码部分,但我在解码方面遇到了困难,我可以制作具有所有我可以获得的状态的有限状态机,但是我不知道如何将其转移到格子中并计算汉明距离(假设我从状态 00..0 开始并以 00..0 结束)关于如何在不回溯的情况下做到这一点的任何建议?

我需要每隔几步返回并删除不需要的路线,否则程序将崩溃。

将不胜感激有关如何开始的指示。

0 投票
1 回答
33 浏览

python - 排放概率表的最佳数据结构是什么?

对于我的项目,我有一个单词数据集(例如狗、跑、猫),每个单词都用词性标记(例如动词、名词、形容词)。我需要创建一个数据结构来存储每个单词将成为某个词性的总数。我目前正在使用一个 3d 数组,其中一个单词是每个数组中的第一个元素,然后是词性,然后是每个相应的 pos 之后的实例总数。下面是一个例子。

这似乎很乏味,可能有更好的方法来做到这一点。特别是因为我必须将每个总数转换为概率(x 单词是 x 词性的概率)。这也称为发射概率表。有没有更好的数据结构呢?

0 投票
1 回答
49 浏览

python - 为什么维特比算法(POS标注)总是预测一个标签?

这是我的 HMM 模型类:

它实际上几乎完全写在我面前。我要填补一些空白(尤其是在我们计算 q 和 back_point 矩阵的维特比算法中)。但我认为我做错了什么,因为我的模型总是预测这样的事情:

在上面的例子中,我给了它这句话: [['he', 'can', 'stay']]

我检查过:所有这些词都在火车数据中。

我已经打印出矩阵 A 和 B。它们是:

A:

在此处输入图像描述

乙:

在此处输入图像描述

这表明模型的第一部分工作正常。

这些是我寻求帮助的公式:

在此处输入图像描述

在此处输入图像描述

这是数据:

我的模型可能有什么问题?

0 投票
0 回答
41 浏览

python - python中是否有相当于matlab的vitdec的python

我对这里是否是具有 Matlab 的 vitdec 实现功能的 Viterbi 算法的 python 实现有疑问。

在 MATLAB 中,vitdec 方法可以有一个签名

其中 'trunc' 指定截断操作模式(在截断操作模式下,假定编码器已在全零状态下启动。解码器从具有最佳度量的状态回溯。此模式会产生零延迟。此模式适用当你不能假设编码器以全零状态结束并且当你不想保持对该函数的连续调用之间的连续性时),'soft' 设置用于软判决解码和 nsdec 设置量化位数(在我的案例 nsdec 为 8)

现在在 pythons commpy 模块中有一个类似的方法叫做 viterbi_decode 但是我没有看到 nsdec 和 'trunc' 参数的等价物;

有谁知道 python 的 commpy viterbi_decode 是否会使用这些参数支持 Matlab 的 vitdec 实现?如果不能,是否可以修改 python 版本以支持附加参数?

在此先感谢您的帮助

0 投票
0 回答
17 浏览

matlab - 实现卷积码的解码器

我正在测试约束长度 K = 7 和码率 = 1/2 的卷积码解码器的实现。

作为我的测试环境、发射器和接收器,我使用了 mathworks 的示例。

用于测试的发射器:

我决定用最简单的调制方案 BPSK 进行测试

应用卷积编码输入数据。

对编码符号应用调制。

将 Eb/No 转换为等效的 SNR 比率。通过 AWGN 通道传递信号。

解调接收信号:

为了解码二进制解调信号,我使用了我的 Viterbi 解码器实现vitdec_k_7(length (demodSig ),demodSig, 1 )

我已经计算了误码率,它是 30% 。这个数字告诉我有一个很大的错误。我检查了我的认识大约 100 次,但找不到我弄错的地方

有人可以帮我找到这个错误吗?