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
-
Нужно ли масштабировать полученные значения плотности с учётом масштабирующей частоты, что даёт плотность в единицах 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 графика, чтобы отразить используемый диапазон частот при получении сигнала, а затем фильтрации и сэмплировании до базовой полосы.
-
cmap
Colormap, по умолчанию:rcParams["image.cmap"](по умолчанию:'viridis') - xextentNone или (xmin, xmax)
-
Диапазон изображения по оси x. По умолчанию xmin устанавливается в левой границе первого бина (колонка spectrum), а xmax — в правой границе последнего бина. Обратите внимание, что для noverlap>0 ширина бинов меньше, чем у сегментов.
- dataиндексируемый объект, необязательно
-
Если задано, следующие параметры также принимают строку
s, которая интерпретируется какdata[s](если это не вызывает исключения):x
- **kwargs
-
Дополнительные ключевые аргументы передаются в
imshow, что создаёт изображение specgram. Ключевой аргумент origin не поддерживается.
- Возвращаемые значения:
-
- spectrum2D массив
-
Столбцы — периодограммы последовательных сегментов.
- freqs1D массив
-
Частоты, соответствующие строкам в spectrum.
- t1D массив
-
Времена, соответствующие серединам сегментов (т.е. столбцам в spectrum).
-
im
AxesImage -
Изображение, созданное imshow, содержащее спектрограмму.
См. также
psd-
Отличается по умолчанию перекрытием; возвращает среднее значение периодограмм сегментов; не возвращает времена; и генерирует график линии вместо цветовой карты.
magnitude_spectrum-
Один спектр, подобно одному сегменту, когда mode 'magnitude'. Отображает линию вместо цветовой карты.
angle_spectrum-
Один спектр, подобно одному сегменту, когда mode 'angle'. Отображает линию вместо цветовой карты.
phase_spectrum-
Один спектр, подобно одному сегменту, когда mode 'phase'. Отображает линию вместо цветовой карты.
Примечания
Параметры detrend и scale_by_freq применяются только тогда, когда mode установлен в 'psd'.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/_as_gen/matplotlib.pyplot.specgram.html