前提・実現したいこと
最近pythonを始めた新参者です。
scipy.signal内に搭載されているspectrogram()関数を使ってスペクトログラムを生成した後、ピーク値を算出したいです。ゴールはその後matplotlib.pyplotでピーク値をマークすることなのですが、まずピーク値を検出するところで困っています…
やはり、オーバーラップやハニング窓などを使わなければいけないのでしょうか。
該当のソースコード
python
1from numpy import * 2from matplotlib.pyplot import * 3from scipy.signal import * 4from scipy import fftpack 5 6data=load("a.npy") 7 8f,t,s = spectrogram(data, fs=fs) 9 10imshow(log10(s), extent=[t.min(), t.max(), f.max(), f.min()],cmap='jet') 11gca().set_aspect("auto") 12 13gca().invert_yaxis() 14 15f1=np.array(f) 16maximum=argrelmax(f1,order=6) 17scatter(t[maximum],s[maximum], label='peaks', color='red')
試したこと
ピーク値を出す方法としてネットで出てきたangrelmax()を使っています。もし、その他の方法でピーク値を求めるプログラムなどあれば教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。