当前位置: 首页 > news >正文

经典功率谱估计的原理及MATLAB仿真(自相关函数BT法、周期图法、bartlett法、welch法)

经典功率谱估计的原理及MATLAB仿真(自相关函数BT法、周期图法、bartlett法、welch法)

文章目录

  • 前言
  • 一、BT法
  • 二、周期图法
  • 三、Bartlett法
  • 四、welch法
  • 五、MATLAB仿真
  • 六、MATLAB详细代码
  • 总结


前言

经典功率谱估计方法包括BT法(对自相关函数求傅里叶变换求功率谱)、周期图法、Bartlett法(分段求平均)、welch法(有重合分段求平均)。本文在总结各种方法的原理后将在MATLAB平台上进行仿真,完成对功率谱密度的估计。


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

一、BT法

u N ( 0 ) , u N ( 1 ) , ⋅ ⋅ ⋅ , u N ( N − 1 ) u_N(0),u_N(1),\cdotp\cdotp\cdotp,u_N(N-1) uN(0),uN(1),⋅⋅⋅,uN(N1) 为广义平稳随机过程 u ( n ) u(n) u(n) N N N 个观测值(为描述方便,本章观测样本的序号为从0到 N − 1 N-1 N1的整数),且设 u N ( n ) u_N(n) uN(n)其他时刻的值为零,则 u N ( n ) u_N(n) uN(n)可表示为

