我正在尝试使用Matlab对一条简单的消息进行编码和解码。该消息被表示为msg=[1 0 0 1 1 1 0 1]。编码步骤是富有成效的,但解码步骤"viterbi"返回一个由零组成的二进制字符串"0 0 0 0",而不是初始msg。在代码源之后,我不知道问题在哪里
trellis = poly2trellis(7,[171 133])
code = convenc(msg,trellis);
decoded = vitdec(code,trellis,64,'cont','hard');
非常感谢。
您可以试试这一行:
vitdec(code, trellis,8,'trunc','hard')
正如MATLAB帮助中所说:"当您重复调用此函数并希望保持连续调用之间的连续性时,‘cont’模式是合适的。"但是你的输入向量不是这样的。