次の信号があります。
スペクトログラム アルゴリズムを計算しようとしていますが、正しくやっているとは思えません..
私は以下を計算しました:
1) STFT (サイズ 256、オーバーラップ 128) 2) '10 * log10(sqrt(re * re + im + im) を使用してログを計算
これは私が得る結果です:
しかしpylab
、Pythonで使用する場合(同じ信号に対して):
x = pl.specgram(signal)
次の結果が得られます。
を使用するmatplotlib
と、次のようになります。
明らかに、これらは非常に異なる結果です.なぜこれらを取得しているのかわかりません.信号処理とスペクトログラムは初めてです。誰かが助けてくれることを願っています
編集:
これがPythonコードです。
def wavToSpec(wavefile,log=False,norm=False):
wavArr,wavParams = wavToArr(wavefile)
print wavParams
return mlab.specgram(wavArr,
NFFT=256,Fs=wavParams[2],window=mlab.window_hanning,noverlap=128)
p, freqs, bins = wavToSpec("test.wav")
pylab.plot(p);
pylab.show()