u N ( n ) = { u ( n ) , 0 ⩽ n ⩽ N − 1 0 , 其他 (1) u_N(n)=\begin{cases}u(n),&0\leqslant n\leqslant N-1\\\\0,&\text{其他}\end{cases} \tag{1} uN(n)= u(n),0,0nN1其他(1)

u ( n ) u(n) u(n) 的自相关函数 r ( m ) r(m) r(m) 可用时间平均进行估计,即

r ^ ( m ) = 1 N ∑ n = 0 N − 1 u N ( n ) u N ∗ ( n − m ) , ∣ m ∣ ⩽ N − 1 (2) \hat{r}(m)=\frac{1}{N}\sum_{n=0}^{N-1}u_N(n)u_N^*(n-m),\quad\mid m\mid\leqslant N-1 \tag{2} r^(m)=N1n=0N1uN(n)uN(nm),mN1(2)
根据维纳-辛钦定理,对由式(2) 估计得到的自相关函数 r ^ ( m ) \hat{r}(m) r^(m)求傅里叶变换,可得功率谱的估计为

S ^ B T ( ω ) = ∑ m = − ∞ ∞ r ^ ( m ) e − j ω m = ∑ m = − N + 1 N − 1 r ^ ( m ) e − j ω m (3) \hat{S}_{\mathrm{BT}}\left(\omega\right)=\sum_{m=-\infty}^{\infty}\hat{r}\left(m\right)\mathrm{e}^{-\mathrm{j}\omega m}=\sum_{m=-N+1}^{N-1}\hat{r}\left(m\right)\mathrm{e}^{-\mathrm{j}\omega m} \tag{3} S^BT(ω)=m=r^(m)ejωm=m=N+1N1r^(m)ejωm(3)

考虑到自相关函数 r ^ ( m ) \hat{r}(m) r^(m) ∣ m ∣ > N − 1 \mid m\mid>N-1 m∣>N1 时为零,且 r ^ ( m ) \hat{r}(m) r^(m) m m m 接近 N − 1 N-1 N1 时性能较差, 式(3)经常表示为

S ^ B T ( ω ) = ∑ m = − M M r ^ ( m ) e − j ω m , 0 ⩽ M ⩽ N − 1 (4) \hat{S}_{\mathrm{BT}}\left(\omega\right)=\sum_{m=-M}^M\hat{r}\left(m\right)\mathrm{e}^{-\mathrm{j}\omega m}\:,\quad0\leqslant M\leqslant N-1 \tag{4} S^BT(ω)=m=MMr^(m)ejωm,0MN1(4)

以此结果作为对理论功率谱 S ( ω ) S(\omega) S(ω) 的估计,因为这种方法估计出的功率谱是通过自相关函数间接得到的,所以此方法又称为间接法。

当时延m≥0时,r(m)的均值可以表示为

E ⁡ { r ^ ( m ) } = E { 1 N ∑ n = 0 N − 1 u N ( n ) u N ∗ ( n − m ) } = 1 N ∑ n = m N − 1 E { u N ( n ) u N ∗ ( n − m ) } = 1 N ∑ n = m N − 1 r ( m ) = N − m N r ( m ) (5) \begin{aligned} \operatorname{E}\{\hat{r}(m)\}& =\text{ E}\left\{\frac1N\sum_{n=0}^{N-1}u_N\left(n\right)u_N^*\left(n-m\right)\right\} \\ &=\frac1N\sum_{n=m}^{N-1}E\{u_N(n)u_N^*(n-m)\} \\ &=\frac1N\sum_{n=m}^{N-1}r\left(m\right) \\ &=\frac{N-m}Nr\left(m\right)\tag{5} \end{aligned} E{r^(m)}= E{N1n=0N1uN(n)uN(nm)}=N1n=mN1E{uN(n)uN(nm)}=N1n=mN1r(m)=NNmr(m)(5)

考虑到 m m m 的取值可正可负,所以有

E ⁡ { r ^ ( m ) } = N − ∣ m ∣ N r ( m ) (6) \operatorname{E}\{\hat{r}(m)\}=\frac{N-\mid m\mid}{N}r(m) \tag{6} E{r^(m)}=NNmr(m)(6)

BT法结论:
r ^ ( m ) \hat{r}(m) r^(m) r ( m ) r(m) r(m) 的渐近无偏估计。
r ^ ( m ) \hat{r}(m) r^(m) r ( m ) r(m) r(m) 的渐近一致估计。

二、周期图法

由于随机过程 u ( n ) u(n) u(n) N N N个观测值 u N ( n ) u_N(n) uN(n) 是确定信号,对其进行傅里叶变换,得

U N ( ω ) = ∑ n = 0 N − 1 u N ( n ) e − j ω n (7) U_N(\omega)=\sum_{n=0}^{N-1}u_N(n)\:\mathrm{e}^{-\mathrm{j}\omega n}\tag{7} UN(ω)=n=0N1uN(n)ejωn(7)

根据帕塞瓦尔定理,上式的模的平方是确定信号 u N ( n ) u_N(n) uN(n)的能量谱,对能量谱除以持续时间 N N N, 其结果应是 u N ( n ) u_N(n) uN(n) 的功率谱估计,将其作为随机过程 u ( n ) u(n) u(n)的功率谱的估计,表示为

S ^ P E R ( ω ) = 1 N ∣ U N ( ω ) ∣ 2 (8) \hat{S}_{\mathrm{PER}}(\omega)=\frac1N\mid U_N(\omega)\mid^2 \tag{8} S^PER(ω)=N1UN(ω)2(8)

该方法称为功率谱估计的周期图法(periodogram)。因为这种功率谱估计方法是直接通过观测数据的傅里叶变换求得的,称之为直接法。

周期图法结论:
r ^ ( m ) \hat{r}(m) r^(m) r ( m ) r(m) r(m) 的渐近无偏估计。
r ^ ( m ) \hat{r}(m) r^(m) 不是 r ( m ) r(m) r(m) 的一致估计,估计方差趋近于一个有限值。

三、Bartlett法

Bartlett法的基本步骤是,将 N N N 点的观测数据 u N ( n ) u_N(n) uN(n) 分为 L L L 段,每段数据的长度为 M M M, 整数 L L L M M M 满足

L = N M (9) L=\frac NM \tag{9} L=MN(9)

i i i 段数据加矩形窗后,有

u N i ( n ) = u ( n + ( i − 1 ) M ) w M ( R ) ( n ) , 0 ⩽ n ⩽ M − 1 , 1 ⩽ i ⩽ L (10) u_N^i(n)=u(n+(i-1)M)w_M^{(R)}(n)\:,\quad0\leqslant n\leqslant M-1,1\leqslant i\leqslant L \tag{10} uNi(n)=u(n+(i1)M)wM(R)(n),0nM1,1iL(10)
其中 , w M ( R ) ( n ) ,w_{M}^{(R)}(n) ,wM(R)(n) 是长度为 M M M 的矩形窗。

对于每段数据 u N i ( n ) u_{\mathbb{N}}^{i}\left(n\right) uNi(n), 先利用周期图法求得其功率谱 S ^ P E R i ( ω ) \hat{S}_{\mathrm{PER}}^i(\omega) S^PERi(ω), 限

S ^ P E R i ( ω ) = 1 M ∣ ∑ n = 0 M − 1 u N i ( n ) e − j ω n ∣ 2 , 1 ⩽ i ⩽ L (11) \hat{S}_{\mathrm{PER}}^i(\omega)=\frac{1}{M}\Big|\sum_{n=0}^{M-1}u_N^i(n)\:\mathrm{e}^{-\mathrm{j}\omega n}\Big|^2,\quad1\leqslant i\leqslant L\tag{11} S^PERi(ω)=M1 n=0M1uNi(n)ejωn 2,1iL(11)

然后计算各段功率谱估计的平均,得到平均周期图 S ‾ P E R ( ω ) \overline{\mathcal{S}}_{\mathrm{PER}}\left(\omega\right) SPER(ω), 即

S ‾ P E R ( ω ) = 1 L ∑ i = 1 L S ^ P E R i ( ω ) = 1 L M ∑ i = 1 L ∣ ∑ n = 0 M − 1 u N i ( n ) e − j ω n ∣ 2 (12) \overline{S}_{\mathrm{PER}}\left(\omega\right)=\frac{1}{L}\sum_{i=1}^{L}\hat{S}_{\mathrm{PER}}^{i}\left(\omega\right)=\frac{1}{LM}\sum_{i=1}^{L}\Big|\sum_{n=0}^{M-1}u_{N}^{i}\left(n\right)\mathrm{e}^{-\mathrm{j}\omega n}\Big|^{2}\tag{12} SPER(ω)=L1i=1LS^PERi(ω)=LM1i=1L n=0M1uNi(n)ejωn 2(12)

Bartlett法结论:
Bartlett功率谱估计使得数据点数从 N N N 减小为 M = N / L M=N/L M=N/L, 于是窗函数的频谱宽度增大为周期图法的 L L L 倍,因此频率分辨率下降为原来的 1 / L 1/L 1/L
Bartlett功率谱估计的方差减小为周期图法的 1 / L 1/L 1/L, 因此Bartlett功率谱估计较周期图法的结果更为平滑。

四、welch法

Welch法也对 N N N点的信号 u N ( n ) u_N(n) uN(n) 进行分段,但允许分段时每段信号样本重叠。若每段的样本长度为 M M M, 信号被分为 L L L 段,取相邻两段的信号样本重叠 50 % 50\% 50% L L L满足

L = N − M / 2 M / 2 (13) L=\frac{N-M/2}{M/2}\tag{13} L=M/2NM/2(13)

将每段信号 u N i ( n ) u_N^i(n) uNi(n) 和窗函数 w ( n ) w(n) w(n)(可以采用矩形窗、三角窗、汉宁窗或海明窗等)相乘,然后按式(11) 得到每段信号的功率谱估计为

S ^ P E R i ( ω ) = 1 M ∣ ∑ n = 0 M − 1 u N i ( n ) w ( n ) e − j ω n ∣ 2 (14) \hat{S}_{\mathrm{PER}}^i(\omega)=\frac{1}{M}\Big|\sum_{n=0}^{M-1}u_N^i(n)w(n)\:\mathrm{e}^{-\mathrm{j}\omega n}\Big|^2\tag{14} S^PERi(ω)=M1 n=0M1uNi(n)w(n)ejωn 2(14)

由此得到修正的周期图 S ‾ P E R ( ω ) \overline{\mathcal{S}}_{\mathrm{PER}}\left(\omega\right) SPER(ω)
S ‾ P E R ( ω ) = 1 L ∑ i = 1 L S ^ P E R i ( ω ) = 1 L M ∑ i = 1 L ∣ ∑ n = 0 M − 1 u N i ( n ) w ( n ) e − j ω n ∣ 2 (15) \overline{\mathcal{S}}_{\mathrm{PER}}\left(\omega\right)=\frac{1}{L}\sum_{i=1}^{L}\hat{S}_{\mathrm{PER}}^i(\omega)=\frac{1}{LM}\sum_{i=1}^{L}\:\Big|\:\sum_{n=0}^{M-1}u_{N}^{i}(n)w(n)\:\mathrm{e}^{-\mathrm{j}\omega n}\:\Big|^{2}\tag{15} SPER(ω)=L1i=1LS^PERi(ω)=LM1i=1L n=0M1uNi(n)w(n)ejωn 2(15)

Welch法结论:
Welch方法允许分段数据样本的重叠,于是可以得到更多的周期图估计,从而进一步减小估计的功率谱密度的方差。而与使用矩形窗实现数据分段的Bartlett方法相比,Welch方法可以使用多种窗函数。通过窗函数加权,可以减小每个分段起始和结束位置附近的样本在估计中的作用,从而减小了相邻样本段之间的相关性。所以,Welch 方法可以更好地控制功率谱密度估计的方差特性。

五、MATLAB仿真

设随机过程 u N ( n ) u_N(n) uN(n)由3个实正弦信号加噪声构成,为
u N ( n ) = ∑ k = 1 3 s k ( n ) + v ( n ) (16) u_N(n)=\sum_{k=1}^3s_k(n)+v(n)\tag{16} uN(n)=k=13sk(n)+v(n)(16)
其中, s k ( n ) = A k cos ⁡ ( 2 π f k n + φ k ) , k = 1 , 2 , 3 s_k( n) = A_k\cos ( 2\pi f_kn+ \varphi _k) , k= 1, 2, 3 sk(n)=Akcos(2πfkn+φk),k=1,2,3,其归一化频率分别是 f 1 = 0.1 , f 2 = 0.25 f_1=0.1,f_2=0.25 f1=0.1,f2=0.25 f 3 = 0.27 , φ k f_3=0.27,\varphi_k f3=0.27,φk是相互独立并在 [ 0 , 2 π ] \begin{bmatrix}0,2\pi\end{bmatrix} [0,2π]上服从均匀分布的随机相位; v ( n ) v(n) v(n)是均值为0、方差 σ 2 = 1 \sigma^2=1 σ2=1的实高斯白噪声序列。3个信号的信噪比分别为 S N R 1 = 30 \mathrm{SNR}_1=30 SNR1=30dB , S N R 2 = 30 ,\mathrm{SNR}_2=30 ,SNR2=30dB , S N R 3 = 27 ,\mathrm{SNR}_3=27 ,SNR3=27dB。
参数设置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过以上结果可以看出点数对信号分辨率的影响,点数加大时,可以提高分辨率,我这里就不贴图了,感兴趣的可以自己下载代码验证。

六、MATLAB详细代码

经典功率谱估计超详细的MATLAB代码(BT法和周期图法和bartlett法和welch法)

总结

例如:以上就是今天要讲的内容,本文介绍了BT法、周期图法、Bartlett法、welch法四种经典功率谱估计方法,并在MATLAB上面完成了功率谱估计仿真。


http://www.mrgr.cn/news/57758.html

相关文章:

  • 上传大文件到Github
  • 揭秘拆分盘投资:深入逻辑、风险洞察与实战策略
  • Vue项目中实现拖拽上传附件:原生JS与Element UI组件方法对比
  • 2000-2022年各省财政收支明细数据
  • day7:软件包管理
  • 安全见闻(7)——开阔眼界,不做井底之蛙
  • 机器学习在智能水泥基复合材料中的应用与实践
  • 在 Go 中,如何实现一个带过期时间的字典映射
  • 富格林:可信操作助力有效追损
  • C/C++每日一练:实现冒泡排序
  • uniapp实现多文件下载,保存到本地
  • 凯撒密码-图形化实现(Scratch)
  • LeetCode常用算法模板
  • 国内 Docker 镜像加速与 GitHub 加速服务:CNPROXY.TOP
  • 【资深码农】环境搭建篇
  • 【算法】Bellman-Ford单源最短路径算法(附动图)
  • Orthanc局域网访问、IP访问、远程访问服务器
  • Linux的目录结构 常用基础命令(2)
  • 【网络】:网络基础
  • 解决url含%导致404错误
  • flink使用hikariCP数据库连接池,导致连接泄露
  • 【含文档】基于ssm+jsp的爱旅行平台的设计与实现(含源码+数据库+lw)
  • uboot源码makefile基础及启动流程梳理
  • 2024年必收藏!最全 禅道 项目管理软件各版本安装部署全攻略
  • 网络地址和本地网络地址
  • [ComfyUI]Flux:超赞古风少女LORA,唯美江南水乡小桥流水轻舟江南美人