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 : 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 -
Количество точек, до которого дополняются нулями сегмент данных при выполнении БПФ. Это может отличаться от NFFT, которое задаёт количество точек данных. Хотя это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешаемыми пиками), оно может дать больше точек на графике, что позволит получить больше деталей. Соответствует параметру n в вызове fft(). По умолчанию None, что устанавливает pad_to равным NFFT
-
NFFT : int -
Количество точек данных, используемых в каждом блоке для БПФ. Степень двойки обеспечивает наибольшую эффективность. Значение по умолчанию — 256. Не следует использовать для получения нулевого заполнения, иначе масштабирование результата будет неверным. Для этого используйте pad_to.
-
detrend : {'none', 'mean', 'linear'} or callable, default 'none' -
Функция, применяемая к каждому сегменту перед БПФ, предназначенная для удаления среднего значения или линейной тенденции. В отличие от 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.
-
noverlap : int -
Количество перекрывающихся точек между сегментами. По умолчанию 0 (без перекрытия).
-
Fc : int -
Центральная частота x (по умолчанию 0), которая смещает пределы оси x графика, чтобы отразить диапазон частот, используемый при получении сигнала, а затем его фильтрации и сэмплировании до базовой полосы.
-
return_line : bool -
Включать ли объект линии, нарисованной в возвращаемых значениях. По умолчанию False.
Возвращаемые значения: -
Pxx : 1-D array -
Значения спектральной мощности
P_{xx}до масштабирования (вещественные). -
freqs : 1-D array -
Частоты, соответствующие элементам в Pxx.
-
line : a Line2D instance -
Линия, созданная этой функцией. Возвращается только если return_line True.
-
Дополнительные параметры: - **kwargs
-
Ключевые аргументы управляют свойствами
Line2D:Свойство Описание agg_filterфункция фильтра, которая принимает массив чисел с плавающей точкой (m, n, 3) и значение dpi, а возвращает массив чисел с плавающей точкой (m, n, 3) alphaвещественное число animatedлогическое значение antialiasedили aaлогическое значение clip_boxBboxclip_onлогическое значение clip_path[( Path,Transform) |Patch| None]colorили cцвет containsвызываемая функция dash_capstyle{'butt', 'round', 'projecting'} dash_joinstyle{'miter', 'round', 'bevel'} dashesпоследовательность чисел с плавающей точкой (чернила/пробелы в пунктах) или (None, None) drawstyleили ds{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, по умолчанию: 'default' figureFigurefillstyle{'full', 'left', 'right', 'bottom', 'top', 'none'} gidстрока in_layoutлогическое значение labelобъект linestyleили ls{'-', '--', '-.', ':', '', (смещение, последовательность вкл/выкл), ...} linewidthили lwвещественное число markerстиль маркера markeredgecolorили mecцвет markeredgewidthили mewвещественное число markerfacecolorили mfcцвет markerfacecoloraltили mfcaltцвет markersizeили msвещественное число markeveryNone или целое число или (целое число, целое число) или срез или Список[int] или вещественное число или (вещественное число, вещественное число) path_effectsAbstractPathEffectpickerвещественное число или вызываемая функция [[Художник, Событие], Кортеж[логическое значение, словарь]] pickradiusвещественное число rasterizedлогическое значение или None sketch_params(масштаб: вещественное число, длина: вещественное число, случайность: вещественное число) snapлогическое значение или None solid_capstyle{'butt', 'round', 'projecting'} solid_joinstyle{'miter', 'round', 'bevel'} transformmatplotlib.transforms.Transformurlстрока visibleлогическое значение xdataодномерный массив ydataодномерный массив zorderвещественное число
См. также
-
specgram() -
specgram()отличается по умолчанию перекрытием; не возвращает среднее значение периодограмм сегмента; возвращает время сегментов; и строит цветовой карту вместо линии. -
magnitude_spectrum() -
magnitude_spectrum()строит спектр амплитуд. -
csd() -
csd()строит спектральную плотность между двумя сигналами.
Примечания
Для построения графика мощность отображается как \(10\log_{10}(P_{xx})\) для децибелов, хотя Pxx само по себе возвращается.
Ссылки
Bendat & Piersol -- Random Data: Analysis and Measurement Procedures, John Wiley & Sons (1986)
Примечание
В дополнение к вышеописанным аргументам, эта функция может принять ключевой аргумент data. Если такой аргумент data задан, следующие аргументы заменяются на data[<arg>]:
- Все аргументы с следующими именами: 'x'.
Объекты, переданные как data, должны поддерживать доступ по элементам (
data[<arg>]) и проверку на членство (<arg> in data).-
Примеры использования matplotlib.pyplot.psd
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.psd.html