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]
-
Постройте спектrogram.
Вычислите и постройте спектrogram данных в x. Данные разбиваются на сегменты длиной NFFT, и вычисляется спектр каждого сегмента. К каждому сегменту применяется функция окна window, а количество перекрытия каждого сегмента задаётся параметром noverlap. Спектrogram отображается как цветовая карта (с помощью 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целое число, необязательно
-
Количество точек, до которых дополняется сегмент данных при выполнении FFT. Это может отличаться от NFFT, которое определяет количество точек данных, используемых. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). По умолчанию значение None, что устанавливает pad_to равным NFFT.
- NFFTцелое число, по умолчанию: 256
-
Количество точек данных, используемых в каждом блоке для FFT. Мощность 2 наиболее эффективна. Это НЕ должно использоваться для получения нулевого заполнения, или масштабирование результата будет неправильным; для этого используйте pad_to.
- detrend{'none', 'mean', 'linear'} или вызываемая функция, по умолчанию: 'none'
-
Функция, применяемая к каждому сегменту перед fft-преобразованием, предназначенная для удаления среднего значения или линейной тенденции. В отличие от 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' возвращает значения в шкале 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, содержащее спектrogram.
См. также
psd-
Отличается по умолчанию перекрытием; возвращает среднее значение периодограмм сегмента; не возвращает времена; и генерирует линейный график вместо цветовой карты.
magnitude_spectrum-
Один спектр, аналогичный одному сегменту, когда mode равен 'magnitude'. Строит линию вместо цветовой карты.
angle_spectrum-
Один спектр, аналогичный одному сегменту, когда mode равен 'angle'. Строит линию вместо цветовой карты.
phase_spectrum-
Один спектр, аналогичный одному сегменту, когда mode равен 'phase'. Строит линию вместо цветовой карты.
Примечания
Параметры detrend и scale_by_freq применяются только тогда, когда mode установлен в 'psd'.
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/_as_gen/matplotlib.pyplot.specgram.html