周期图
用周期图法估计频谱功率密度.
库::`[医]工程师`
语法
函数调用
-
周期图(_)-绘制SPM或功率谱的估计。 对于此语法,您可以另外传递用于显示最终图形的参数。 例如,如果您调用周期图(x,颜色=:红色),那么图形将是红色的。 如果指定了参数[参数:ConfidenceLevel],那么对于每列,置信区间也将显示为虚线。
争论
输入参数
# x-输入信号
+
向量资料 | 矩阵
Details
指定为矢量或矩阵的输入信号。 如果 x -矩阵,函数 周期图 将其列视为独立通道。
| 数据类型 |
|
# 赢-窗口
+
填充(1,尺寸(x,1)) (默认)| 实数或复数向量
Details
定义为与输入信号相同长度的矢量的窗口。 如果论点是 赢 未指定,功能 周期图 使用矩形窗口。
标准矩形窗口的特征在于旁瓣抑制水平等于 13.3 dB;这可导致频谱分量的掩蔽,其水平低于该值(相对于频谱的峰值)。 选择其他类型的窗口允许您在分辨率(例如,当使用矩形窗口时)和旁瓣的抑制程度(例如,当使用矩形窗口时)之间找到折衷。
|
| 数据类型 |
|
# *nfft*是 DFT中的点数
+
最大(256,nextpow(2,尺寸(x,1))) (默认)| 一个正整数
Details
DFT中的点数,以正整数标量给出。
如果论点是 nfft 如果未指定,则函数使用该值 ,在哪里 . 符号 表示四舍五入,以及 长度(<参数:win>>).
| 数据类型 |
|
输入参数 «名称-值»
将可选参数对指定为 名称=值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 类型参数 «名称-值» 它们应该放在其他参数之后,但对的顺序无关紧要。 您可以指定多个对 «名称-值».
#
fs-采样
费率+
南 (默认)| 正标量
Details
的采样率,设置为正标量。 采样率是单位时间内的样本数。 如果时间单位是秒,那么采样频率以Hz表示。
# freqrange — SPM评估的频率范围
+
"onesided" | "twosided"
Details
SPM评估的频率范围,设置为 "onesided" 或 "twosided".
对于具有实数值的信号,默认值为 "onesided". 对于复杂信号,默认值为 "twosided",并指定值 "onesided" 导致错误。
# spectrumtype-功率谱的缩放
+
"psd" (默认)| "权力"
Details
功率谱的缩放,设置为以下值之一:
-
"psd"-功能周期图返回频谱功率密度; -
"权力"-该函数将每个SPM估计值按窗口的等效噪声频带缩放,并返回每个频率处功率的估计值。
| 采样率 | 缩放比例 |
|---|---|
|
psd = periodogram(x, win, nfft, fs=Fs, spectrumtype="psd") pow = periodogram(x, win, nfft, fs=Fs, spectrumtype="power") 然后 |
|
psd = periodogram(x, win, nfft, spectrumtype="psd") pow = periodogram(x, win, nfft, spectrumtype="power") 然后 |
输出参数
# pxxc-置信区间
+
矩阵
Details
作为实矩阵返回的置信区间的边界。
+
因此, pxxc[m,2*n − 1] —这是置信区间的下限,并且 pxxc[m,2*n] -估计值对应的置信区间的上限 <参数:pxx>[m,n].
*复盖置信区间的概率由自变量的值决定 [参数:ConfidenceLevel].
依赖关系
若要使用此参数,请指定参数的值 [参数:ConfidenceLevel].
| 数据类型 |
|
例子:
具有标准参数的周期图
Details
我们得到一个输入信号的周期图,它是一个角频率离散的正弦曲线 rad/计数,白噪声与分布相加 .
让我们形成输入信号。 信号的长度为 320 数数。 让我们使用矩形窗口和默认的DFT长度来计算周期图。 DFT的长度选择等于超过信号长度的二的最近幂,即 512 分。 由于信号是真实的并且具有偶数长度,因此周期图是单侧的并且包含 512/2 + 1 个时期。
import EngeePhased.Functions: periodogram
n = collect(0:319);
x = cos.(pi ./ 4 .* n) .+ randn(size(n));
periodogram(x)

带有汉明窗的修改周期图
Details
我们得到输入信号的修正周期图,它是一个具有角频率的离散正弦曲线 rad/计数,白噪声与分布相加 .
让我们形成输入信号。 信号的长度为 320 数数。 让我们使用矩形窗口和默认的DFT长度来计算周期图。 让我们使用汉明窗口和默认的DFT长度计算修改后的周期图。 DFT的长度选择等于超过信号长度的二的最近幂,即 512 分。 由于信号是真实的并且具有偶数长度,因此周期图是单侧的并且包含 512/2 + 1 个时期。
import EngeePhased.Functions: periodogram
import EngeeDSP.Functions: hamming
n = collect(0:319)
x = cos.(pi ./ 4 .* n) .+ randn(size(n));
periodogram(x,hamming(length(x)))

