スペクトログラムは,周波数と時間を,縦横の軸とするグラフ.強度を色や明るさで表すことが多い.
【文献】
Cokelaer et al, (2017), 'Spectrum': Spectral Analysis in Python, Journal of Open Source Software, 2(18), 348, doi:10.21105/joss.00348
【関連する外部ページ】
Gitは,バージョン管理システム.ソースコードの管理や複数人での共同に役立つ.
【サイト内の関連ページ】
Windows での Git のインストール: 別ページ »で説明している.
【関連する外部ページ】
Git の公式ページ: https://git-scm.com/
【サイト内の関連ページ】
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
.wav 形式のファイルからスペクトログラムを表示. スペクトログラムは,周波数と時間を,縦横の軸とするグラフ.強度を色や明るさで表すことが多い.
次で公開されているプログラムを使用
https://github.com/cokelaer/spectrum/blob/master/examples/plot_spectrogram.py
コマンドプロンプトを管理者として実行: 別ページ »で説明
cd %HOMEPATH% rmdir /s /q spectrum git clone --recursive https://github.com/cokelaer/spectrum
pip install -U numpy matplotlib seaborn
次のページで公開されているプログラムを使用している.
https://github.com/cokelaer/spectrum/blob/master/examples/plot_spectrogram.py
次のコマンドを実行
cd %HOMEPATH% cd spectrum jupyter qtconsole
Python プログラムを実行する
from spectrum import Spectrogram, readwav data, samplerate = readwav("src/spectrum/data/dolphins.wav") p = Spectrogram(data, ws=128, W=4096, sampling=samplerate) p.periodogram() p.plot()
次のページで公開されているプログラムを使用している.
https://github.com/cokelaer/spectrum/blob/master/examples/plot_yule.py
次のコマンドを実行
cd %HOMEPATH% cd spectrum jupyter qtconsole
Python プログラムを実行する
from spectrum import pyule from scipy.signal import lfilter from pylab import plot, mean, log10, randn from numpy import array allpsds = [] # ARフィルタ係数のリスト a = array([1,-2.2137,2.9403,-2.1697,0.9606]) for this in range(1000): # ノイズを含むデータ x = lfilter([1], a, randn(1, 1024)) p = pyule(x[0],4, scale_by_freq=False, NFFT=256) p.plot(color='gray', alpha=0.1) allpsds.append(p.psd) plot(p.frequencies(), 10*log10(mean(allpsds, axis=0)), "red")