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
-
Количество точек данных, используемых в каждом блоке для БПФ. Степень двойки наиболее эффективна. Это не должно использоваться для получения нулевого заполнения, иначе масштабирование результата будет неправильным; используйте 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_freqбулево значение, по умолчанию: True
-
Являются ли возвращаемые значения плотности масштабированными с учётом частоты масштабирования, что обеспечивает плотность в единицах 1/Гц. Это позволяет интегрировать по возвращаемым частотным значениям. По умолчанию True для совместимости с MATLAB.
- mode{'default', 'psd', 'magnitude', 'angle', 'phase'}
-
Какой тип спектра использовать. По умолчанию 'psd', который возвращает плотность спектральной мощности. 'magnitude' возвращает спектр по величине. 'angle' возвращает спектр фаз без разворачивания. 'phase' возвращает спектр фаз с разворачиванием.
- noverlapцелое число, по умолчанию: 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целое число, по умолчанию: 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'. Строит линию вместо цветовой карты.
Примечания
Параметры 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/3.7.5/api/_as_gen/matplotlib.pyplot.specgram.html