-1

この質問にはすでに答えがあります。

前書き

私は作成したスペクトログラムの中で振幅のピークを見つけようとしています。それは時間と振幅に対する周波数を3番目の軸としてプロットしています。

私は見て、を使用してソリューションをコーディングしようとしましたscipy.signal.find_peaks_cwtしかし、公式のリファレンスガイドでは、widthsパラメータ

質問:

を使用してピークを見つけるときscipy.signal.find_peaks_cwtそれは周波数 - 時間座標を返すのだろうか?そうでない場合は、極大値の座標を返すために使用するライブラリまたはメソッドが他にありませんか。

は何ですかwidths内のパラメータscipy.signal.find_peaks_cwt

としてscipy.signal.find_peaks_cwt局所極大値を見つけるためになぜスペクトログラムをプロットする必要があるのですか。

スペクトログラムを作成するために使用してきたコードは次のとおりです。

    import numpy as np      
    import matplotlib.pyplot as plt 
    import scipy.io.wavfile     
    from scipy import signal

    def create_spectrogram(audio):
        rate, data = scipy.io.wavfile.read(audio)        
        data_1D = data.flatten()
        plt.specgram(data_1D, NFFT = 64, Fs = 64, noverlap=32)  
        plt.savefig("melody")  
        plt.show()      


    if __name__ == '__main__':
        audio = "melody.WAV"        
        create_spectrogram(audio)       

これは、出力されたスペクトログラムです。

Here is the outputted Spectrogram:

リンク集scipy.signal.find_peaks_cwt参照ガイド:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.find_peaks_cwt.html


  • 作成方法をお読みください最小、完全、および検証可能な例編集して、不足している情報をあなたの投稿に追加してください:)まだ読んでいない場合依頼方法それでも私はそうすることをお勧めします:) SOの人々は投稿がこれらのガイドに従うときより質問に答える可能性が高いので私は強く私がリンクした2つのガイドに従うことを勧めます。特に欠けているのは - これまでに何を試したか。どのようなエラー/問題に直面しますか?これまでに試した内容を示すコードスニペットがありますか。 - Tobias Theel
  • find_peaks_cwt1次元配列用です。あなたの2-Dスペクトログラムで局所的なピークを見つけたいならば、これを読んでください:stackoverflow.com/questions/3684484/… - Gerges Dib

1 답변


0

データがコードにどの程度正確に格納されているかについて、もう少し詳しく教えてください。それはでたらめな配列、scipy.signal.spectrogram、あるいは単純なPythonリストなのでしょうか。コードの断片は、良い解決策を見つける手助けをするのに非常に役立ちます。

今のところ私が提案するであろう唯一の "簡単な"方法は見てみることですnumpy.amax()軸パラメータに与えられた値を賢く選ぶと、あなたが探している最大値を得るでしょう。

リンクされた質問


最近の質問