AnyMath 文档

周期图

用周期图法估计频谱功率密度.

库::`[医]工程师`

语法

函数调用

  • [参数:pxx],[参数:f]=周期图(<参数:x>>,<参数:out>>=:数据) -返回信号的频谱功率密度(SPM)的估计值 [参数:x],通过periodogram方法计算。 列 [参数:x] 它们被视为独立的通道。 该函数还返回频率。 [参数:f] 在rad/倒计时。

  • 周期图(_) -绘制SPM或功率谱的估计。 对于此语法,您可以另外传递用于显示最终图形的参数。 例如,如果您调用 周期图(x,颜色=:红色),那么图形将是红色的。 如果指定了参数 [参数:ConfidenceLevel],那么对于每列,置信区间也将显示为虚线。

争论 [参数:赢], [参数:nfft] 和 [参数:freq] 可以设置为参数,如 «名称-值». 例如,挑战 周期图(x,nfft=512) 类似于呼叫 周期图(x,填充(1,尺寸(x,1)),512). 这允许您省略一些有默认实现的参数。

争论

输入参数

# x-输入信号

+ 向量资料 | 矩阵

Details

指定为矢量或矩阵的输入信号。 如果 x -矩阵,函数 周期图 将其列视为独立通道。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# 赢-窗口

+ 填充(1,尺寸(x,1)) (默认)| 实数或复数向量

Details

定义为与输入信号相同长度的矢量的窗口。 如果论点是 赢 未指定,功能 周期图 使用矩形窗口。

标准矩形窗口的特征在于旁瓣抑制水平等于 13.3 dB;这可导致频谱分量的掩蔽,其水平低于该值(相对于频谱的峰值)。 选择其他类型的窗口允许您在分辨率(例如,当使用矩形窗口时)和旁瓣的抑制程度(例如,当使用矩形窗口时)之间找到折衷。
数据类型

漂浮物32, 漂浮64</无翻译>

# *nfft*是 DFT中的点数

+ 最大(256,nextpow(2,尺寸(x,1))) (默认)| 一个正整数

Details

DFT中的点数,以正整数标量给出。

如果论点是 nfft 如果未指定,则函数使用该值 ,在哪里 . 符号 表示四舍五入,以及 长度(<参数:win>>).

数据类型

漂浮物32, 漂浮64</无翻译>

# freq — 归一化或循环频率

+ 真实向量

Details

指定为实向量的频率值。 设置频率的类型取决于参数的值 [参数:fs]:

*如果输入参数的值为 [参数:fs] 如果未指定,则默认频率被视为标准化。

*如果输入参数的值为 [参数:fs] 如果指示,频率被认为是循环的。

你可以设置 弗雷克 作为向量,或者 [参数:nfft] 作为正整数。 在同一时间使用这些参数将导致错误。

输入参数 «名称-值»

将可选参数对指定为 名称=值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 类型参数 «名称-值» 它们应该放在其他参数之后,但对的顺序无关紧要。 您可以指定多个对 «名称-值».

# fs-采样 费率+ 南 (默认)| 正标量

Details

的采样率,设置为正标量。 采样率是单位时间内的样本数。 如果时间单位是秒,那么采样频率以Hz表示。

# freqrange — SPM评估的频率范围

+ "onesided" | "twosided"

Details

SPM评估的频率范围,设置为 "onesided" 或 "twosided".

对于具有实数值的信号,默认值为 "onesided". 对于复杂信号,默认值为 "twosided",并指定值 "onesided" 导致错误。

*价值 "onesided" -返回真实输入信号的单向周期图。 如果参数的值为 [参数:nfft] 甚至,那么争论 [参数:pxx] 有 [参数:nfft]/2+1 行,并在间隔上计算 [0, π] 弧度数。 如果参数的值为 [参数:nfft] 如果是奇数,那么 [参数:pxx] 有 (<参数:nfft>>+1)/2 行,并在间隔上计算 [0, π) 弧度数。 如果指定 [参数:fs],那么间隔将分别 [0,[参数:fs]/2] 每单位时间的周期和 [0,[参数:fs]/2) 每单位时间的周期。

*价值 "twosided" -返回真实或复杂信号的双向周期图。 论点 [参数:pxx] 有 [参数:nfft] 行,并在间隔上计算 [0, 2π) 弧度数。 如果指定参数 [参数:fs],那么间隔将是 [0,[参数:fs]) 每单位时间的周期。

# 居中 — 频率范围是否居中

+ 错误 (默认情况下)| 真的

Details

启用频率范围的定心,设置为 错误 或 真的.

# spectrumtype-功率谱的缩放

+ "psd" (默认)| "权力"

Details

功率谱的缩放,设置为以下值之一:

  • "psd" -功能 周期图 返回频谱功率密度;

  • "权力" -该函数将每个SPM估计值按窗口的等效噪声频带缩放,并返回每个频率处功率的估计值。

