Springe zum Inhalt Informatikonline.net Logo

Diskrete Fourier Transformation mit Python

Copyright: Sebastian Tilders
Lizenz: GPL-v3

Beschreibung:
dft(...) führt auf einer übergebenen Liste eine diskrete Fourier-Transformation durch und gibt diese als Rückgabewert zurück.

#### Copyright: Sebastian Tilders
#### License: GPL-v3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
from cmath import exp, polar, rect, pi;

def getFundamentalFrequency(N):
    return (2*pi)/N;

def roundComplex(n, d):
    return round(n.real, d) + round(n.imag, d) * 1j;

def dft(list):
    omegaF = getFundamentalFrequency(len(list));
    erg = [];
    for n in range(len(list)):
        sum = 0;
        for k in range(len(list)):
            sum += complex(list[k]) * exp(-1j*omegaF*n*k);
        erg.append(sum);
    return erg;