Mir ist keine native STFT-Implementierung in Julia bekannt. Wie David in seinem Kommentar sagte, müssen Sie dies selbst umsetzen. Das ist ziemlich einfach:
1) das Signal in kurze Zeitabschnitte Break up
2) Übernehmen Sie die Fenster der Wahl (in Ihrem Fall, Hamming)
3) Nehmen Sie die FFT Julias mit fft
Funktion .
Alle oben genannten sind ziemlich Standard mathematische Operationen und Sie finden eine Menge von Referenzen online. Der folgende Code erzeugt ein Hamming-Fenster, wenn Sie noch keins haben (achten Sie auf Julias 1-indexing
, wenn Sie Online-Referenzen verwenden, da viele der Signalverarbeitungs-Referenzmaterialien bei der Beschreibung der Fenstergenerierung gerne 0-indexing
verwenden).
Wb = Array(Float64, N)
## Hamming Window Generation
for n in 1:N
Wb[n] = 0.54-0.46cos(2pi*(n-1)/N)
end
Sie können auch die Hamming-Fensterfunktion von DSP.jl verwenden.
P.S Wenn Sie Julia unter OS X ausführen, überprüfen Sie die Julia interface zu Apples Accelerate-Framework. Dies liefert eine sehr schnelle Hamming-Fenster-Implementierung sowie Faltungs-und elementweise Multiplikationsfunktionen, die hilfreich sein könnten.
Ich denke, Sie können einfach tun, was es im ersten Absatz der verlinkten Wikipedia-Seite sagt: Nehmen Sie die FFT von Abschnitten (Fenstern) der Zeitreihe? Was vermisst das? –