matplotlib.pyplot.specgram #

matplotlib.pyplot. specgram ( x , NFFT =なし, Fs =なし, Fc =なし, detrend =なし, window =なし, noverlap =なし, cmap =なし, xextent =なし, pad_to =なし, sides =なし, scale_by_freq =なし, mode =なしスケール=なしvmin =なしvmax =なし*データ=なし** kwargs ) [source] #

スペクトログラムをプロットします。

xのデータのスペクトログラムを計算してプロットします。データはNFFT長のセグメントに分割され 、各セクションのスペクトルが計算されます。ウィンドウ関数windowが各セグメントに適用され、各セグメントのオーバーラップ量がnoverlapで指定されます。スペクトログラムは、(imshow を使用して) カラーマップとしてプロットされます。

パラメータ:
x 1 次元配列またはシーケンス

データを含む配列またはシーケンス。

Fs float、デフォルト: 2

サンプリング頻度 (単位時間あたりのサンプル数)。これは、時間単位あたりのサイクルでフーリエ周波数freqsを計算するために使用されます。

ウィンドウ呼び出し可能または ndarray、デフォルト:window_hanning

長さNFFTの関数またはベクトル。ウィンドウ ベクトルを作成するには、 、 、 、 、 、 などを参照 window_hanningwindow_nonenumpy.blackmanくださいnumpy.hammingnumpy.bartlett関数scipy.signalscipy.signal.get_window引数として渡される場合、データ セグメントを引数として取り、セグメントのウィンドウ バージョンを返す必要があります。

側面{'default', 'onesided', 'twosided'}, オプション

スペクトルのどちら側を返すか。'default' は、実数データの場合は片面で、複素数データの場合は両面です。'onesided' は片側スペクトルを強制的に返しますが、'twosided' は両側を強制します。

pad_to int、オプション

FFT の実行時にデータ セグメントがパディングされるポイントの数。これは、使用するデータ点の数を指定するNFFTとは異なる場合があります。スペクトルの実際の解像度 (分解可能なピーク間の最小距離) は増加しませんが、これによりプロット内のポイントが増え、より詳細な情報を得ることができます。これは、 への呼び出しのnパラメータに対応しますfft。デフォルトは None で、pad_to を NFFT に設定ます

NFFT int、デフォルト: 256

FFT の各ブロックで使用されるデータ ポイントの数。累乗 2 が最も効率的です。これは、ゼロ パディングを取得するために使用しないでください。そうしないと、結果のスケーリングが正しくなくなります。代わりにこれにはpad_toを使用してください。

detrend {'none', 'mean', 'linear'} または callable、デフォルト: 'none'

fft する前に各セグメントに適用される関数で、平均または線形トレンドを削除するように設計されています。detrendパラメーターがベクトルである MATLAB とは異なり、Matplotlib では関数です。mlab モジュールはdetrend_nonedetrend_mean、および を定義しますdetrend_linearが、カスタム関数も使用できます。文字列を使用して関数の 1 つを選択することもできます: 'none' 呼び出しdetrend_none。「平均」呼び出し detrend_mean. 「線形」呼び出しdetrend_linear.

scale_by_freq bool、デフォルト: True

結果の密度値をスケーリング周波数でスケーリングする必要があるかどうか。これにより、密度が 1/Hz の単位で得られます。これにより、返された周波数値の統合が可能になります。MATLAB との互換性のため、既定値は True です。

モード{'default', 'psd', 'magnitude', 'angle', 'phase'}

使用するスペクトルの種類。デフォルトは 'psd' で、パワー スペクトル密度を取ります。'magnitude' は、マグニチュード スペクトルを返します。'angle' は、ラップを解除せずに位相スペクトルを返します。'phase' は、ラップを解除した位相スペクトルを返します。

オーバーラップ整数、デフォルト: 128

ブロック間のオーバーラップ ポイントの数。

スケール{'default', 'linear', 'dB'}

specの値のスケーリング。「線形」はスケーリングなしです。'dB' は、値を dB スケールで返します。モードが 'psd' の場合、これは dB 電力 (10 * log10) です。それ以外の場合、これは dB 振幅 (20 * log10) です。モードが 'psd' または 'magnitude' の場合、'default' は 'dB'であり、それ以外の場合は 'linear' です。モードが「角度」または「位相」の場合、これは「線形」でなければなりません。

Fc int、デフォルト: 0

xの中心周波数。プロットの x 範囲をオフセットして、信号が取得され、フィルター処理されてベースバンドにダウンサンプリングされるときに使用される周波数範囲を反映します。

cmap Colormap、デフォルト: rcParams["image.cmap"](デフォルト: 'viridis')
xextent Noneまたは (xmin, xmax)

X 軸に沿った画像範囲。デフォルトでは、 xminが最初のビン (スペクトル列)の左側の境界に設定され、 xmaxが最後のビンの右側の境界に設定されます。noverlap>0の場合、ビンの幅はセグメントの幅よりも小さいことに注意してください。

データのインデックス可能なオブジェクト、オプション

指定された場合、次のパラメーターは string も受け入れますs。これは、次のように解釈されますdata[s](例外が発生しない限り)。

バツ

**kwargs

追加のキーワード引数が渡されimshow 、スペックグラム イメージが作成されます。origin キーワード引数はサポートされていません。

戻り値:
スペクトル2D 配列

列は、連続するセグメントのピリオドグラムです。

freqs 1 次元配列

Spectrum の行に対応する周波数

t 1 次元配列

セグメントの中点 (つまり、 Spectrum の列) に対応する時間

わたしはAxesImage

スペクトログラムを含む imshow によって作成されたイメージ。

こちらもご覧ください

psd

デフォルトのオーバーラップが異なります。セグメントのピリオドグラムの平均を返す際。戻ってこない時。カラーマップの代わりにライン プロットを生成します。

magnitude_spectrum

モードが「マグニチュード」の場合に単一のセグメントを持つのと同様の単一のスペクトル。カラーマップの代わりに線をプロットします。

angle_spectrum

モードが「角度」の場合に単一のセグメントを持つのと同様の単一のスペクトル。カラーマップの代わりに線をプロットします。

phase_spectrum

モードが「位相」の場合に単一のセグメントを持つのと同様の単一のスペクトル。カラーマップの代わりに線をプロットします。

ノート

パラメータdetrendscale_by_freqは、モード が「psd」に設定されている場合にのみ適用されます。