通过子空间方法估算频率
此示例显示了如何使用子空间方法解决紧密间隔的正弦波。子空间方法假设一个谐波模型,该模型由附加噪声中的正弦波总和(可能是复杂)组成。在复杂值的谐波模型中,噪声也是复杂的值。
创建一个长度的复杂值信号24个样本。该信号由两个复杂的指数(正弦波)组成,其频率为0.4 Hz和0.425 Hz,以及添加剂复杂的白色高斯噪声。噪声的均值和差异为零 。在复杂的白噪声中,实际和虚部的差异都等于总体方差的一半。
n = 0:23;x = exp(1J*2*pi*0.4*n) + exp(1J*2*pi*0.425*n) +...0.2/sqrt(2)*(randn(size(n))+1J*randn(size(n)));
尝试使用信号的功率谱解决两个正弦波。将泄漏设置为最大值的最大值。
pspectrum(x,n,'泄漏',1)
周期图显示在0.4 Hz附近的宽峰。您无法解析两个独立的正弦波,因为期刊的频率分辨率为1/n, 在哪里n是信号的长度。在这种情况下,1/n大于两个正弦波的分离。零填充无助于解析两个单独的峰。
使用子空间方法解决两个紧密间隔的峰。在此示例中,使用音乐方法。估计自相关矩阵并将自相关矩阵输入到pmusic
。指定具有两个正弦分量的模型。绘制结果。
[x,r] = corrmtx(x,14,,“ mod');pmusic(r,2,[],1,'corr')
音乐方法能够以0.4 Hz和0.425 Hz分离两个峰。但是,子空间方法不会产生诸如功率光谱密度估计等功率估计值。子空间方法对于频率识别最有用,并且可以对模型订单错误指定敏感。