该表显示了SPM估计值与返回到的功率谱的估计值之间的缩放比例 [参数:pxx],与指定的输入信号 [参数:x],窗口向量 [参数:赢],DFT中的点数 [参数:nfft] 和采样率 [参数:fs].

采样率 缩放比例

财政司司长 套装

psd = periodogram(x, win, nfft, fs=Fs, spectrumtype="psd")
pow = periodogram(x, win, nfft, fs=Fs, spectrumtype="power")

然后 战俘 相当于 psd*enbw(win,Fs),在哪里 赢 -这是窗口向量。

财政司司长 未指定

psd = periodogram(x, win, nfft, spectrumtype="psd")
pow = periodogram(x, win, nfft, spectrumtype="power")

然后 战俘 相当于 psd*enbw(win,2*π).

# ConfidenceLevel-SPM评估的置信区间

+ 南 (默认情况下)| 从0到1范围内的实数

Details

SPM估计的复盖概率,以范围内的标量给出 (0, 1).

如果指定 ConfidenceLevel=p, 功能 周期图 在输出参数中返回 [参数:pxxc] 置信区间与水平的下限和上限 p×100%为真SPM。

# out-输出数据的类型

+ :剧情 (默认情况下)| :数据

Details

输出数据的类型:

  • :剧情 -函数返回一个图形;

  • :数据 -函数返回数据。

输出参数

# pxx-SPM或功率谱的估计

+ 向量资料 | 矩阵

Details

作为实非负列向量或矩阵返回的SPM或功率谱的估计。

*每列 pxx的 它表示SPM或相应列的功率谱的估计。 [参数:x] 取决于参数的设置方式 [参数:光谱类型]. *SPM估计值的测量单位是每单位频率的输入信号值的平方。 例如,如果输入数据是 [参数:x] 以伏特为单位,采样率 [参数:fs] -在赫兹里,阻力是 1 欧姆,那么SPM估计值将以瓦特/赫兹表示。

*功率谱的测量单位是输入信号的平方。 例如,如果输入数据是 [参数:x] 它们以伏特为单位设置,电阻为 1 欧姆,那么功率谱的估计将以瓦特表示。

# f-与SPM评估相关的频率

+ 向量资料

Details

与SPM评估相关联的频率作为实列向量返回。

*如果参数 [参数:fs] 套装, f 它包含以Hz为单位的循环频率。 *如果参数 [参数:fs] 未指定, f 包含以rad/count为单位的归一化频率。

# pxxc-置信区间

+ 矩阵

Details

作为实矩阵返回的置信区间的边界。

*矩阵 pxxc 有尽可能多的行 [参数:pxx]. *矩阵 pxxc 它有两倍多的列 [参数:pxx]. 奇数列包含置信区间的下限。 偶数列包含置信区间的上限。

+ 因此, pxxc[m,2*n − 1] —这是置信区间的下限,并且 pxxc[m,2*n] -估计值对应的置信区间的上限 <参数:pxx>[m,n].

*复盖置信区间的概率由自变量的值决定 [参数:ConfidenceLevel].

依赖关系

若要使用此参数,请指定参数的值 [参数:ConfidenceLevel].

数据类型

漂浮物32, 漂浮64</无翻译>

例子:

具有标准参数的周期图

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)

periodogram 1

带有汉明窗的修改周期图

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)))

periodogram 2

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)

periodogram 3

基于一组归一化频率的周期图

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

让我们将结果与单侧周期图进行比较。 双侧周期图的值是单侧周期图的值的一半。 当计算一组特定频率的周期图时,结果是双向估计。

periodogram 3

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")

periodogram 4

基于一组循环频率的周期图

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)

periodogram 5

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)

periodogram 6

估计正弦波的功率

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

当计算修改的周期图时,输入时间序列乘以窗函数。 一个合适的窗函数是非负的,并且在开始点和结束点处减小到零。 将时间序列乘以窗口函数可确保数据值的平稳上升和下降,这有助于减少周期图中的扩展效应。

如果 是一个窗口函数,那么修改后的periodogram定义如下:

哪里 -采样间隔。

如果频率以每个计数的弧度表示,则修改后的周期图定义为

上述方程中的频率范围可能因参数的值而异。 [参数:freqrange].

文学作品

  1. 奥格,弗朗索瓦和帕特里克弗兰德林。 _通过重新分配方法提高时频和时标表示的可读性。_IEEE®关于信号处理的事务。 卷。 43,1995年5月,第1068-1089页。

  2. Fulop,Sean A.和Kelly Fitz。 _Algorithms用于计算时间校正的瞬时频率(重新分配)频谱图,具有应用。_美国声学学会杂志。 卷。 119,2006年1月,第360-371页。