PolyMatConv

PURPOSE ^

H = PolyMatConv(F,G);

SYNOPSIS ^

function H = PolyMatConv(F,G);

DESCRIPTION ^

H = PolyMatConv(F,G);

   Returns the convolution of two MIMO system matrices F and G. This 
   convolution operator is not commutative, and if representing 
   polynomial matrices, F is left-multiplied onto G.

   For all matrices F, G and H, the first two dimensions are spatial, 
   and the third dimension is lag or time. If e.g. F is a polynomial 
   matrix of the format
      F(z) = F0 + F1 z^{-1} + F2 z^{-2} + ...
   then
      F(:,:,1) = F0;
      F(:,:,2) = F1;
      F(:,:,3) = F2;
      ...
   is the required representation for the input. The output is
      H(z) = F(z)G(z)
   with a format representation analogously to F(z) above.

   Input parameters
      F      K x M x L1 MIMO system matrix 
             K   output dimension
             M   input dimension
             L1  length of FIR filters
      G      M x N x L2 MIMO system matrix 
             M   output dimension
             N   input dimension
             L2  length of FIR filters

   Output parameters
      H      K x N x (L1+L2-1) MIMO system matrix

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function H = PolyMatConv(F,G);
0002 %H = PolyMatConv(F,G);
0003 %
0004 %   Returns the convolution of two MIMO system matrices F and G. This
0005 %   convolution operator is not commutative, and if representing
0006 %   polynomial matrices, F is left-multiplied onto G.
0007 %
0008 %   For all matrices F, G and H, the first two dimensions are spatial,
0009 %   and the third dimension is lag or time. If e.g. F is a polynomial
0010 %   matrix of the format
0011 %      F(z) = F0 + F1 z^{-1} + F2 z^{-2} + ...
0012 %   then
0013 %      F(:,:,1) = F0;
0014 %      F(:,:,2) = F1;
0015 %      F(:,:,3) = F2;
0016 %      ...
0017 %   is the required representation for the input. The output is
0018 %      H(z) = F(z)G(z)
0019 %   with a format representation analogously to F(z) above.
0020 %
0021 %   Input parameters
0022 %      F      K x M x L1 MIMO system matrix
0023 %             K   output dimension
0024 %             M   input dimension
0025 %             L1  length of FIR filters
0026 %      G      M x N x L2 MIMO system matrix
0027 %             M   output dimension
0028 %             N   input dimension
0029 %             L2  length of FIR filters
0030 %
0031 %   Output parameters
0032 %      H      K x N x (L1+L2-1) MIMO system matrix
0033    
0034 % S Weiss, Univ of Southampton, 15/7/2004
0035   
0036 [M1,N1,L1] = size(F);
0037 [M2,N2,L2] = size(G);
0038 if N1 ~= M2,
0039   error('input matrix dimensions to function PolyMatConv() do not agree');
0040 end;
0041 % Pre-allocate MIMO system matrix
0042 H = zeros(M1,N2,L1+L2-1);
0043 
0044 for m = 1:M1,
0045   for n = 1:N2,
0046     for k = 1:N1,
0047       a = shiftdim(F(m,k,:),1);
0048       b = shiftdim(G(k,n,:),1);
0049       c(1,:,1) = conv(a,b);
0050       H(m,n,:) = H(m,n,:) + shiftdim(c,-1);
0051     end;   
0052   end;  
0053 end;
0054

Generated on Mon 03-Jul-2023 19:45:57 by m2html © 2005