Function: zak
ZAK  Zak transform
  Usage:  c=zak(f,a);

  ZAK(f,a) computes the Zak transform of f with parameter a.  The
  coefficients are arranged in an a xL/a matrix, where L is the
  length of f.

  If f is a matrix then the transformation is applied to each column.
  This is then indexed by the third dimension of the output.

  Assume that c=zak(f,a), where f is a column vector of length L and
  N=L/a. Then the following holds for m=0,...,a-1 and n=0,...,N-1

                         N-1  
    c(m+1,n+1)=1/sqrt(N)*sum f(m-k*a+1)*exp(2*pi*i*n*k/N)
                         k=0

  Examples:
  ---------

  This figure shows the absolute value of the Zak-transform of a Gaussian.
  Notice that the Zak-transform is 0 in only a single point right in the
  middle of the plot :

    a=64;
    L=a^2; 
    g=pgauss(L);
    zg=zak(g,a);

    surf(abs(zg));
  
  This figure shows the absolute value of the Zak-transform of a 4th order
  Hermite function.  Notice how the Zak transform of the Hermite functions
  is zero on a circle centered on the corner :

    a=64;
    L=a^2; 
    g=pherm(L,4);
    zg=zak(g,a);

    surf(abs(zg));


  References:
    A. J. E. M. Janssen. Duality and biorthogonality for discrete-time
    Weyl-Heisenberg frames. Unclassified report, Philips Electronics,
    002/94.
    
    H. Boelcskei and F. Hlawatsch. Discrete Zak transforms, polyphase
    transforms, and applications. IEEE Trans. Signal Process.,
    45(4):851--866, april 1997.
    

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

See also: izak.

Package: ltfat