Simulink Matlab功能块多维矩阵移位

时间:2015-01-21 15:09:19

标签: matlab multidimensional-array simulink

我使用commdvbs模型进行模拟。

我的问题出现在需要执行循环移位到我的位序列的位置,更准确地说,需要在维特比解码器之前完成。

所以,我通过插入一个功能块和使用circshift来做到这一点(非常欢迎您建议替代方法)。

现在,当模拟时间增加到超过最小点(使用的矩阵停止为2维)时,更多“页面”(第三,第四,第五......维度)正在调高以适应数据产生。然后,在我的函数所在的位置,模拟以某种方式被“阻塞”,这意味着它进入功能块并执行多次旋转(等于第三维的数量),其差异仅适用于第一个维度(页面)的第一个输入向量,不更新到第二个维度的向量,依此类推。

例如,如果我有一个包含3个向量A(3,1,3)的3维矩阵,则需要将其处理为:

First: circshift(A(:,:,1),2,2)

Second: circshift(A(:,:,2),2,2)

third: circshift(A(:,:,3),2,2)

Instead it does:

First: circshift(A(:,:,1),2,2)

Second: circshift(A(:,:,1),2,2)

third: circshift(A(:,:,1),2,2)

有谁知道这个问题的解决方法? 乔治

1 个答案:

答案 0 :(得分:0)

问题是我使用的模型遵循基于帧的模拟,因此功能块需要遵循相同的方法。 这是通过基于编辑数据 - >输出 - >采样模式将功能块的输出改变为帧来完成的。 感谢