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Одномерный массив или последовательность
-
Массив или последовательность, содержащая данные.
- Fsчисло с плавающей точкой, по умолчанию: 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_toцелое число, необязательно
-
Количество точек, до которых дополняется сегмент данных при выполнении БПФ. Это может отличаться от NFFT, который определяет количество точек данных. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове
fft. По умолчанию значение None, которое устанавливает pad_to равным NFFT. - NFFTцелое число, по умолчанию: 256
-
Количество точек данных, используемых в каждом блоке для БПФ. Мощность 2 наиболее эффективна. Это НЕ следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неправильным; для этого используйте 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' возвращает спектр фазы с развёртыванием.
- noverlapцелое число, по умолчанию: 128
-
Количество перекрывающихся точек между блоками.
- scale{'default', 'linear', 'dB'}
-
Масштабирование значений в spec. 'linear' — без масштабирования. 'dB' возвращает значения в шкале дБ. Когда mode равен 'psd', это мощность дБ (10 * log10). В противном случае это амплитуда дБ (20 * log10). 'default' — 'dB', если mode равен 'psd' или 'magnitude', и 'linear' в противном случае. Должно быть 'linear', если mode равен 'angle' или 'phase'.
- Fcцелое число, по умолчанию: 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 не поддерживается.
- Возвращаемые значения:
-
- spectrumдвумерный массив
-
Столбцы — это периодограммы последовательных сегментов.
- freqsодномерный массив
-
Частоты, соответствующие строкам в spectrum.
- tодномерный массив
-
Время, соответствующее серединам сегментов (т. е. столбцам в spectrum).
-
im
AxesImage -
Изображение, созданное 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–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.specgram.html