Spec-Zone.ru › Matplotlib 3.4

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Одномерный массив или последовательность

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

Fsfloat, по умолчанию: 2

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

windowвызываемая функция или массив, по умолчанию: window_hanning

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

sides{'default', 'onesided', 'twosided'}, необязательно

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

pad_toint, необязательно

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

NFFTint, по умолчанию: 256

Количество точек данных, используемых в каждом блоке для БПФ. Степень двойки является наиболее эффективной. Это не следует использовать для получения нулевого заполнения, иначе масштабирование результата будет некорректным; для этого используйте pad_to.

detrend{'none', 'mean', 'linear'} или вызываемая функция, по умолчанию: 'none'

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

scale_by_freqbool, по умолчанию: True

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

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

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

noverlapint, по умолчанию: 128

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

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

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

Fcint, по умолчанию: 0

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

cmapColormap, по умолчанию: rcParams["image.cmap"] (по умолчанию: 'viridis')
xextentNone или (xmin, xmax)

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

**kwargs

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

Возвращаемые значения:
spectrum2D массив

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

freqs1D массив

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

t1D массив

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

imAxesImage

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

См. также

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

Примечания

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

Примечание

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

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

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

Примеры графиков в Matplotlib

Примеры графиков в Matplotlib

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

Spec-Zone.ru

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