Turbo Encoder交叉器无法正常工作

时间:2014-10-13 05:19:07

标签: matlab encoder telecommunication forwarderrorcorrection

我正在尝试为我的项目创建一个turbo编码器。

直到现在我已经创建了1/2速率的卷积编码器。现在我很难应用交织器。这是我的代码。我没有在ilvr获得输出。纠正我的错误。提前致谢

msg = [0 1 0 1 1 1 0 0 1 0 1 0 0 0 1];
t= poly2trellis(3,[6 7]);
[isok,status] = istrellis(t);
code1 = convenc(msg,t);
ilvr = randperm(msg);
code2 = convenc(ilvr,t);

1 个答案:

答案 0 :(得分:0)

首先,如果您的问题是关于ilvr,那么为什么要包含除msg的定义和相关行之外的其余代码?

其次,当我跑这个时:

msg = [0 1 0 1 1 1 0 0 1 0 1 0 0 0 1];
ilvr = randperm(msg);

我收到以下错误:

Error using randperm
Size inputs must be scalar.

因此,这意味着输入不是randperm所期望的。然后我输入了help randperm,并查看了randperm的帮助,现在我了解randperm做了什么以及预期的输入。错误是因为您给了randperm一个向量,但第一个输入必须是整数。

我不确定你要在那条线上做什么,也许你正试图在msg中对元素进行随机排列?在帮助页面中提示后,请尝试以下操作:

ilvr=msg(randperm(numel(msg)));