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