【问题标题】:Turbo Encoder inter-leaver not workingTurbo 编码器交织器不工作
【发布时间】:2014-10-13 05:19:07
【问题描述】:

我正在尝试为我的项目创建一个 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);

【问题讨论】:

    标签: matlab encoder telecommunication forwarderrorcorrection


    【解决方案1】:

    首先,如果您的问题是关于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)));
    

    【讨论】:

    • 感谢它的工作。实际上我正在尝试构建一个涡轮编码器。它使用 2 个并行卷积编码器对 msg 进行编码。在 msg 交织后,其中一个编码器对 msg 进行编码。因此我使用的是 randperm() 函数。
    猜你喜欢
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多