Spec-Zone.ru › Matplotlib 3.1

matplotlib.axes.Axes.specgram

Axes.specgram(self, 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 : 1-D array or sequence

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

Fs : scalar

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

window : callable or ndarray

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

sides : {'default', 'onesided', 'twosided'}

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

pad_to : int

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

NFFT : int

Количество точек данных, используемых в каждом блоке для FFT. Мощность 2 наиболее эффективна. Значение по умолчанию равно 256. Это НЕ следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неправильным. Для этого используйте pad_to.

detrend : {'none', 'mean', 'linear'} or callable, default 'none'

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

scale_by_freq : bool, optional

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

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

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

noverlap : int

Количество перекрывающихся точек между блоками. Значение по умолчанию равно 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 : int

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

cmap

Экземпляр matplotlib.colors.Colormap; если None, используется значение по умолчанию, определённое rc

xextent : None or (xmin, xmax)

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

**kwargs

Дополнительные kwargs передаются в imshow для создания изображения спектрограммы.

Возвращаемые значения:
spectrum : 2-D array

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

freqs : 1-D array

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

t : 1-D array

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

im : instance of class AxesImage

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

См. также

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

Примечания

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

Примечание

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

  • Все аргументы с такими именами: 'x'.

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

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

../../_images/sphx_glr_specgram_demo_thumb.png

Демонстрация спектрограммы

© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.specgram.html

Spec-Zone.ru

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