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.
- Параметры:
-
- x1-D массив или последовательность
-
Массив или последовательность, содержащая данные
- 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_toint, необязательно
-
Количество точек, до которого дополняются данные сегмента при выполнении FFT. Может отличаться от NFFT, которое определяет количество точек данных. Не используется для получения нулевого заполнения, так как это повлияет на масштабирование результата; используйте pad_to для этого вместо этого. Соответствует параметру n в вызове
fft. По умолчанию None, что устанавливает pad_to равным NFFT. - NFFTint, по умолчанию: 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/Гц. Это позволяет интегрировать значения частоты.
- noverlapint, по умолчанию: 0 (без перекрытия)
-
Количество перекрывающихся точек между сегментами.
- Fcint, по умолчанию: 0
-
Центральная частота x, которая смещает области x графика, чтобы отразить диапазон частот, используемых при получении сигнала, а затем фильтрации и понижения дискретизации до базовой полосы.
- return_linebool, по умолчанию: False
-
Включить ли объект линии, нарисованный в возвращаемых значениях.
- Возвращает:
-
- Pxx1-D массив
-
Значения спектра мощности \(P_{xx}\) до масштабирования (вещественные значения).
- freqs1-D массив
-
Частоты, соответствующие элементам в Pxx.
-
line
Line2D -
Линия, созданная этой функцией. Возвращается только если return_line True.
- Другие параметры:
-
- dataиндексируемый объект, необязательно
-
Если задано, следующие параметры также принимают строку
s, которая интерпретируется какdata[s](если это не вызывает исключение):x
- **kwargs
-
Ключевые аргументы управляют свойствами
Line2D:
Свойство
Описание
функция фильтра, которая принимает (m, n, 3) массив с плавающей точкой и значение dpi, и возвращает (m, n, 3) массив и два смещения от нижнего левого угла изображения
скаляр или None
bool
antialiasedили aabool
BboxBaseили Nonebool
Объект Patch или (Path, Transform) или None
colorили cцвет
CapStyleили {'butt', 'projecting', 'round'}JoinStyleили {'miter', 'round', 'bevel'}последовательность чисел с плавающей точкой (включен/выключен чернила в пунктах) или (None, None)
(2, N) массив или два 1D массива
drawstyleили ds{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, по умолчанию: 'default'
{'full', 'left', 'right', 'bottom', 'top', 'none'}
цвет или None
строка
bool
объект
linestyleили ls{'-', '--', '-.', ':', '', (смещение, последовательность включения/выключения), ...}
linewidthили lwчисло с плавающей точкой
строка стиля маркера,
PathилиMarkerStylemarkeredgecolorили mecцвет
markeredgewidthили mewчисло с плавающей точкой
markerfacecolorили mfcцвет
markerfacecoloraltили mfcaltцвет
markersizeили msчисло с плавающей точкой
None или целое число или (целое число, целое число) или срез или список целых чисел или число с плавающей точкой или (число с плавающей точкой, число с плавающей точкой) или список булевых значений
bool
список
AbstractPathEffectчисло с плавающей точкой или вызываемый объект[[Художник, Событие], кортеж[bool, dict]]
число с плавающей точкой
bool
(масштаб: число с плавающей точкой, длина: число с плавающей точкой, случайность: число с плавающей точкой)
bool или None
CapStyleили {'butt', 'projecting', 'round'}JoinStyleили {'miter', 'round', 'bevel'}неизвестно
строка
bool
1D массив
-
См. также
specgram-
Отличается по умолчанию перекрытием; не возвращает среднее значение сегментных периодограмм; возвращает моменты сегментов; и строит цветную карту вместо линии.
magnitude_spectrum-
Строит спектр величины.
csd-
Строит спектральную плотность между двумя сигналами.
Примечания
Для построения мощность отображается как \(10\log_{10}(P_{xx})\) для децибел, хотя Pxx само по себе возвращается.
Ссылки
Bendat & Piersol -- Random Data: Analysis and Measurement Procedures, John Wiley & Sons (1986)
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.8.4/api/_as_gen/matplotlib.pyplot.psd.html