Effizient berechnen eine Teilmenge von Fourier -KoeffizientenPython

Python-Programme
Anonymous
 Effizient berechnen eine Teilmenge von Fourier -Koeffizienten

Post by Anonymous »

Bei einem großen Eingangsarray x sagen wir Länge n = 2 ** 16 , ich möchte die Fourier -Koeffizienten nur für eine kleine Anzahl von Frequenzen, sagen wir ein Intervall der Länge [100: 200] . Gibt es eine Bibliothek, die dies effizient tun kann? Natürlich könnte ich meinen eigenen Fast Fourier -Transformationsalgorithmus implementieren, aber etwas "aus dem Regal" wäre ideal.y = scipy.fft.fft(x)
z = y[100: 200]
< /code>
Auf meinem Computer dauert dies 0,65 Sekunden. Ein effizienterer Weg ist die Verwendung der Definition des DFT und berechnet sie nur für die von Interesse von Interesse < /p>
z = np.zeros(100)
index = 0
for k in range(100, 200):
z[index] = np.sum(x * np.exp(-2j*np.pi*k*np.arange(N)/N))
index += 1
< /code>
Auf meinem Computer dauert dies 0,38 Sekunden. Vermutlich kann dies weit mehr verbessert werden, und ich frage mich, ob dies bereits irgendwo getan wurde, um mir die Mühe zu ersparen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post