DFT的长度与信号的长度相同
Details
我们得到一个输入信号的周期图,它是一个角频率离散的正弦曲线 rad/计数,白噪声与分布相加 . 我们使用等于信号长度的DFT长度。
让我们形成输入信号。 信号的长度为 320 数数。 让我们使用矩形窗口(默认情况下)和等于信号长度的DFT长度来计算周期图。 由于信号是真实的,默认情况下返回长度的单向周期图。 320/2 + 1.
import EngeePhased.Functions: periodogram
n = collect(0:319);
x = cos.(pi ./4 .* n) .+ randn(size(n));
nfft = length(x);
periodogram(x,nfft=nfft)

基于一组归一化频率的周期图
Details
我们得到了由两个角频率离散正弦曲线组成的输入信号的周期图 和 rad/计数加性白噪声与分布的背景 . 我们在频率上得到周期图的双面估计 和 rad/倒计时。
import EngeePhased.Functions: periodogram
n = collect(0:319);
x = cos.(pi ./ 4 .* n) .+ 0.5 .* sin.(pi ./ 2 .* n) .+ randn(size(n));
pxx,w = periodogram(x,freq=[pi/4, pi/2],out=:data)
pxx
2×1 Matrix{Float64}:
10.087037418886014
1.7539619680699419
让我们将结果与单侧周期图进行比较。 双侧周期图的值是单侧周期图的值的一半。 当计算一组特定频率的周期图时,结果是双向估计。

pxx1,w1 = periodogram(x,out=:data)
plot(w1 ./ π, pxx1; label="pxx1")
plot!(w ./ π, 2 .* pxx; label="2*pxx", seriestype=:scatter)
xlabel!("Normalized Frequency (× π rad/sample)")
title!("Periodogram Power Spectral Density Estimate")

基于一组循环频率的周期图
Details
让我们形成一个由两个频率的正弦曲线组成的信号 100 和 200 带分布的加性白噪声背景下的Hz . 采样率为 1 千赫。 让我们计算频率的双向周期图 100 和 200 赫兹。
import EngeePhased.Functions: periodogram
fs = 1000;
t = collect(0:0.001:1-0.001);
x = cos.(2 .* pi .* 100 .* t) .+ sin.(2 .* pi .* 200 .* t) .+ randn(size(t));
freq = [100, 200];
pxx,w = periodogram(x,freq=freq,fs=fs, out=:data)
pxx
2×1 Matrix{Float64}:
0.28289790057149083
0.26824883574824315
中心周期图
Details
我们得到一个频率为正弦信号的周期图 100 带分布的加性白噪声背景下的Hz . 采样率为 1 千赫。 我们使用居中选项来获得相对于零频率居中的周期图。
import EngeePhased.Functions: periodogram
fs = 1000;
t = collect(0:0.001:1-0.001);
x = cos.(2 .* pi .* 100 .* t) .+ randn(size(t));
periodogram(x,nfft=length(x), fs=fs, freqrange="onesided", centered=true)

95置信区间%
Details
让我们形成一个由两个频率的正弦曲线组成的信号 100 和 150 带分布的加性白噪声背景下的Hz . 两个正弦信号的幅度为 1. 采样率为 1 千赫。 我们将使用periodogram方法获得SPM的估计值 `95`具有%置信区间。
import EngeePhased.Functions: periodogram
fs = 1000;
t = collect(0:1/fs:1-1/fs);
x = cos.(2 .* pi .* 100 .* t) .+ sin.(2 .* pi .* 150 .* t) + randn(size(t));
periodogram(x, nfft=length(x), fs=fs, ConfidenceLevel = 0.95)

估计正弦波的功率
Details
让我们使用选项估计给定频率下正弦信号的功率 "权力".
让我们形成一个频率为正弦信号 100 Hz和持续时间 1 采样率的一秒 1 千赫。 正弦波的幅值为 1.8,其对应于功率 1.82/2 = 1.62.
import EngeePhased.Functions: periodogram
import EngeeDSP.Functions: hamming
fs = 1000;
t = collect(0:1/fs:1-1/fs);
x = 1.8 .* cos.(2 .* pi .* 100 .* t);
pxx,f = periodogram(x, hamming(length(x)), length(x), fs=fs, spectrumtype="power", out = :data);
idx = argmax(pxx)
pwrest = pxx[idx]
println("The maximum power occurs at $(f[idx]) Hz")
println("The power estimate is $pwrest")
The maximum power occurs at 100.0 Hz
The power estimate is 1.6200000517531614
此外
周期图
Details
周期图是一个平稳的、广泛随机的过程的功率谱密度(SPM)的非参数估计。 周期图是自相关序列的偏置估计的傅立叶变换。 为信号 ,以频率采样 [参数:fs] 每单位时间的计数,周期图定义如下:
哪里 0 和奈奎斯特频率 2 以节省整体电力。
如果频率以每个计数的弧度表示,则周期图定义为
上述公式中的频率范围可能因参数的值而异。 [参数:freqrange].
真实SPM的积分
对于归一化频率,应相应地调整积分限制。
经修改的周期图
Details
当计算修改的周期图时,输入时间序列乘以窗函数。 一个合适的窗函数是非负的,并且在开始点和结束点处减小到零。 将时间序列乘以窗口函数可确保数据值的平稳上升和下降,这有助于减少周期图中的扩展效应。
如果
哪里
如果频率以每个计数的弧度表示,则修改后的周期图定义为
上述方程中的频率范围可能因参数的值而异。 [参数:freqrange].