Spec-Zone.ru › Matplotlib 3.1

matplotlib.pyplot.specgram

matplotlib.pyplot.specgram(x, NFFT=None, Fs=None, Fc=None, detrend=None, window=None, noverlap=None, cmap=None, xextent=None, pad_to=None, sides=None, scale_by_freq=None, mode=None, scale=None, vmin=None, vmax=None, *, data=None, **kwargs) [source]

Построение спектрограммы.

Вычисление и построение спектрограммы данных в x. Данные разбиваются на сегменты длиной NFFT, и вычисляется спектр каждого сегмента. Окно window применяется к каждому сегменту, а величина перекрытия сегментов задаётся параметром noverlap. Спектрограмма строится как цветовая карта (с использованием imshow).

Параметры:
x : 1-D array or sequence

Массив или последовательность, содержащая данные.

Fs : scalar

Частота дискретизации (образцов в единицу времени). Используется для вычисления частот Фурье, freqs, в циклах за единицу времени. Значение по умолчанию — 2.

window : callable or ndarray

Функция или вектор длиной NFFT. Для создания векторов окна см. window_hanning, window_none, numpy.blackman, numpy.hamming, numpy.bartlett, scipy.signal, scipy.signal.get_window и т. д. По умолчанию — window_hanning. Если в качестве аргумента передаётся функция, она должна принимать сегмент данных в качестве аргумента и возвращать обработанный сегмент.

sides : {'default', 'onesided', 'twosided'}

Указывает, какие стороны спектра возвращать. Значение по умолчанию обеспечивает стандартное поведение: односторонний спектр для вещественных данных и двусторонний для комплексных данных. 'onesided' принудительно возвращает односторонний спектр, а 'twosided' — двусторонний.

pad_to : int

Количество точек, до которого дополняются данные сегмента при выполнении FFT. Это может отличаться от NFFT, которое определяет количество точек данных, используемых. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Соответствует параметру n в вызове fft(). Значение по умолчанию — None, которое устанавливает pad_to равным NFFT

NFFT : int

Количество точек данных, используемых в каждом блоке для FFT. Степень двойки наиболее эффективна. Значение по умолчанию — 256. Это НЕ следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неправильным. Используйте pad_to для этой цели.

detrend : {'none', 'mean', 'linear'} or callable, default 'none'

Функция, применяемая к каждому сегменту перед вычислением FFT, предназначенная для удаления среднего значения или линейной тенденции. В отличие от MATLAB, где параметр detrend — это вектор, в Matplotlib это функция. Модуль mlab определяет detrend_none, detrend_mean и detrend_linear, но вы также можете использовать пользовательскую функцию. Вы также можете использовать строку для выбора одной из функций: 'none' вызывает detrend_none. 'mean' вызывает detrend_mean. 'linear' вызывает detrend_linear.

scale_by_freq : bool, optional

Указывает, должны ли возвращаемые значения плотности масштабироваться с учётом частоты масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать возвращаемые частотные значения. По умолчанию — True для совместимости с MATLAB.

mode : {'default', 'psd', 'magnitude', 'angle', 'phase'}

Какой вид спектра использовать. По умолчанию — 'psd', который берёт спектральную плотность мощности. 'magnitude' возвращает спектр величины. 'angle' возвращает спектр фазы без развёртки. 'phase' возвращает спектр фазы с развёрткой.

noverlap : int

Количество перекрывающихся точек между блоками. Значение по умолчанию — 128.

scale : {'default', 'linear', 'dB'}

Масштабирование значений в spec. 'linear' — без масштабирования. 'dB' возвращает значения в шкале dB. При mode равном 'psd', это dB мощности (10 * log10). В противном случае это dB амплитуды (20 * log10). 'default' — 'dB', если mode — 'psd' или 'magnitude', и 'linear' в противном случае. Это должно быть 'linear', если mode — 'angle' или 'phase'.

Fc : int

Центральная частота x (по умолчанию 0), которая смещает границы x графика для отражения диапазона частот, используемого при получении сигнала, его фильтрации и дискретизации до базовой полосы.

cmap

Экземпляр matplotlib.colors.Colormap; если None, используется значение по умолчанию, определяемое rc

xextent : None or (xmin, xmax)

Диапазон изображения по оси x. По умолчанию xmin устанавливается на левую границу первого бина (столбец spectrum), а xmax — на правую границу последнего бина. Обратите внимание, что при noverlap>0 ширина бинов меньше, чем у сегментов.

**kwargs

Дополнительные параметры kwargs передаются в imshow, который создаёт изображение спектрограммы.

Возвращает:
spectrum : 2-D array

Столбцы — периодограммы последовательных сегментов.

freqs : 1-D array

Частоты, соответствующие строкам в spectrum.

t : 1-D array

Времена, соответствующие серединам сегментов (т. е. столбцам в spectrum).

im : instance of class AxesImage

Изображение, созданное imshow, содержащее спектрограмму

См. также

psd()
psd() отличается по умолчанию перекрытием; при возвращении среднего значения периодограмм сегмента; при отсутствии возвращаемых времен; и при генерации линейного графика вместо цветовой карты.
magnitude_spectrum()
Один спектр, аналогично одному сегменту, когда mode — 'magnitude'. Строит линию вместо цветовой карты.
angle_spectrum()
Один спектр, аналогично одному сегменту, когда mode — 'angle'. Строит линию вместо цветовой карты.
phase_spectrum()
Один спектр, аналогично одному сегменту, когда mode — 'phase'. Строит линию вместо цветовой карты.

Примечания

Параметры detrend и scale_by_freq применяются только когда mode установлен в 'psd'.

Примечание

В дополнение к вышеописанным аргументам, эта функция может принять ключевой аргумент data. Если такой аргумент data задан, следующие аргументы заменяются на data[<arg>]:

  • Все аргументы с такими именами: 'x'.

Объекты, переданные в качестве data, должны поддерживать доступ к элементам (data[<arg>]) и проверку на членство (<arg> in data).

Примеры использования matplotlib.pyplot.specgram

../../_images/sphx_glr_specgram_demo_thumb.png

Демонстрация спектрограммы

© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.specgram.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API