matplotlib.pyplot.psd
-
matplotlib.pyplot.psd(x, NFFT=None, Fs=None, Fc=None, detrend=None, window=None, noverlap=None, pad_to=None, sides=None, scale_by_freq=None, return_line=None, *, data=None, **kwargs)[source] -
Построение плотности спектральной мощности.
Плотность спектральной мощности \(P_{xx}\) методом усреднённой периодограммы Уэлча. Вектор x делится на сегменты длиной NFFT. Каждый сегмент обрабатывается с помощью функции detrend и окна window. noverlap определяет длину перекрытия между сегментами. Значение \(|\mathrm{fft}(i)|^2\) для каждого сегмента \(i\) усредняется для вычисления \(P_{xx}\) с учётом потери мощности из-за применения окна.
Если len(x) < NFFT, данные будут дополнены нулями до NFFT.
Параметры: - 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
-
Определяет, следует ли масштабировать полученные значения плотности с учётом частоты, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать по возвращаемым частотным значениям. По умолчанию True для совместимости с MATLAB.
- noverlapint, по умолчанию: 0 (без перекрытия)
-
Количество перекрывающихся точек между сегментами.
- Fcint, по умолчанию: 0
-
Центральная частота x, которая смещает диапазон по оси x графика, чтобы отразить диапазон частот, используемый при получении сигнала, его последующей фильтрации и сэмплировании с понижением частоты до базовой полосы.
- return_linebool, по умолчанию: False
-
Определяет, следует ли включать объект линии, нарисованный этой функцией, в возвращаемые значения.
Возвращаемые значения: - PxxОдномерный массив
-
Значения спектра мощности \(P_{xx}\) до масштабирования (вещественные значения).
- freqsОдномерный массив
-
Частоты, соответствующие элементам в Pxx.
-
line
Line2D -
Линия, созданная этой функцией. Возвращается только если return_line True.
Другие параметры: - **kwargs
-
Ключевые аргументы управляют свойствами
Line2D:Свойство Описание agg_filterфункция фильтра, которая принимает массив float (m, n, 3) и значение dpi, и возвращает массив (m, n, 3) alphaскаляр или None animatedbool antialiasedили aabool clip_boxBboxclip_onbool clip_pathОбъект Patch или (Path, Transform) или None colorили cцвет containsнеизвестно dash_capstyleCapStyleили {'butt', 'projecting', 'round'}dash_joinstyleJoinStyleили {'miter', 'round', 'bevel'}dashesпоследовательность чисел с плавающей точкой (чернила в/выкл в точках) или (None, None) data(2, N) массив или два одномерных массива drawstyleили ds{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, по умолчанию: 'default' figureFigurefillstyle{'full', 'left', 'right', 'bottom', 'top', 'none'} gidстрока in_layoutbool labelобъект linestyleили ls{'-', '--', '-.', ':', '', (смещение, последовательность вкл/выкл), ...} linewidthили lwвещественное число markerстрока стиля маркера, PathилиMarkerStylemarkeredgecolorили mecцвет markeredgewidthили mewвещественное число markerfacecolorили mfcцвет markerfacecoloraltили mfcaltцвет markersizeили msвещественное число markeveryNone или целое число или (целое число, целое число) или срез или список целых чисел или вещественное число или (вещественное число, вещественное число) или список булевых значений path_effectsAbstractPathEffectpickerвещественное число или вызываемая функция [[Artist, Event], кортеж[bool, dict]] pickradiusвещественное число rasterizedbool sketch_params(масштаб: вещественное число, длина: вещественное число, случайность: вещественное число) snapbool или None solid_capstyleCapStyleили {'butt', 'projecting', 'round'}solid_joinstyleJoinStyleили {'miter', 'round', 'bevel'}transformmatplotlib.transforms.Transformurlстрока visiblebool xdataодномерный массив ydataодномерный массив zorderвещественное число
См. также
specgram- Отличается по умолчанию от перекрытия; не возвращает среднее значение периодограмм отрезков; возвращает времена отрезков; и строит цветовое отображение вместо линии.
magnitude_spectrum- Строит спектр величины.
csd- Строит спектральную плотность между двумя сигналами.
Примечания
Для построения графиков мощность выводится как \(10\log_{10}(P_{xx})\) для децибелов, хотя Pxx само возвращается.
Ссылки
Bendat & Piersol -- Случайные данные: процедуры анализа и измерения, John Wiley & Sons (1986)
Примечание
В дополнение к вышеописанным аргументам эта функция может принять аргумент data. Если такой аргумент data задан, следующие аргументы также могут быть строками
s, которые интерпретируются какdata[s](если это не вызывает исключение): x.Объекты, переданные как data, должны поддерживать доступ к элементам (
data[s]) и проверку на членство (s in data).
Примеры использования matplotlib.pyplot.psd
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.4.3/api/_as_gen/matplotlib.pyplot.psd.html