科学Py

科学·信号·韦尔奇

科学·信号。韦尔奇(x个,fs=1.0,窗口='hann',nperseg=无,noverlap=无,nfft=无,detrend='constant',return_onesided=真,scaling=“密度”,轴=-1,平均值=“平均值”)[来源]

使用韦尔奇方法估算功率谱密度。

韦尔奇方法[1]计算功率谱的估计值通过将数据划分为重叠段来计算密度修改每个分段的周期图并平均周期图。

参数:
x个 : 阵列状

测量值的时间序列

英尺 : 浮动,可选

的采样频率x个时间序列。默认为1.0。

窗口 : str或tuple或array_like,可选

需要使用的窗口。如果窗口是字符串或元组传递给获取窗口(_W)生成窗口值,这些值是DFT-默认情况下也是如此。请参见获取窗口获取窗口列表和所需参数。如果窗口是array_like将被使用直接作为窗口,并且其长度必须是nperseg。默认值到汉恩的窗户。

nperseg(名词) : int,可选

每段的长度。默认为“无”,但如果窗口为str或元组设置为256,如果窗口是array_like,则设置为窗口的长度。

中篇小说 : int,可选

线段之间要重叠的点数。如果,中篇小说 = nperseg(名词) // 2。默认为.

非规则采样快速傅里叶变换 : int,可选

如果需要零填充FFT,则使用FFT的长度。如果,FFT长度为nperseg(名词)。默认为.

减损 : str或函数或False(错误),可选

指定如何减损每个分段。如果减损是一个字符串,它作为类型参数减损功能。如果它是一个函数,它接受一个段并返回一个去趋势板块。如果减损False(错误),没有贬损完成。默认为“常量”。

返回(无侧) : bool,可选

如果真的,返回实际数据的单边光谱。如果False(错误)返回双面光谱。请注意,对于复杂数据,总是返回双边谱。

缩放比例 : {“密度”,“光谱”},可选

在计算功率谱密度(“密度”)之间进行选择哪里第xx页单位为V**2/Hz,并计算功率光谱(“光谱”),其中第xx页单位为V**2,如果x个以V和英尺测量单位为Hz。默认为“密度”

: int,可选

计算周期图的轴;默认值为在最后一个轴上(即。轴=-1).

平均的 : {“平均值”,“中间值”},可选

平均周期图时使用的方法。默认为“mean”。

1.2.0版中的新增功能。

退货:
(f) : 标准射线

采样频率数组。

第xx页 : 标准射线

功率谱密度或x的功率谱。

另请参见

周期图
简单的、可选择修改的周期图
洛布斯卡
非均匀采样数据的Lomb-Scargle周期图

笔记

适当的重叠量取决于窗口的选择以及您的要求。对于默认的Hann窗口,重叠50%是准确估计信号功率,同时不过量计算任何数据。更窄的窗口可能需要更大的重叠。

如果中篇小说为0,此方法等效于Bartlett的方法[2].

0.12.0版中的新增功能。

工具书类

[1](1,2)P.Welch,“快速傅里叶变换在功率谱估计:一种基于时间平均的方法简而言之,修改后的周期图”,IEEE Trans。音频电声。第15卷,第70-73页,1967年。
[2](1,2)M.S.Bartlett,“周期图分析和连续光谱”,Biometrika,第37卷,第1-16页,1950年。

示例

>>> 松软的 进口 信号
>>>进口 matplotlib.打印 作为 平板电脑
>>>净现值.随机的.种子(1234)

生成一个测试信号,一个1234 Hz的2 Vrms正弦波,由以10 kHz采样的0.001 V**2/Hz白噪声。

>>>英尺 = 10电子3
>>>N个 = 1电子5
>>>放大器 = 2*净现值.平方英尺(2)
>>>频率 = 1234
>>>噪音功率 = 0.001 * 英尺 / 2
>>>时间 = 净现值.阿兰奇(N个) / 英尺
>>>x个 = 放大器*净现值.(2*净现值.圆周率*频率*时间)
>>>x个 += 净现值.随机的.正常的(规模=净现值.平方英尺(噪音功率), 大小=时间.形状)

计算并绘制功率谱密度。

>>>(f), 第xx_天 = 信号.韦尔奇(x个, 英尺, nperseg(名词)=1024)
>>>平板电脑.符号学((f), 第xx_天)
>>>平板电脑.伊林([0.5电子-3, 1])
>>>平板电脑.xlabel公司('频率[Hz]')
>>>平板电脑.伊拉贝尔(“PSD[V**2/Hz]”)
>>>平板电脑.显示()
../_images/scipy-signal-welch-1_00_00.png

如果我们平均光谱密度的后半部分,以排除峰值,我们可以恢复信号上的噪声功率。

>>>净现值.意思是(第xx_天[256:])
0.0009924865443739191

现在计算并绘制功率谱。

>>>(f), Pxx_规格 = 信号.韦尔奇(x个, 英尺, “平顶”, 1024, 缩放比例=“光谱”)
>>>平板电脑.图形()
>>>平板电脑.符号学((f), 净现值.平方英尺(Pxx_规格))
>>>平板电脑.xlabel公司('频率[Hz]')
>>>平板电脑.伊拉贝尔('线性频谱[V RMS]')
>>>平板电脑.显示()
../_images/scipy-signal-welch-1_01_00.png

功率谱中的峰值高度是RMS的估计值振幅。

>>>净现值.平方英尺(Pxx_规格.最大值())
2.0077340678640727

如果我们现在通过增加信号的一小部分幅度为50,我们可以看到平均功率谱密度的破坏,但使用中位数平均值能更好地估计正常行为。

>>>x个[整数(N个//2):整数(N个//2)+10] *= 50
>>>(f), 第xx_天 = 信号.韦尔奇(x个, 英尺, nperseg(名词)=1024)
>>>f_med(含), Pxx_den_med公司 = 信号.韦尔奇(x个, 英尺, nperseg(名词)=1024, 平均的=“中位数”)
>>>平板电脑.符号学((f), 第xx_天, 标签=“意思”)
>>>平板电脑.符号学(f_med(含), Pxx_den_med公司, 标签=“中位数”)
>>>平板电脑.伊林([0.5电子-3, 1])
>>>平板电脑.xlabel公司('频率[Hz]')
>>>平板电脑.伊拉贝尔(“PSD[V**2/Hz]”)
>>>平板电脑.传奇()
>>>平板电脑.显示()
../_images/scipy-signal-welch-1_02_00.png

上一个主题

科学.信号.周期图

下一个主题

科学.信号.csd