Spec-Zone.ru › Matplotlib

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)[источник]

Построить спектрограмму.

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

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

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

Fsfloat, default: 2

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

windowcallable or ndarray, default: window_hanning

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

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

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

pad_toint, optional

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

NFFTint, default: 256

Количество точек данных, используемых в каждом блоке для FFT. Наиболее эффективно использовать степень числа 2. Этот параметр НЕ следует использовать для дополнения нулями, иначе масштабирование результата будет неверным; для этого используйте 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_freqbool, default: True

Следует ли масштабировать результирующие значения спектральной плотности по частоте масштабирования, чтобы получить плотность в единицах 1/Hz. Это позволяет интегрировать значения по возвращённым частотам. Для совместимости с MATLAB по умолчанию установлено значение True.

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

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

noverlapint, default: 128

Количество точек перекрытия между блоками.

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

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

Fcint, default: 0

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

cmapColormap, default: rcParams["image.cmap"] (default: 'viridis')
xextentNone or (xmin, xmax)

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

dataindexable object, optional

Если параметр задан, следующие параметры также принимают строку s, которая интерпретируется как data[s], если s является ключом в data:

x

vmin, vmaxfloat, optional

vmin и vmax задают диапазон данных, охватываемый цветовой картой. По умолчанию цветовая карта охватывает весь диапазон значений данных.

**kwargs

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

Возвращает:
spectrum2D array

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

freqs1-D array

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

t1-D array

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

imAxesImage

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

См. также

psd

Отличается значением перекрытия по умолчанию; возвращает среднее значение периодограмм сегментов; не возвращает времена; строит линейный график вместо цветовой карты.

magnitude_spectrum

Один спектр, аналогичный спектру одного сегмента при mode равном 'magnitude'. Строит линию вместо цветовой карты.

angle_spectrum

Один спектр, аналогичный спектру одного сегмента при mode равном 'angle'. Строит линию вместо цветовой карты.

phase_spectrum

Один спектр, аналогичный спектру одного сегмента при mode равном 'phase'. Строит линию вместо цветовой карты.

Примечания

Примечание

Это обёртка pyplot для axes.Axes.specgram.

Параметры detrend и scale_by_freq применяются только при значении mode 'psd'.

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

Спектрограмма

Спектрограмма

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

Spec-Zone.ru

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