0

次の信号があります。

ここに画像の説明を入力

スペクトログラム アルゴリズムを計算しようとしていますが、正しくやっているとは思えません..

私は以下を計算しました:

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()
4

0 に答える 0