2

Matlabsの最近のバージョンでは、specgram関数はに置き換えられてspectrogramおり、ドキュメントには次のように記載されています。

ノート。削除されたスペックグラム関数で同じ結果を得るには、長さ256の「ハン」ウィンドウを指定します。

残念ながら、それは私にはうまくいかないようです。私が使用した場合spectrogram(signal,hann(256))、結果はとは異なりますがspecgram(signal)、どちらも非常に似ています。まったく同じ出力を取得する方法はありますか?

4

3 に答える 3

4

さて、私は解決策に出くわしました:

specgram(singal) = spectrogram(signal, hanning(256))

hannhanningは Matlab では同じものではないためです。

サポートしてくれてありがとう。

于 2010-07-27T04:12:52.927 に答える
3

関数ごとに計算方法が少し異なると思います。これは私が入手できる最高のものです:

sig = rand(1280,1);
Fs = 2;
nfft = 256;
numoverlap = 128;
window = hanning(nfft);

%# specgram
subplot(121), specgram(sig,nfft,Fs,window,numoverlap)

%# spectrogram: make it look like specgram
[S,F,T,P] = spectrogram(sig,window,numoverlap,nfft,Fs);
subplot(122), imagesc(T, F, 20*log10(P))
axis xy, colormap(jet), ylabel('Frequency')

スペクトログラム

于 2010-07-20T05:29:26.430 に答える
1

現在、試してみる Matlab はありませんが、hann(256,'periodic')探しているものかもしれません。

于 2010-07-20T17:36:17.137 に答える