Spec-Zone.ru › Matplotlib 3.8
matplotlib.axes.Axes.csd Axes. csd ( x , y , 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_{xy}\) методом усреднения периодограмм Уэлча. Векторы x и y делятся на сегменты длиной NFFT . Каждый сегмент сглаживается функцией detrend и окончивается функцией window . noverlap задаёт длину перекрытия между сегментами. Произведение прямых преобразований Фурье от x и y усредняется по каждому сегменту для вычисления \(P_{xy}\) , со шкалой, учитывающей потери мощности из-за окон.
Если len(x ) < NFFT или len(y ) < NFFT , они будут дополнены нулями до NFFT .
Параметры:
x, y Одномерные массивы или последовательности
Массивы или последовательности, содержащие данные.
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 int, необязательно
Количество точек, до которого дополняются нулями сегмент данных при выполнении FFT. Это может отличаться от NFFT , которое определяет количество точек данных, используемых. Хотя не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может дать больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft . По умолчанию None, что устанавливает pad_to равным NFFT
NFFT int, по умолчанию: 256
Количество точек данных, используемых в каждом блоке для FFT. Степень 2 наиболее эффективна. Это не должно использоваться для нулевого заполнения, или масштабирование результата будет неверным; для этого используйте 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_freq bool, по умолчанию: True
Признак того, должны ли возвращаемые значения плотности масштабироваться с помощью шкалирующей частоты, что даёт плотность в единицах 1/Гц. Это позволяет производить интегрирование по возвращаемым частотным значениям. По умолчанию True для совместимости с MATLAB.
noverlap int, по умолчанию: 0 (нет перекрытия)
Количество перекрывающихся точек между сегментами.
Fc int, по умолчанию: 0
Центральная частота x , которая смещает область x графика, чтобы отразить диапазон частот, используемый при получении сигнала, а затем его фильтрации и дискретизации до базовой полосы.
return_line bool, по умолчанию: False
Признак того, следует ли включать объект линии, нарисованный в возвращаемых значениях.
Возвращаемые значения:
Pxy Одномерный массив
Значения для взаимного спектра \(P_{xy}\) до масштабирования (комплексные значения).
freqs Одномерный массив
Частоты, соответствующие элементам в Pxy .
line Line2D
Линия, созданная этой функцией. Возвращается только если return_line равно True.
Другие параметры:
data индексируемый объект, необязательно
Если задан, следующие параметры также принимают строку s, которая интерпретируется как data[s], (если это не вызывает исключение):
x , y
**kwargs
Параметры ключевых слов управляют свойствами Line2D :
Свойство
Описание
agg_filter
функция фильтра, которая принимает массив float (m, n, 3) и значение dpi, и возвращает массив (m, n, 3) и два смещения от нижнего левого угла изображения
alpha
скаляр или None
animated
bool
antialiased или aa
bool
clip_box
BboxBase или None
clip_on
bool
clip_path
Patch или (Path, Transform) или None
color или c
цвет
dash_capstyle
CapStyle или {'butt', 'projecting', 'round'}
dash_joinstyle
JoinStyle или {'miter', 'round', 'bevel'}
dashes
последовательность чисел с плавающей точкой (вкл/выкл чернила в точках) или (None, None)
data
(2, N) массив или два одномерных массива
drawstyle или ds
{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, по умолчанию: 'default'
figure
Figure
fillstyle
{'full', 'left', 'right', 'bottom', 'top', 'none'}
gapcolor
цвет или None
gid
строка
in_layout
bool
label
объект
linestyle или ls
{'-', '--', '-.', ':', '', (смещение, последовательность вкл-выкл), ...}
linewidth или lw
число с плавающей точкой
marker
строка стиля маркера, Path или MarkerStyle
markeredgecolor или mec
цвет
markeredgewidth или mew
число с плавающей точкой
markerfacecolor или mfc
цвет
markerfacecoloralt или mfcalt
цвет
markersize или ms
число с плавающей точкой
markevery
None или целое число или (целое число, целое число) или срез или список [целое число] или число с плавающей точкой или (число с плавающей точкой, число с плавающей точкой) или список [логическое значение]
mouseover
bool
path_effects
список AbstractPathEffect
picker
число с плавающей точкой или вызываемая функция [[Художник, событие], кортеж[логическое значение, словарь]]
pickradius
число с плавающей точкой
rasterized
bool
sketch_params
(масштаб: число с плавающей точкой, длина: число с плавающей точкой, случайность: число с плавающей точкой)
snap
bool или None
solid_capstyle
CapStyle или {'butt', 'projecting', 'round'}
solid_joinstyle
JoinStyle или {'miter', 'round', 'bevel'}
transform
неизвестно
url
строка
visible
bool
xdata
одномерный массив
ydata
одномерный массив
См. также
psd
эквивалентно установке y = x.
Примечания Для построения графиков мощность отображается как \(10 \log_{10}(P_{xy})\) для децибелов, хотя само \(P_{xy}\) возвращается.
Ссылки Bendat & Piersol -- Случайные данные: анализ и методы измерения, John Wiley & Sons (1986)
Примеры использования matplotlib.axes.Axes.csd
<img alt="" loading="lazy" src="data:image/png;base64,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