{ } Raw JSON

bundles / scipy latest / scipy / linalg / _special_matrices / dft

function

scipy.linalg._special_matrices:dft

source: /scipy/linalg/_special_matrices.py :879

Signature

def   dft ( n scale = None )

Summary

Discrete Fourier transform matrix.

Extended Summary

Create the matrix that computes the discrete Fourier transform of a sequence [1]. The nth primitive root of unity used to generate the matrix is exp(-2*pi*i/n), where i = sqrt(-1).

Parameters

n : int

Size the matrix to create.

scale : str, optional

Must be None, 'sqrtn', or 'n'. If scale is 'sqrtn', the matrix is divided by sqrt(n). If scale is 'n', the matrix is divided by n. If scale is None (the default), the matrix is not normalized, and the return value is simply the Vandermonde matrix of the roots of unity.

Returns

m : (n, n) ndarray

The DFT matrix.

Notes

When scale is None, multiplying a vector by the matrix returned by dft is mathematically equivalent to (but much less efficient than) the calculation performed by scipy.fft.fft.

Examples

import numpy as np
from scipy.linalg import dft
np.set_printoptions(precision=2, suppress=True)  # for compact output
m = dft(5)
m
x = np.array([1, 2, 3, 0, 3])
m @ x  # Compute the DFT of x
Verify that ``m @ x`` is the same as ``fft(x)``.
from scipy.fft import fft
fft(x)     # Same result as m @ x

Aliases

  • scipy.linalg.dft

Referenced by

This package