Statement of Problem
I need to realise vector-array multiplication in Simulink. This has been realised in Matlab but because the process yielding the received signal is in Simulink and is both dynamic and continuous, it is imperative that this realisation be done in Simulink.
Matlab realisation
Received data, r = 512x 2 x t
Pseudo inverse channel matrix, G = 2x2x512xt
To realise this in matlab, I have put a for loop as follows:
For j=1:512
Yk(:,j)=G(:,:,j)*r(:j);
end
MATLAB Version 7.0.1.24704 (R14) Service Pack 1 of Simulink takes only 2D data while treating the 3D dimension always as time. In which case instead of considering 512 as the third dimension in the G data, it considers it as time!!!
Test case which works:
A= [1 2;3 4];
B=[5;6];
AA=repmat(A,[1 1 4 5]);
BB=repmat(B,[1 4 5]);
for i=1:4
for j=1:5
Y(:,i,j)=AA(:,:,i,j)*BB(:,i,j);
end
end
Will appreciate every help!