Y = MIMOfilter(H,X); Performs a filtering of an N-channel input with a KxN channel MIMO system. Input parameters: H K x N x L MIMO system matrix K output dimension N input dimension L1 lenght of FIR filters X N x L2 N channel input of length L2 Output parameter: Y K x L2 K channel output of length L2
0001 function Y = MIMOFilter(H,X); 0002 %Y = MIMOfilter(H,X); 0003 % 0004 % Performs a filtering of an N-channel input with 0005 % a KxN channel MIMO system. 0006 % 0007 % Input parameters: 0008 % H K x N x L MIMO system matrix 0009 % K output dimension 0010 % N input dimension 0011 % L1 lenght of FIR filters 0012 % X N x L2 N channel input of length L2 0013 % 0014 % Output parameter: 0015 % Y K x L2 K channel output of length L2 0016 0017 % S Weiss, Univ of Southampton, 15/7/2004 0018 0019 [M,N1,L1] = size(H); 0020 [N2,L2] = size(X); 0021 if N2 ~= N1, 0022 error('MIMOfilter: dimensions do not agree'); 0023 end; 0024 Y = zeros(M,L2); 0025 for m = 1:M, 0026 for n = 1:N1, 0027 Y(m,:) = Y(m,:) + filter(shiftdim(H(m,n,:)),1,X(n,:)); 0028 end; 0029 end; 0030