This is where navigation should be.

ZAK - Zak transform

Usage

c=zak(f,a);

Description

zak(f,a) computes the Zak transform of f with parameter a. The coefficients are arranged in an \(a \times L/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,\ldots,a-1\) and \(n=0,\ldots,N-1\)

\begin{equation*} c(m+1,n+1) = \frac{1}{\sqrt{N}}\sum_{k=0}^{N-1}f(m-ka+1)e^{2\pi ink/M} \end{equation*}

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. Bölcskei and F. Hlawatsch. Discrete Zak transforms, polyphase transforms, and applications. IEEE Trans. Signal Process., 45(4):851--866, april 1997.