したがって、おそらくHammingウィンドウを使用してJuliaにSTFTを実装する方法が不思議です。私はインターネット上で何かを見つけることができません。JuliaでSTFT(短時間フーリエ変換)を実装する最良の方法
どのような方法が最適ですか?私はPythonライブラリを使うのではなく、可能であれば純粋なネイティブジュリアを使いたいと思っています。多分、それはまだJuilaで開発されている機能です...?
ありがとうございます!
したがって、おそらくHammingウィンドウを使用してJuliaにSTFTを実装する方法が不思議です。私はインターネット上で何かを見つけることができません。JuliaでSTFT(短時間フーリエ変換)を実装する最良の方法
どのような方法が最適ですか?私はPythonライブラリを使うのではなく、可能であれば純粋なネイティブジュリアを使いたいと思っています。多分、それはまだJuilaで開発されている機能です...?
ありがとうございます!
私はJuliaのネイティブのSTFT実装について認識していません。 Davidがコメントで述べたように、これを自分で実装する必要があります。これは非常に簡単です:
1)短時間区間
2にあなたの信号を分割)選択のあなたの窓を適用します(あなたのケースでは、ハミング)
3)ジュリアのfft
機能を使用してFFTを取ります。
上記のすべては、かなり標準的な数学的操作であり、オンラインで多くの参考文献を見つけることができます。以下のコードは、ウィンドウ生成を記述するときに0-indexing
を使用するのが好きなように、オンライン参照を使用する場合、Juliaの1-indexing
に注意してください。
Wb = Array(Float64, N)
## Hamming Window Generation
for n in 1:N
Wb[n] = 0.54-0.46cos(2pi*(n-1)/N)
end
また、DSP.jlのハミングウィンドウ関数を使用することもできます。
P.SジュリアをOS Xで実行している場合は、Julia interfaceをAppleのアクセラレータフレームワークにチェックしてください。これは、非常に速いハミングウィンドウの実装と、便利な畳み込み関数と要素乗算関数を提供します。
リンクされたWikipediaのページの最初の段落で言うことができると思います:時系列のセクション(ウィンドウ)のFFTを取る?これは何が欠けていますか? –