以下部分讨论了<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">期刊一个>,<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">改进的周期图一个>,<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">韦尔奇一个>,和<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">多窗口一个>非参数估计方法,以及相关的方法<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">运行CPSD函数一个>,<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">传递函数估计一个>,和<一个href="//www.tianjin-qmedu.com/fr/help/signal/ug/nonparametric-methods.html" class="intrnllnk">连贯功能一个>.
一般来说,估计过程的PSD的一种方法是简单地找到过程样本的离散时间傅里叶变换(通常在一个带有FFT的网格上完成),并适当缩放结果的幅度的平方。这个估计叫做<年代pan class="emphasis">期刊年代pan>.
信号PSD的周期图估计<年代pan class="inlineequation"> 长度<年代pan class="emphasis">l年代pan>是
其中Fs为采样频率。
在实践中,实际计算<年代pan class="inlineequation"> 只能在有限的频率点上执行,通常采用FFT。周期图方法的大多数实现计算<年代pan class="inlineequation"> -point PSD估计在频率
在某些情况下,如果频率的个数是2的幂,那么通过FFT算法计算周期图的效率会更高。因此,用零填充输入信号以将其长度扩展到2的幂是很常见的。
作为周期图的一个例子,考虑下面的1001元素信号xn
,由两个正弦波和噪声组成:
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t =(0:FS)/ FS;<年代pan style="color:#228B22">%一秒值的样品年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦振幅(行向量)年代pan>f = (150; 140);<年代pan style="color:#228B22">%Sinusoid频率(柱向量)年代pan>xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));<年代pan style="color:#228B22">最后三行等价于年代pan>% xn =罪(2 *π* 150 * t) + 2 *罪(2 *π* 140 * t) + 0.1 * randn(大小(t));年代pan>
PSD的周期图估计可以使用期刊
.在这种情况下,数据向量乘以汉明窗口以产生修改的阶段。
[Pxx F] =周期图(xn汉明(长度(xn)),长度(xn), fs);情节(F, 10 * log10 (Pxx))包含(<年代pan style="color:#A020F0">“赫兹”年代pan>) ylabel (<年代pan style="color:#A020F0">“数据库”年代pan>)标题(<年代pan style="color:#A020F0">'改进的时期功率谱密度估计'年代pan>)
算法年代trong>
期间图计算并缩放FFT的输出以产生频率与频率图。
如果输入信号是实值的,得到的FFT的大小与零频率(DC)是对称的。对于偶数长度的FFT,只有第一个(1 +nfft
/ 2)点是独一无二的。确定唯一值的数量,只保留那些独特点。
取唯一FFT值的平方。将平方幅值(直流除外)按<年代pan class="inlineequation"> ,在那里<年代pan class="emphasis">N年代pan>为在任何补零之前的信号长度。按比例计算直流值<年代pan class="inlineequation"> .
从唯一点的数量、nfft和采样频率创建一个频率向量。
将得到的幅度平方FFT与频率相乘。
以下部分讨论了关于泄漏,分辨率,偏差和方差问题的时期图的性能。
光谱泄漏年代trong>
考虑有限长度的PSD<年代pan class="inlineequation"> )信号<年代pan class="inlineequation"> .解释通常是有用的<年代pan class="inlineequation"> 作为无限信号相乘的结果,<年代pan class="inlineequation"> ,通过一个有限长矩形窗口,<年代pan class="inlineequation"> :
因为时域的乘法对应于频域的卷积,所以周期图在频域的期望值为
证明了周期图的期望值是真实PSD与Dirichlet核的平方的卷积。
卷积的效果对于正弦数据最容易理解。假设<年代pan class="inlineequation"> 是由一个数组成的<年代pan class="inlineequation"> 复杂的正弦曲线:
它的光谱
对于有限长度的序列是什么呢
前面的方程等于
所以在有限长度信号的频谱中,狄拉克函数被形式项所取代<年代pan class="inlineequation"> ,对应于以该频率为中心的矩形窗口的频率响应<年代pan class="inlineequation"> .
矩形窗口的频率响应具有周期sinc的形状:
L = 32;[h, w] = freqz (rectwin(左)/ L, 1);y = diric (w、L);情节(w /π,20 * log10 (abs (h)))<年代pan style="color:#A020F0">在年代pan>情节(w /π,20 * log10 (abs (y)),<年代pan style="color:#A020F0">' - '年代pan>)举行<年代pan style="color:#A020F0">关闭年代pan>ylim([-40,0])传说(<年代pan style="color:#A020F0">'频率响应'年代pan>,<年代pan style="color:#A020F0">“周期性Sinc”年代pan>)包含(<年代pan style="color:#A020F0">“ω\ / \π”年代pan>)
图中显示了一个主瓣和几个副瓣,其中最大的副瓣在主瓣峰值以下约13.5 dB。这些波瓣解释了所谓的光谱泄漏效应。而无限长信号的功率恰好集中在离散的频率点<年代pan class="inlineequation"> ,窗口(或截断的)信号在离散频率点周围具有“泄漏”的连续力<年代pan class="inlineequation"> .
由于短矩形窗的频率响应比长矩形窗的频率响应更接近狄拉克函数,谱泄漏在数据记录较短时尤其明显。考虑以下100个样本序列:
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t = (0: fs / 10) / fs;<年代pan style="color:#228B22">%十分之一秒值的样品年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));周期图(xn rectwin(长度(xn)), 1024年,fs)
值得注意的是,频谱泄漏的影响仅取决于数据记录的长度。这并不是周期图是在有限数量的频率样本下计算的结果。
决议年代trong>
决议年代pan>指鉴别光谱特征的能力,是分析光谱估计器性能的一个关键概念。
为了分辨两个在频率上相对接近的正弦波,必须使两个频率之间的差大于其中任何一个正弦波泄漏谱的主瓣宽度。主瓣宽度定义为主瓣在功率为峰值主瓣功率的一半(即3db宽度)处的宽度。这个宽度大约等于<年代pan class="inlineequation"> .
换句话说,对于两个正弦频率<年代pan class="inlineequation"> 和<年代pan class="inlineequation"> ,可分解性条件要求
在上面的例子中,两个正弦波仅以10赫兹分开,数据记录必须大于100个样本,以允许两个不同的正弦波通过周期图的分辨率。
考虑未满足此标准的情况,如下面的67个样本的序列:
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t = (0: fs / 15) / fs;<年代pan style="color:#228B22">% 67个样本年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));周期图(xn rectwin(长度(xn)), 1024年,fs)
由于信噪比(SNR)一直比较高,上述关于分辨率的讨论没有考虑噪声的影响。当信噪比较低时,真实的光谱特征很难区分,基于周期图的光谱估计中会出现噪声伪影。下面的例子说明了这一点:
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t = (0: fs / 10) / fs;<年代pan style="color:#228B22">%十分之一秒值的样品年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>xn = A*sin(2*pi*f*t) + 2*randn(size(t));周期图(xn rectwin(长度(xn)), 1024年,fs)
偏差术语年代trong>
期间图是PSD的偏置估计器。它预期的价值之前是如此
周期图是渐近无偏的,从早期的观察中可以明显看出,当数据记录的长度趋于无穷大时,矩形窗口的频率响应更接近于狄拉克函数。然而,在某些情况下,即使数据记录很长,周期图也不能很好地估计PSD。这是由于周期图的方差造成的,如下所述。
周期图的方差年代trong>
期间图的方差可以显示为
这表明方差不趋向于零作为数据长度<年代pan class="inlineequation"> 趋向于无穷。在统计术语中,周期图不是PSD的一致估计量。然而,在信噪比高的情况下,特别是在数据记录很长的情况下,周期图可以是一个有用的谱估计工具。
的<年代pan class="emphasis">改进的周期图年代pan>在计算DFT之前先对时域信号加窗,以平滑信号的边缘。这有降低副瓣高度或光谱泄漏的效果。这种现象引起了对旁瓣的解释,即当使用矩形窗口时,由于突然截断而引入信号的杂散频率。对于非矩形窗口,截断信号的端点被平滑衰减,因此引入的杂散频率要小得多。另一方面,非矩形窗口也会使主瓣变宽,导致分辨率降低。
的期刊
允许您通过指定要在数据上使用的窗口来计算修改的周期图。例如,比较默认矩形窗口和汉明窗口。在两种情况下指定相同数量的DFT点。
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t = (0: fs / 10) / fs;<年代pan style="color:#228B22">%十分之一秒值的样品年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>nfft = 1024;xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));周期图(xn rectwin(长度(xn)), nfft, fs)
周期图(xn汉明(长度(xn)), nfft, fs)
您可以验证虽然垂钓窗口周期图中的侧面轴不太明显,但两个主要峰值更宽。实际上,对应于汉明窗口的mainLobe的3 dB宽度大约是矩形窗口的两倍。因此,对于固定数据长度,垂悬的窗口可获得的PSD分辨率约为矩形窗口的一半。可以在一定程度上使用可变窗口(如kaiser窗口)在一定程度上解析MainLobe宽度和侧瓣高度的竞争利益。
非连接窗口会影响信号的平均功率,因为当乘以窗口时,某些时间样本被衰减。弥补这一点,期刊
和pwelch
将窗口标准化为单位的平均力量。这确保了测量的平均功率通常与窗口选择无关。如果PSD估计器频率分量没有很好地解决,则窗口选择会影响平均功率。
PSD的修正周期图估计为
在哪里<年代pan class="emphasis">U年代pan>是窗口归一化常量:
对于较大的值l
,U
趋于与窗长无关。添加U
作为一个归一化常数,保证了修正的周期图是渐近无偏的。
韦尔奇提出了一种改进的PSD估计。该方法包括将时间序列数据分成(可能重叠的)段,计算每个段的修正周期图,然后平均PSD估计。结果就是韦尔奇的PSD估计。工具箱函数pwelch
实现Welch的方法。
修正周期图的平均倾向于减少相对于整个数据记录的单个周期图估计的估计的方差。虽然段与段之间的重叠会带来冗余信息,但这种影响通过使用非矩形窗口来减小<年代pan class="emphasis">重量年代pan>给定段的结束样本(重叠的样本)。
然而,如上所述,结合使用短数据记录和非矩形窗口会降低估计器的分辨率。总之,在方差减少和解决之间有一个折衷。我们可以操纵Welch方法中的参数,以获得相对于周期图的改进估计,特别是在信噪比较低的情况下。下面的示例说明了这一点。
考虑一个包含301个样本的信号:
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t = (0:0.3 * fs) / fs;<年代pan style="color:#228B22">% 301个样本年代pan>a = [2 8];<年代pan style="color:#228B22">%正弦振幅(行向量)年代pan>f = (150; 140);<年代pan style="color:#228B22">%Sinusoid频率(柱向量)年代pan>xn = A*sin(2*pi*f*t) + 5*randn(size(t));周期图(xn rectwin(长度(xn)), 1024年,fs)
我们可以使用矩形窗口获得3个段的韦尔奇的光谱估计,使用50%重叠。
pwelch (xn rectwin(150), 50512年,fs)
在上面的周期图中,噪声和泄漏使其中一个正弦波与人工峰值本质上难以区分。相比之下,尽管韦尔奇的方法产生的PSD有更宽的峰值,但你仍然可以从“噪声底”中区分出两个正弦波。
然而,如果我们试图进一步减少方差,分辨率的损失会导致一个正弦波完全丢失。
pwelch (xn rectwin(100), 75512年,fs)
Welch的方法产生了PSD的偏置估计。PSD估计的预期价值是:
在哪里
Welch估计器的差异难以计算,因为它取决于所使用的窗口和段之间的重叠量。基本上,方差与正在平均修改时段的段的数量成反比。
周期图可以解释为过滤一个长度<年代pan class="inlineequation"> 信号,<年代pan class="inlineequation"> ,通过一个滤波器组(一组并联的滤波器)<年代pan class="inlineequation"> 冷杉带通滤波器。每个带通滤波器的3db带宽可以显示为近似等于<年代pan class="inlineequation"> .每个带通滤波器的幅值响应类似于矩形窗口。周期图因此可以看作是对每个滤波信号(即每个带通滤波器的输出)的功率的计算,它只使用每个滤波信号的一个样本,并假设PSD为<年代pan class="inlineequation"> 在每个带通滤波器的带宽上是常数。
随着信号长度的增加,每个带通滤波器的带宽减小,使其成为一个更有选择性的滤波器,并改进了常数PSD在滤波器带宽上的近似。这提供了另一个解释,为什么周期图的PSD估计随着信号长度的增加而改善。然而,从这个观点来看,有两个明显的因素会损害周期图估计的准确性。首先,矩形窗口产生一个差的带通滤波器。其次,每个带通滤波器输出功率的计算依赖于输出信号的单个样本,产生一个非常粗略的近似。
韦尔奇的方法可以用滤波器组给出类似的解释。在Welch的实现中,使用几个样本来计算输出功率,从而减少了估计的方差。另一方面,每个带通滤波器的带宽都大于周期图法对应的带宽,导致分辨率的损失。因此,滤波器组模型为方差和分辨率之间的折衷提供了一种新的解释。
汤普森的<年代pan class="emphasis">多窗口方法年代pan>(MTM)建立在这些结果的基础上,提供改进的PSD估计。MTM方法不使用本质上是矩形窗口的带通滤波器(如周期图方法),而是使用一组最优带通滤波器来计算估计值。这些最优FIR滤波器是由一组被称为离散长椭球序列(DPSSs,也称为<年代pan class="emphasis">绞线序列年代pan>)。
此外,MTM方法还提供了一个时间带宽参数来平衡方差和分辨率。这个参数由时间-带宽乘积给出,<年代pan class="inlineequation"> 它与计算谱所用的锥度数直接相关。总有<年代pan class="inlineequation"> 圆锥用来形成估计。这意味着<年代pan class="inlineequation"> 增加,有更多的功率谱估计,估计的方差减少。然而,每个锥度的带宽也与之成比例<年代pan class="inlineequation"> ,<年代pan class="inlineequation"> 增加时,每个估计显示更多的频谱泄漏(即更宽的峰值)和整体光谱估计更有偏倚。对于每个数据集,通常有一个值<年代pan class="inlineequation"> 允许偏差和方差之间的最佳权衡。
实现MTM方法的信号处理工具箱™函数是PMTM
.使用PMTM
来计算信号的PSD。
FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t =(0:FS)/ FS;<年代pan style="color:#228B22">%一秒值的样品年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));pmtm (xn 4 [], fs)
通过降低时间带宽产品,您可以以更大的方差为代价提高分辨率。
pmtm (xn 1.5, [], fs)
由于计算离散长椭球序列的代价,该方法比Welch方法在计算上更昂贵。对于长数据系列(10,000点或更多),计算一次DPSSs并将它们保存在mat文件中是很有用的。dpsssave
,dpssload.
,dpssdir
,和dpssclear
在MAT-file中保存已保存的DPSSs数据库dpss.mat
.
PSD是一种特殊情况<年代pan class="emphasis">交叉谱密度年代pan>(CPSD)函数,在两个信号之间定义
与相关和协方差序列的情况一样,工具箱<年代pan class="emphasis">估计年代pan>PSD和CPSD,因为信号长度是有限的。
估计两个相等长度信号的交叉光谱密度x
和y
用韦尔奇的方法<一个href="//www.tianjin-qmedu.com/fr/help/signal/ref/cpsd.html">运行cpsd
函数的FFT的乘积形成周期图x
以及FFT的共轭y
.与实值PSD不同,CPSD是一个复杂的函数。运行cpsd
处理的切片和开窗x
和y
就像pwelch
功能:
Sxy =运行cpsd (x, y, nwin、noverlap nfft, fs)
Welch方法的一种应用是非参数系统识别。假设<年代pan class="emphasis">H年代pan>是线性时不变系统吗<年代pan class="emphasis">x年代pan>(<年代pan class="emphasis">n年代pan>),<年代pan class="emphasis">y年代pan>(<年代pan class="emphasis">n年代pan>的输入和输出<年代pan class="emphasis">H年代pan>,分别。然后是功率谱<年代pan class="emphasis">x年代pan>(<年代pan class="emphasis">n年代pan>)与社区可持续发展计划有关<年代pan class="emphasis">x年代pan>(<年代pan class="emphasis">n年代pan>),<年代pan class="emphasis">y年代pan>(<年代pan class="emphasis">n年代pan>)
之间传递函数的估计<年代pan class="emphasis">x年代pan>(<年代pan class="emphasis">n年代pan>),<年代pan class="emphasis">y年代pan>(<年代pan class="emphasis">n年代pan>)是
这种方法估计幅度和相位信息。的tfestimate
函数使用Welch方法计算CPSD和功率谱,然后形成它们的商来估计传递函数。使用tfestimate
就像你用运行cpsd
函数。
生成由嵌入在白色高斯噪声中的两个正弦曲线组成的信号。
rng (<年代pan style="color:#A020F0">“默认”年代pan>)FS = 1000;<年代pan style="color:#228B22">%采样频率年代pan>t =(0:FS)/ FS;<年代pan style="color:#228B22">%一秒值的样品年代pan>a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));
过滤信号xn
使用FIR移动平均滤波器。计算实际的震级响应和估计响应。
H = =(1,10)/ 10;<年代pan style="color:#228B22">%移动平均滤波器年代pan>yn =过滤器(h 1 xn);[命令f] = tfestimate (xn yn 256128256 fs);H = freqz (H 1 f, f);
策划的结果。
子图(2,1,1)绘图(F,ABS(H))标题(<年代pan style="color:#A020F0">'实际传递函数幅度'年代pan>) yl = ylim;grid subplot(2,1,2) plot(f,abs(HEST)) title(<年代pan style="color:#A020F0">“传递函数大小估计”年代pan>)包含(<年代pan style="color:#A020F0">的频率(赫兹)年代pan>) ylim (yl)网格
两个信号之间的大小平方相干性<年代pan class="emphasis">x年代pan>(<年代pan class="emphasis">n年代pan>),<年代pan class="emphasis">y年代pan>(<年代pan class="emphasis">n年代pan>)是
商是一个介于0和1之间的实数,用来衡量两者之间的相关性<年代pan class="emphasis">x年代pan>(<年代pan class="emphasis">n年代pan>),<年代pan class="emphasis">y年代pan>(<年代pan class="emphasis">n年代pan>)的频率<年代pan class="inlineequation"> .
的mscohere
函数序列xn
和yn
,计算其功率谱和CPSD,并返回CPSD的大小平方的商和功率谱的产品。它的选择和操作类似于运行cpsd
和tfestimate
功能。
生成由嵌入在白色高斯噪声中的两个正弦曲线组成的信号。信号在1 kHz中取样1秒。
rng (<年代pan style="color:#A020F0">“默认”年代pan>)FS = 1000;t =(0:FS)/ FS;a = [1 2];<年代pan style="color:#228B22">%正弦信号的振幅年代pan>f = (150; 140);<年代pan style="color:#228B22">%正弦信号频率年代pan>xn = A*sin(2*pi*f*t) + 0.1*randn(size(t));
过滤信号xn
使用FIR移动平均滤波器。计算和绘制的相干函数xn
和滤波器输出yn
作为频率的函数。
H = =(1,10)/ 10;yn =过滤器(h 1 xn);msco:msco(xn,yn,256,128,256,fs)
如果输入序列长度,窗口长度和窗口中的重叠数据点数是这样的mscohere
只对一条记录操作,函数返回所有记录。这是因为线性相关数据的相干函数为1。
运行cpsd
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mscohere
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">期刊
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">PMTM
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">pwelch
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">tfestimate