Function: matrix2latticetype
MATRIX2LATTICETYPE  Convert matrix form to standard lattice description
  Usage: [a,M,lt] = matrix2latticetype(L,V);

  [a,M,lt]=MATRIX2LATTICETYPE(L,V) converts a 2x2 integer matrix
  description into the standard description of a lattice using the a,
  M and lt. The conversion is only valid for the specified transform
  length L.

  The lattice type lt is a 1 x2 vector [lt_1,lt_2] denoting an
  irreducible fraction lt_1/lt_2. This fraction describes the distance
  in frequency (counted in frequency channels) that each coefficient is
  offset when moving in time by the time-shift of a. Some examples:
  lt=[0 1] defines a square lattice, lt=[1 2] defines the quinqux
  (almost hexagonal) lattice, lt=[1 3] describes a lattice with a
  1/3 frequency offset for each time shift and so forth.

  An example:

    [a,M,lt] = matrix2latticetype(120,[10 0; 5 10])

  Coefficient layout:
  -------------------

  The following code generates plots which show the coefficient layout
  and enumeration of the first 4 lattices in the time-frequecy plane:

    a=6;
    M=6;
    L=36;
    b=L/M;
    N=L/a;
    cw=3;
    ftz=12;
    
    [x,y]=meshgrid(a*(0:N-1),b*(0:M-1));

    lt1=[0 1 1 2];
    lt2=[1 2 3 3];

    for fignum=1:4
      subplot(2,2,fignum);
      z=y;
      if lt2(fignum)>0
        z=z+mod(lt1(fignum)*x/lt2(fignum),b);
      end;
      for ii=1:M*N
        text(x(ii)-cw/4,z(ii),sprintf('%2.0i',ii),'Fontsize',ftz);
        rectangle('Curvature',[1 1], 'Position',[x(ii)-cw/2,z(ii)-cw/2,cw,cw]);
      end;
      axis([-cw L -cw L]);
      axis('square');
      title(sprintf('lt=[%i %i]',lt1(fignum),lt2(fignum)),'Fontsize',ftz);
    end;

Url: http://ltfat.github.io/doc/gabor/matrix2latticetype.html

See also: latticetype2matrix.

Package: ltfat