matrices.fourier

Generates a Fourier matrix.

Functions

fourier(dim)

Generate the Fourier transform matrix [1].

Module Contents

matrices.fourier.fourier(dim)

Generate the Fourier transform matrix [1].

Generates the dim-by-dim unitary matrix that implements the quantum Fourier transform.

The Fourier matrix is defined as:

\[\begin{split}W_N = \frac{1}{N} \begin{pmatrix} 1 & 1 & 1 & 1 & \ldots & 1 \\ 1 & \omega & \omega^2 & \omega^3 & \ldots & \omega^{N-1} \\ 1 & \omega^2 & \omega^4 & \omega^6 & \ldots & \omega^{2(N-1)} \\ 1 & \omega^3 & \omega^6 & \omega^9 & \ldots & \omega^{3(N-1)} \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & \omega^{N-1} & \omega^{2(N-1)} & \omega^{3(N-1)} & \ldots & \omega^{3(N-1)} \end{pmatrix}\end{split}\]

Examples

The Fourier matrix generated from \(d = 3\) yields the following matrix:

\[\begin{split}W_3 = \frac{1}{3} \begin{pmatrix} 1 & 1 & 1 \\ 0 & \omega & \omega^2 \\ 1 & \omega^2 & \omega^4 \end{pmatrix}\end{split}\]
>>> from toqito.matrices import fourier
>>> fourier(3)
array([[ 0.57735027+0.j ,  0.57735027+0.j ,  0.57735027+0.j ],
       [ 0.57735027+0.j , -0.28867513+0.5j, -0.28867513-0.5j],
       [ 0.57735027+0.j , -0.28867513-0.5j, -0.28867513+0.5j]])

References

[1] (1,2)

Wikipedia. DFT matrix. URL: https://en.wikipedia.org/wiki/DFT_matrix.

Parameters:

dim (int) – The size of the Fourier matrix.

Returns:

The Fourier matrix of dimension dim.

Return type:

numpy.ndarray