scipy进行谱分析

参考:

Signal processing (scipy.signal) — SciPy v1.9.3 Manual

periodogram

scipy.signal.periodogram(x, fs=1.0, window='boxcar', nfft=None, detrend='constant', return_onesided=True, scaling='density', axis=- 1)[source]
使用周期图估计功率谱密度。

参数
x:array_like
测量值的时间序列

fs:float,可选
x时间序列的采样频率。默认为1.0。

Window:strtuple或array_like,可选
想要使用的窗口。如果window是字符串或元组,则将它传递给get_window以生成窗口值,即使在默认情况下也是dft。有关窗口和所需参数的列表,请参阅get_window。如果window是array_like,它将直接用作窗口,其长度必须为nperseg。默认为' boxcar '。

nfft:int,可选
FFT的长度。如果为None,则使用x的长度。

detrend:str或function或False,可选
指定如何为每个段趋势化。如果detrend是一个字符串,它将作为类型参数传递给detrend函数。如果它是一个函数,它接受一个段并返回一个有趋势的段。如果detrend为False,则不进行去趋势处理。默认为' constant '。

return_onesided:bool,可选
如果为True,返回真实数据的单边频谱。如果False返回一个双面频谱。默认为True,但是对于复杂的数据,总是返回一个双面谱。

scaling{
   
    ‘density’, ‘spectrum’ }, optional
在计算功率谱密度(‘密度’)和计算功率谱(‘频谱’)之间进行选择,其中Pxx的单位是V**2/Hz,其中Pxx的单位是V**2,如果x的单位是V, fs的单位是Hz。默认为' density '

axis:int,可选
计算周期图的轴;默认值是在最后一个轴上(即轴=-1)。

返回
f :ndarray
采样频率数组。

Pxx :ndarray
x的功率谱密度或功率谱。

示例:

from scipy import signal
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng()
# Generate a test signal, a 2 Vrms sine wave at 1234 Hz, corrupted by 0.001 V**2/Hz of white noise sampled at 10 kHz.

fs = 10e3
N = 1e5
amp = 2*np.sqrt(2)
freq = 1234.0
noise_power = 0.001 * fs / 2
time = np.arange(N) / fs
x =<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KPer_Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值