
86
4 章 周波数と高速フーリエ変換
from scipy import signal
freqs, times, Sx = signal.spectrogram(audio, fs=rate, window='hanning',
nperseg=1024, noverlap=M - 100,
detrend=False, scaling='spectrum')
f, ax = plt.subplots(figsize=(4.8, 2.4))
ax.pcolormesh(times, freqs / 1000, 10 * np.log10(Sx), cmap='viridis')
ax.set_ylabel('Frequency [kHz]')
ax.set_xlabel('Time [s]');
■
我々が手作業で作成したスペクトログラムと
SciPy
の組み込み関数のスペクトログラムの唯一
の違いは、
SciPy
がスペクトルの大きさの
2
乗(これにより電圧の測定値がエネルギーの測定値に
時間[秒]
kHz
図
4-7
鳥のさえずりのスペクトログラム
時間[秒]
kHz
図
4-8
SciPy
の組み込み関数による鳥のさえずりのスペクトログラム