现代谱估计的原理及MATLAB仿真(二)(AR模型法、MVDR法、MUSIC法)

现代谱估计的原理及MATLAB仿真AR参数模型法(参数模型功率谱估计)、MVDR法(最小方差无失真响应法)、MUSIC法(多重信号分类法)

文章目录


前言

\;\;\;\;\; 现代功率谱估计方法包括AR参数模型法(参数模型功率谱估计)、MVDR法(最小方差无失真响应法)、MUSIC法(多重信号分类法)。本文在总结各种方法的原理后在MATLAB平台上完成了仿真,完成了对信号频率的估计,仿真不同大小的阶数对信号频率估计的影响以及这三种方法之间的对比。


++提示:以下是本篇文章正文内容,转载请附上链接!++

一、AR参数模型

1 原理

\;\;\;\;\; AR的全称是auto-regressive(自回归)参数模型。该模型功率谱估计的基本思想是,认为随机过程 u ( n ) u(n) u(n)就是白噪声通过LTI离散时间系统得到的响应,利用观测样本值估计出模型的参数(即得到频率响应 H ( ω ) H(\omega) H(ω)),也就得到了随机过程 u ( n ) u(n) u(n)的功率谱 S ( ω ) = ∣ H ( ω ) ∣ 2 σ 2 S(\omega)=\mid H(\omega)\mid^2\sigma^2 S(ω)=∣H(ω)∣2σ2。
           \;\;\;\;\; 设 v ( n ) v(n) v(n)是零均值、方差为 σ 2 \sigma^2 σ2的白噪声。则 p p p 阶 AR( p p p) 模型的输人 v ( n v(n v(n)和输出 u ( n ) u(n) u(n)满足如下差分方程:
u ( n ) = − ∑ k = 1 p a k u ( n − k ) + v ( n ) u(n)=-\sum_{k=1}^pa_ku(n-k)+v(n) u(n)=−k=1∑paku(n−k)+v(n)那么AR模型的正则方程式可表示为
r u ( 0 ) + a 1 r u ( − 1 ) + ⋅ ⋅ ⋅ + a p r u ( − p ) = σ 2 r_u(0)+a_1r_u(-1)+\cdotp\cdotp\cdotp+a_pr_u(-p)=\sigma^2 ru(0)+a1ru(−1)+⋅⋅⋅+apru(−p)=σ2 和

r u ( 0 ) r u ( − 1 ) ⋯ r u ( − p + 1 ) r u ( 1 ) r u ( 0 ) ⋯ r u ( − p + 2 ) ⋮ ⋮ ⋱ ⋮ r u ( p − 1 ) r u ( p − 2 ) ⋯ r u ( 0 ) \] \[ a 1 a 2 ⋮ a p \] = \[ − r u ( 1 ) − r u ( 2 ) ⋮ − r u ( p ) \] \\begin{bmatrix}r_u(0)\&r_u(-1)\&\\cdots\&r_u(-p+1)\\\\r_u(1)\&r_u(0)\&\\cdots\&r_u(-p+2)\\\\\\vdots\&\\vdots\&\\ddots\&\\vdots\\\\r_u(p-1)\&r_u(p-2)\&\\cdots\&r_u(0)\\end{bmatrix}\\begin{bmatrix}a_1\\\\a_2\\\\\\vdots\\\\a_p\\end{bmatrix}=\\begin{bmatrix}-r_u(1)\\\\-r_u(2)\\\\\\vdots\\\\-r_u(p)\\end{bmatrix} ru(0)ru(1)⋮ru(p−1)ru(−1)ru(0)⋮ru(p−2)⋯⋯⋱⋯ru(−p+1)ru(−p+2)⋮ru(0) a1a2⋮ap = −ru(1)−ru(2)⋮−ru(p) 上式可简单地表示为 R p θ p = − r p {\\boldsymbol{R}}_p\\boldsymbol{\\theta}_p=-\\boldsymbol{r}_p Rpθp=−rp 其中, r p = \[ r u ( 1 ) r u ( 2 ) ⋯ r u ( p ) \] T \\boldsymbol r_{p}=\\begin{bmatrix}r_{u}(1)\&r_{u}(2)\&\\cdots\&r_{u}(p)\\end{bmatrix}\^{\\mathrm{T}} rp=\[ru(1)ru(2)⋯ru(p)\]T。因矩阵 R ρ {\\boldsymbol{R}}_{\\rho} Rρ 是非奇异的,对上式两边左乘 R p − 1 {\\boldsymbol{R}}_p\^{-1} Rp−1,有 θ p = − R p − 1 r p \\boldsymbol{\\theta}_p=-{\\boldsymbol{R}}_p\^{-1}\\boldsymbol r_{p} θp=−Rp−1rp 将 θ p \\boldsymbol{\\theta}_p θp 代人含有 σ 2 \\sigma\^2 σ2的那个式子中即可得到 σ 2 \\sigma\^2 σ2。            \\;\\;\\;\\;\\; 随机过程 u ( n ) u(n) u(n)的功率谱可由下式给出: S A R ( ω ) = σ 2 ∣ 1 + ∑ k = 1 p a k e − j ω k ∣ 2 S_{\\mathrm{AR}}(\\omega)=\\frac{\\sigma\^2}{\\left\|1+\\sum_{k=1}\^pa_k\\mathrm{e}\^{-\\mathrm{j}\\omega k}\\right\|\^2} SAR(ω)=∣1+∑k=1pake−jωk∣2σ2 ### 2 MATLAB仿真            \\;\\;\\;\\;\\; 仿真采用的信号为复正弦信号。参数设置和仿真结果如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cb1feae969bd4c25a85610a970e99654.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/312ca298d0624a81b66327b8113b5ceb.png)            \\;\\;\\;\\;\\; 从以上结果可看出,阶数为8时,20MHz和22MHz的两个信号不能被区分,但当阶数为16时,20MHz和22MHz的两个信号可以被区分,所以估计信号频率时阶数的选择十分重要。 ## 二、MVDR法 ### 1 原理            \\;\\;\\;\\;\\; 最小方差无失真响应(MVDR , minimum variance distortionless response)算法,是另一类信号频率估计方法。考虑有 M M M 个权系数的横向滤波器,如下图所示。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7902e6fb1a0e40128c0dc3a92f8311f2.png)            \\;\\;\\;\\;\\; 滤波器的输入为随机过程 x ( n ) x(n) x(n) ,输出为 y ( n ) = ∑ i = 0 M − 1 w i ∗ x ( n − i ) y(n)=\\sum_{i=0}\^{M-1}w_i\^\*x(n-i) y(n)=i=0∑M−1wi∗x(n−i)其中 , w i ,w_i ,wi 表示横向滤波器的权系数。定义输人信号向量和权向量分别为 x ( n ) = \[ x ( n ) x ( n − 1 ) ⋯ x ( n − M + 1 ) \] T w = \[ w 0 w 1 ⋯ w M − 1 \] T \\begin{aligned}\&\\boldsymbol{x}(n)=\\begin{bmatrix}x(n)\&x(n-1)\&\\cdots\&x(n-M+1)\\end{bmatrix}\^\\mathrm{T}\\\\\&\\boldsymbol{w}=\\begin{bmatrix}w_0\&w_1\&\\cdots\&w_{M-1}\\end{bmatrix}\^\\mathrm{T}\\end{aligned} x(n)=\[x(n)x(n−1)⋯x(n−M+1)\]Tw=\[w0w1⋯wM−1\]T 则输出可表示为 y ( n ) = w H x ( n ) = x T ( n ) w ∗ y(n)=\\boldsymbol w\^\\mathrm{H}\\boldsymbol x(n)=\\boldsymbol x\^\\mathrm{T}(n)\\boldsymbol w\^\* y(n)=wHx(n)=xT(n)w∗ 信号 y ( n ) y(n) y(n)的平均功率可以表示为 P = E { ∣ y ( n ) ∣ 2 } = E { w H x ( n ) x H ( n ) w } = w H R w P= \\mathbb{E} \\{ \\mid y( n) \\mid \^2\\} = \\mathbb{E} \\{ \\boldsymbol w\^\\mathrm{H} \\boldsymbol x( n) \\boldsymbol x\^\\mathrm{H} ( n) \\boldsymbol w\\} = \\boldsymbol w\^\\mathrm{H} \\boldsymbol {Rw} P=E{∣y(n)∣2}=E{wHx(n)xH(n)w}=wHRw其中,矩阵 R ∈ C M × M \\boldsymbol R\\in\\mathbb{C}\^{M\\times M} R∈CM×M为向量 x ( n ) \\boldsymbol x(n) x(n)的 M M M 维自相关矩阵,即 R = E { x ( n ) x H ( n ) } = \[ r ( 0 ) r ( 1 ) ⋯ r ( M − 1 ) r ( − 1 ) r ( 0 ) ⋯ r ( M − 2 ) ⋮ ⋮ ⋱ ⋮ r ( 1 − M ) r ( 2 − M ) ⋯ r ( 0 ) \] \\begin{gathered}\\boldsymbol R=E\\{\\boldsymbol x(n)\\boldsymbol x\^H(n)\\}=\\begin{bmatrix}r(0)\&r(1)\&\\cdots\&r(M-1)\\\\r(-1)\&r(0)\&\\cdots\&r(M-2)\\\\\\vdots\&\\vdots\&\\ddots\&\\vdots\\\\r(1-M)\&r(2-M)\&\\cdots\&r(0)\\end{bmatrix}\\end{gathered} R=E{x(n)xH(n)}= r(0)r(−1)⋮r(1−M)r(1)r(0)⋮r(2−M)⋯⋯⋱⋯r(M−1)r(M−2)⋮r(0)            \\;\\;\\;\\;\\; 当权向量取 w \^ M V D R = R \^ − 1 a ( ω ) a H ( ω ) R \^ − 1 a ( ω ) \\hat{w}_{\\mathrm{MVDR}}=\\frac{\\hat{\\boldsymbol R}\^{-1}\\boldsymbol{a}(\\omega)}{\\boldsymbol{a}\^{\\mathrm{H}}(\\omega)\\boldsymbol{\\hat{R}}\^{-1}\\boldsymbol{a}(\\omega)} w\^MVDR=aH(ω)R\^−1a(ω)R\^−1a(ω) 则 MVDR 谱估计为 P \^ M V D R ( ω ) = 1 a H ( ω ) R \^ − 1 a ( ω ) \\hat{P}_{\\mathrm{MVDR}}(\\omega)=\\frac1{\\boldsymbol a\^{\\mathrm{H}}(\\omega)\\hat{\\boldsymbol R}\^{-1}\\boldsymbol a(\\omega)} P\^MVDR(ω)=aH(ω)R\^−1a(ω)1 其中 a ( ω ) = \[ 1 e − j ω ⋯ e − j ω ( M − 1 ) \] T \\boldsymbol{a}(\\omega)=\\begin{bmatrix} 1 \& \\mathrm{e}\^{-\\mathrm{j}\\omega} \& \\cdots \& \\mathrm{e}\^{-\\mathrm{j}\\omega(M-1)} \\end{bmatrix}\^\\mathrm{T} a(ω)=\[1e−jω⋯e−jω(M−1)\]T 有信号的频率处会呈现出一个峰值。 ### 2 MATLAB仿真            \\;\\;\\;\\;\\; 仿真采用的信号为复正弦信号。参数设置和仿真结果如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5ebd59537d5742ebae97f1c63078e04f.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2cf0fb3e51114d36a08ad33dbe47d76e.png)            \\;\\;\\;\\;\\; 从以上结果可看出,阶数为16时,20MHz和22MHz的两个信号不能被区分,但当阶数为32时,20MHz和22MHz的两个信号可以被区分。 ## 三、MUSIC法 ### 1 原理            \\;\\;\\;\\;\\; 信号频率估计的多重信号分类(MUSIC,multiple signal classification)算法,该算法于1979年由R.O.MUSIC算法利用了信号子空间和噪声子空间的正交性,构造空间谱函数,通过谱峰搜索,估计信号频率。            \\;\\;\\;\\;\\; 根据 N N N 个观测样本值 x ( 0 ) , x ( 1 ) , . . . , x ( N − 1 ) x(0),x(1),...,x(N-1) x(0),x(1),...,x(N−1),估计自相关矩 R \^ ∈ C M × M \\hat{\\boldsymbol{R}}\\in\\mathbb{C}\^{M\\times M} R\^∈CM×M。对 R \^ \\hat{\\boldsymbol R} R\^ 进行特征分解,得到 M − K M-K M−K 个最小特征值对应的特征向量,即得到噪声子空间的向量,构造矩阵 G \\boldsymbol G G。 G = \[ u K + 1 u K + 2 ⋯ u M \] \\boldsymbol G=\\begin{bmatrix}\\boldsymbol u_{K+1} \& \\boldsymbol u_{K+2} \& \\cdots \& \\boldsymbol u_M\\end{bmatrix} G=\[uK+1uK+2⋯uM\] 在 \[ − π , π \] \[-\\pi,\\pi\] \[−π,π\]内改变 ω \\omega ω,计算下式的值, 峰值位置就是信号频率的估计值。 P \^ M U S I C ( ω ) = 1 a H ( ω ) G G H a ( ω ) = 1 ∑ i = K + 1 M ∣ a H ( ω ) u i ∣ 2 \\hat{P}_{\\mathrm{MUSIC}}(\\omega)=\\frac{1}{\\boldsymbol{a}\^{\\mathrm{H}}(\\omega)\\boldsymbol{G}\\boldsymbol{G}\^{\\mathrm{H}}\\boldsymbol{a}(\\omega)}=\\frac{1}{\\sum_{i=K+1}\^{M}\\mid\\boldsymbol{a}\^{\\mathrm{H}}(\\omega)\\boldsymbol{u}_{i}\\mid\^{2}} P\^MUSIC(ω)=aH(ω)GGHa(ω)1=∑i=K+1M∣aH(ω)ui∣21 ### 2 MATLAB仿真            \\;\\;\\;\\;\\; 仿真采用的信号为复正弦信号。参数设置和仿真结果如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d66db24a05fb4de78326611bde688f13.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7164f0f039b44ef5936eea4f42b1174d.png)            \\;\\;\\;\\;\\; 从以上结果可看出,阶数为8时,20MHz和22MHz的两个信号不能被区分,但当阶数为16时,20MHz和22MHz的两个信号可以被区分。 ## 四、3种方法的对比            \\;\\;\\;\\;\\; 参数设置如下,扫描点数和FFT点数相同,仿真结果如下。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/23908ded511845c985cbb084ac81626a.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6d1daec003bb458eab2c4dabd1075da3.png)            \\;\\;\\;\\;\\; 从以上结果可看出,MVDR信号频率估计的分辨率最低,其次是AR参数模型,MUSIC法的谱分辨率最高。 ## 五、MATLAB源代码 [现代谱估计AR参数模型法和MVDR法和MUSIC法超详细的MATLAB代码](https://download.csdn.net/download/m0_66360845/90235253)

相关推荐
rit84324992 小时前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
我找到地球的支点啦2 小时前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
Dev7z14 小时前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
fengfuyao98517 小时前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab
机器学习之心17 小时前
基于随机森林模型的轴承剩余寿命预测MATLAB实现!
算法·随机森林·matlab
rit843249919 小时前
基于MATLAB的环境障碍模型构建与蚁群算法路径规划实现
开发语言·算法·matlab
hoiii18719 小时前
MATLAB SGM(半全局匹配)算法实现
前端·算法·matlab
yong999020 小时前
MATLAB面波频散曲线反演程序
开发语言·算法·matlab
yugi9878381 天前
基于MATLAB的一键式EMD、EEMD、CEEMD和SSA信号去噪实现
开发语言·matlab·信号去噪
youcans_1 天前
【STM32-MBD】(15)Simulink 模型开发之三相互补 PWM
stm32·单片机·嵌入式硬件·matlab·foc