Плотность спектральной мощности \(P_{xx}\) методом усреднённого периодограммы Уэлча. Вектор x делится на сегменты длиной NFFT. Каждый сегмент обрабатывается функцией detrend и окончивается функцией window. noverlap задаёт длину перекрытия между сегментами. \(|\mathrm{fft}(i)|^2\) каждого сегмента \(i\) усредняются для вычисления \(P_{xx}\) с учётом потерь мощности из-за окон.
Если len(x) < NFFT, он дополняется нулями до NFFT.
Параметры:
x1-D array or sequence
Массив или последовательность, содержащая данные
Fsscalar
Частота дискретизации (образцов в единицу времени). Используется для вычисления частот Фурье, freqs, в циклах за единицу времени. Значение по умолчанию равно 2.
windowcallable 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_toint
Количество точек, до которого дополняются нулями сегменты данных при выполнении FFT. Это может отличаться от NFFT, которое определяет количество точек данных, используемых. Несмотря на то, что это не увеличивает фактическое разрешение спектра (минимальное расстояние между разрешимыми пиками), это может обеспечить больше точек на графике, что позволит получить больше деталей. Это соответствует параметру n в вызове fft(). По умолчанию None, что устанавливает pad_to равным NFFT
NFFTint
Количество точек данных, используемых в каждом блоке для 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_freqbool, optional
Указывает, должны ли значения плотности масштабироваться на частоту масштабирования, что даёт плотность в единицах Hz^-1. Это позволяет интегрировать по возвращаемым частотам. По умолчанию True для совместимости с MATLAB.
noverlapint
Количество перекрывающихся точек между сегментами. По умолчанию 0 (нет перекрытия).
Fcint
Центральная частота x (по умолчанию 0), которая смещает диапазон по оси x графика для отображения частотного диапазона, используемого при получении сигнала, а затем его фильтрации и сэмплирования с пониженной частотой до базовой полосы.
return_linebool
Включать ли объект линии, нарисованный на графике, в возвращаемые значения. По умолчанию False.
Возвращает:
Pxx1-D array
Значения спектральной мощности P_{xx} до масштабирования (вещественные).
freqs1-D array
Частоты, соответствующие элементам в Pxx.
lineLine2D
Линия, созданная этой функцией. Возвращается только если return_line равно True.
END_OF_DOCUMENT_MARKER
Другие параметры:
**kwargs
Параметры ключевого слова управляют свойствами Line2D:
None или целое число или (целое число, целое число) или срез или список целых чисел или число с плавающей точкой или (число с плавающей точкой, число с плавающей точкой)
specgram() отличается значением по умолчанию для перекрытия; не возвращает среднее значение периодограмм сегмента; возвращает время сегментов; и строит цветовой карту вместо линии.
csd() строит спектральную плотность между двумя сигналами.
Примечания
Для построения графика мощность отображается как \(10\log_{10}(P_{xx})\) для децибел, хотя Pxx само по себе возвращается.
Ссылки
Bendat & Piersol -- Случайные данные: методы анализа и измерения, John Wiley & Sons (1986)
Примечание
В дополнение к описанным выше аргументам, эта функция может принимать аргумент data. Если такой аргумент data задан, следующие аргументы заменяются на data[<arg>]:
Все аргументы с именем 'x'.
Объекты, переданные в качестве data, должны поддерживать доступ к элементам (data[<arg>]) и проверку на членство (<arg> in data).