几种经典功率谱密度估计方法的记录(从滤波的视角出发)

一. 概述

随机信号的功率谱估计一直是常见的任务, 此文将一个统一的滤波视角, 罗列一下周期图谱估计(傅立叶变换), 自回归(AR)模型, 最小方差无失真响应(MVDR)法, 正交子空间(MUSIC)方法的公式, 看一下它们是如何对自相关矩阵的特征向量, 特征向量进行加权的.
本文不涉及原理的推导, 具体原理和统计特性分析可以参考: <<现代数字信号处理及其应用 (何子述.等)>>.

1.1 前提!

一般来说, 只针对广义平稳随机过程; 由于样本统计特性都是用时间平均计算的, 故还需要满足各态历经性.

二. 统一的角度: 滤波

由于不同的专业或课本都有不同的说法, 此处为了统一, 就采用课本中的滤波视角, 即对于一段有限的数字信号向量 x ⃗ ( n ) \vec{\boldsymbol x}(n) x (n), 想用一个权向量(列向量) w ⃗ \vec \boldsymbol w w 对其滤波(相乘), 来提取出某一个频率的(相对)功率谱密度值: P = E { ∣ w ⃗ H x ⃗ ( n ) ∣ 2 } P = \mathbb{E}\{ | \vec{\boldsymbol w}^H \vec{\boldsymbol x}(n) |^2\} P=E{w Hx (n)2}. 对于不同的频率成分, 只要另 w ⃗ → w ⃗ ( ω ) \vec \boldsymbol w \rightarrow \vec \boldsymbol w (\omega) w w (ω) 即可, 则功率谱密度为:
P ( ω ) = E { ∣ w ⃗ ( ω ) H x ⃗ ( n ) ∣ 2 } = w ⃗ ( ω ) H R   w ⃗ ( ω ) . P(\omega) = \mathbb{E}\{ | \vec{\boldsymbol w}(\omega)^H \vec{\boldsymbol x}(n) |^2\} = \vec{\boldsymbol w}(\omega)^H \boldsymbol{R}\ \vec{\boldsymbol w}(\omega). P(ω)=E{w (ω)Hx (n)2}=w (ω)HR w (ω).

2.1 一些符号定义

上式中粗体为矩阵或向量, 非粗体一般为标量,

  • x ⃗ ( n ) = [ x ( n )    x ( n − 1 )    x ( n − 2 )    ⋯    x ( n − M + 1 ) ] ⊤ \vec{\boldsymbol x}(n)=[x(n)\;x(n-1)\;x(n-2)\;\cdots \;x(n-M+1)]^\top x (n)=[x(n)x(n1)x(n2)x(nM+1)] n n n 时刻下采样到的列向量, 长为 M M M;
  • R = E { x ⃗ ( n ) x ⃗ ( n ) H } \boldsymbol{R}=\mathbb E \{\vec{\boldsymbol x}(n)\vec{\boldsymbol x}(n)^H\} R=E{x (n)x (n)H} 是它的自相关矩阵(平稳), 同时它具有: Hermitian 正定, Toeplitz 的性质. 如果对他做一个谱分解/酉相似对角化/特征值分解, 并把特征值从大到小排列, 则有
    R = Q Λ Q H = ∑ k = 1 M λ k q ⃗ k q ⃗ k H \boldsymbol{R}=\boldsymbol{Q}\boldsymbol{\Lambda}\boldsymbol{Q}^H=\sum_{k=1}^{M}\lambda_k \vec \boldsymbol q_k \vec \boldsymbol q_k^H R=QΛQH=k=1Mλkq kq kH

另外, 有一种很常见的 w ⃗ ( ω ) \vec \boldsymbol w (\omega) w (ω), 即标准频率列向量 a ⃗ ( ω ) = [ 1    e j ω    e j 2 ω    e j 3 ω ⋯    e j ( M − 1 ) ω ] ⊤ \vec \boldsymbol a (\omega)=[1\;e^{j\omega}\;e^{j2\omega}\;e^{j3\omega}\cdots \;e^{j(M-1)\omega}]^\top a (ω)=[1ejωej2ωej3ωej(M1)ω].

基于此, 标准 DTFT 变换可以写为:
D T F T [ x ⃗ ] = X ( ω ) = ∑ n = − ∞ + ∞ x ( n ) e − j ω n = a ⃗ ( ω ) H x ⃗ , \mathrm{DTFT}[\vec{\boldsymbol x}]=X(\omega) = \sum_{n=-\infin}^{+\infin} x(n)e^{-j\omega n} = \vec \boldsymbol a (\omega)^H \vec{\boldsymbol x}, DTFT[x ]=X(ω)=n=+x(n)ejωn=a (ω)Hx ,
其中 x ⃗ = x ⃗ ( M − 1 ) = [ x ( M − 1 )    x ( M − 1 ) ⋯ x ( 1 )    x ( 0 ) ] ⊤ \vec{\boldsymbol x} = \vec{\boldsymbol x}(M-1)=[x(M-1)\;x(M-1)\cdots x(1)\;x(0)]^\top x =x (M1)=[x(M1)x(M1)x(1)x(0)], 只有时间 0 ∼ M − 1 0\sim M-1 0M1 内有值, 其余为 0 0 0.

三. 几种经典的功率谱密度估计方法

3.1 经典法–周期图谱估计(直接法)

基本思想

即对序列进行傅立叶变换并取模方. 这种方式相当于认为给这一段随机信号外插 0 0 0, 显然精度不会很好, 方差特性也不大行.

有一个和这个很接近的方法是 BT 法 (间接法), 它是将序列先求自相关函数后(此时可以取中间一部分), 再进行傅立叶变换, 根据维纳辛钦定理, 自相关函数的傅立叶变换即为功率谱密度. 两种方法在 BT 保留全部自相关函数时完全等价. 更详细分析可以看课本.

权向量

没错, 此法的权向量就是:
w ⃗ ( ω ) = a ⃗ ( ω ) = [ 1    e j ω    e j 2 ω    e j 3 ω ⋯    e j ( M − 1 ) ω ] ⊤ . \vec \boldsymbol w (\omega) = \vec \boldsymbol a (\omega) = \left[1\;e^{j\omega}\;e^{j2\omega}\;e^{j3\omega}\cdots \;e^{j(M-1)\omega}\right]^\top. w (ω)=a (ω)=[1ejωej2ωej3ωej(M1)ω].

功率谱密度

P ( ω ) = E { ∣ a ⃗ ( ω ) H x ⃗ ( n ) ∣ 2 } = E { ∣ D T F T [ x ⃗ ( n ) ] ∣ 2 } = a ⃗ ( ω ) H R   a ⃗ ( ω ) = ∑ k = 1 M λ k ∣ a ⃗ ( ω ) H q ⃗ k ∣ 2 P(\omega) = \mathbb{E}\{ | \vec{\boldsymbol a}(\omega)^H \vec{\boldsymbol x}(n) |^2\} =\mathbb{E}\{ |\mathrm{DTFT}[\vec{\boldsymbol x}(n)]|^2 \}\\=\vec{\boldsymbol a}(\omega)^H \boldsymbol{R}\ \vec{\boldsymbol a}(\omega)=\sum_{k=1}^{M} \lambda_k|\vec{\boldsymbol a}(\omega)^H \vec{\boldsymbol q}_k|^2 P(ω)=E{a (ω)Hx (n)2}=E{DTFT[x (n)]2}=a (ω)HR a (ω)=k=1Mλka (ω)Hq k2
此处的 n n n 其实取的是 M − 1 M-1 M1, 因为基本都把第一个采样点为时间起点. 周期图法求某个频率 ω \omega ω 处的功率密度的做法其实是, 把一个固定的频率向量向自相关矩阵的特征向量上投影, 再把内积的模方用特征值加权后相加.

PS: 虽然实际计算时, 若只有一个采样样本, 是没有取期望的操作的; 但为了分析统计特性, 假设有无穷多个 M M M 长的样本(外插为 0 + 0 j 0+0j 0+0j) 做平均, 即取期望. 以下算法一样, 实际情况下的自相关矩阵都要用数据进行估计, 而公式中都假设为统计情况下的矩阵.

3.2 基于自回归(AR)模型的功率谱估计

基本思想

上一种方式是完全没有任何先验, 直接根据一次观测进行估计. 这个方法是引入了先验知识. 首先, 从 Wold 分解定理出发, 我们认为一个随机过程通常为具有连续谱的离散时间规则随机过程 (即没有若干较强的复正弦信号); 进而, 如果还满足 Paley-Wiener 条件, 则它可以由一个白噪声激励一个最小相位 LTI 系统产生. 利用信号系统的知识, 此时就可以把白噪声(输入)和此随机过程(输出)用差分方程联系起来, 即可以写成一个 ARMA 模型, 此方法只取一个 AR, 此时系统函数是一个全极点模型.
此模型由于可以用公式无限递推, 所以相当于对一段随机过程样本能做很长很长的外插, 而不是暴力补零.

权向量

可以从功率谱密度结论凑得,
w ⃗ ( ω ) = R p + 1 − 1 / 2 ⋅ e ⃗ 1 a ⃗ ( ω ) H ⋅ R p + 1 − 1 ⋅ σ e ⃗ 1 \vec \boldsymbol w (\omega) = \frac{\boldsymbol{R}^{-1/2}_{p+1} \cdot \vec \boldsymbol e_1}{\vec{\boldsymbol a}(\omega)^H \cdot\boldsymbol{R}^{-1}_{p+1} \cdot \sigma \vec \boldsymbol e_1} w (ω)=a (ω)HRp+11σe 1Rp+11/2e 1
其中, p < < M p<<M p<<M 为远小于样本点数的 AR 模型阶数, e ⃗ 1 = [ 1   0   0   0 ⋯ 0 ] ⊤ \vec \boldsymbol e_1=[1\ 0\ 0\ 0\cdots 0]^\top e 1=[1 0 0 00] 为仅第一个元素为 1 1 1 的列向量, σ \sigma σ 为白噪声的功率开平方根.

功率谱密度

P ( ω ) = σ 2 ∣ 1 + ∑ k = 1 p a k e − j ω k ∣ 2 = θ ⃗ p + 1 = [ 1   a 1   a 2 ⋯ a p ] ⊤ σ 2 ∣ a ⃗ ( ω ) H θ ⃗ p + 1 ∣ 2 = R p + 1 − 1 = ∑ k = 1 p + 1 λ k q ⃗ k q ⃗ k H θ ⃗ p + 1 = ( R p + 1 ∗ ) − 1 ⋅ σ e ⃗ 1 σ 2 ∣ a ⃗ ( ω ) H R p + 1 − 1 ⋅ σ e ⃗ 1 ∣ 2 = 1 ∣ ∑ k = 1 p + 1 σ λ k q k 1 ∗ ⋅ a ⃗ ( ω ) H q ⃗ k ∣ 2 \begin{aligned} P(\omega) &= \frac{\sigma^2}{|1+\sum_{k=1}^{p} a_ke^{-j\omega k}|^2} \xlongequal[]{\vec \boldsymbol \theta_{p+1}=[1\ a_1\ a_2\cdots a_p]^\top} \frac{\sigma^2}{|\vec{\boldsymbol a}(\omega)^H \vec \boldsymbol \theta_{p+1}|^2} \\&\xlongequal[\boldsymbol R_{p+1}^{-1}=\sum_{k=1}^{p+1}\lambda_k \vec \boldsymbol q_k \vec \boldsymbol q_k^H]{\vec \boldsymbol \theta_{p+1}=(\boldsymbol R^*_{p+1})^{-1} \cdot \sigma \vec \boldsymbol e_1} \frac{\sigma^2}{|\vec{\boldsymbol a}(\omega)^H \boldsymbol R_{p+1}^{-1} \cdot \sigma \vec \boldsymbol e_1|^2} \\ &=\frac{1}{| \sum_{k=1}^{p+1} \frac{\sigma}{\lambda_k} q_{k1}^*\cdot \vec{\boldsymbol a}(\omega)^H \vec{\boldsymbol q}_k|^2} \end{aligned} P(ω)=1+k=1pakejωk2σ2θ p+1=[1 a1 a2ap] a (ω)Hθ p+12σ2θ p+1=(Rp+1)1σe 1 Rp+11=k=1p+1λkq kq kHa (ω)HRp+11σe 12σ2=k=1p+1λkσqk1a (ω)Hq k21
其中, q k 1 q_{k1} qk1 表示 q ⃗ k \vec \boldsymbol q_k q k 的第 1 1 1 个元素. 式子中的额外标注均遵循课本表示, 如 θ ⃗ p + 1 \vec \boldsymbol \theta_{p+1} θ p+1 可由 Yule-Walker 方程求得. 我们能看到, 这种方式的 PSD 和 p + 1 p+1 p+1 阶自相关矩阵特征向量有关.

3.3 最小方差无失真响应(MVDR)

基本思想

这个算法在很多地方都有, 如波束成形, 空域滤波等等. 它的基本思想恰如其名. 首先, MVDR 引入的先验假设是输入随机过程为 K K K 个复正弦信号加上白噪声:
u ( n ) = ∑ k = 1 K α k e j ω k n + v ( n ) u(n)=\sum_{k=1}^{K} \alpha_{k} \mathrm{e}^{\mathrm{j} \omega_{k} n}+v(n) u(n)=k=1Kαkejωkn+v(n)
它这样来选取某个感兴趣频率下的权向量 w ⃗ ( ω 1 ) \vec \boldsymbol w(\omega_1) w (ω1): 使这个复正弦信号 e j ω 1 n e^{j\omega_1 n} ejω1n 能无失真通过滤波器, 同时最小化此时的平均输出功率, 也就抑制了其他频率成分和噪声, 最后写成一个简单的凸优化问题来求解. 它的倒数是 0 ∼ M 0\sim M 0M 阶 AR 方法倒数的和, 有点调和平均的意思, 所以它的分辨率可能比 AR 方法稍低.

权向量

可以用拉格朗日乘子法求得:
w ⃗ ( ω ) = R − 1 a ⃗ ( ω ) a ⃗ ( ω ) H ⋅ R − 1 a ⃗ ( ω ) \vec \boldsymbol w(\omega) = \frac{\boldsymbol{R}^{-1}\vec{\boldsymbol a}(\omega)}{\vec{\boldsymbol a}(\omega)^H \cdot\boldsymbol{R}^{-1}\vec{\boldsymbol a}(\omega)} w (ω)=a (ω)HR1a (ω)R1a (ω)

(相对)功率谱密度

P ( ω ) = w ⃗ ( ω ) H R   w ⃗ ( ω ) = 1 a ⃗ ( ω ) H ⋅ R − 1 a ⃗ ( ω ) = 1 ∑ k = 1 M 1 λ k ∣ a ⃗ ( ω ) H q ⃗ k ∣ 2 P(\omega) = \vec \boldsymbol w(\omega)^H \boldsymbol R\ \vec \boldsymbol w(\omega)=\frac{1}{\vec{\boldsymbol a}(\omega)^H \cdot\boldsymbol{R}^{-1}\vec{\boldsymbol a}(\omega)}=\frac{1}{\sum_{k=1}^{M}\frac{1}{\lambda_k}|\vec{\boldsymbol a}(\omega)^H \vec{\boldsymbol q}_k|^2} P(ω)=w (ω)HR w (ω)=a (ω)HR1a (ω)1=k=1Mλk1a (ω)Hq k21

3.4 基于特征子空间的多重信号分类(MUSIC)算法

基本思想

这是一种超分辨率的算法, 它同样也是基于信号为 K K K 个复正弦+白噪声的假设. 它将自相关矩阵的特征值分解结果(对角阵中的特征值从大到小排)中的酉矩阵 Q \boldsymbol Q Q 的前面 K K K 列视为信号子空间, 包含了噪声+信号, 对应的特征值比较大; 而剩下的列构成了噪声子空间 G G G, 仅仅包含噪声, 它们对应的特征值比较小, 就是白噪声的方差. 由于正交性, 如果含有频率 ω 1 \omega_1 ω1, 则 a ⃗ ( ω 1 ) \vec \boldsymbol a(\omega_1) a (ω1) 会和 G G G 正交, 所以 a ⃗ ( ω 1 ) \vec \boldsymbol a(\omega_1) a (ω1) G G G 的所有列的内积的模方和就会很小, 取个倒数就会很大. 就这样构造一个展现频率成分强度的函数, 来展示此样本的 PSD 趋势, 不是真的功率谱.

方便看懂书上推导的结论:
R a n g e ( A P A H ) ⊆ R a n g e ( A ) \mathrm{Range}(APA^H) \subseteq \mathrm{Range}(A) Range(APAH)Range(A), 又因二者秩相同都为信号数 K K K, 所以二者的值域空间相同, 即 R a n g e ( A P A H ) = R a n g e ( A ) \mathrm{Range}(APA^H) = \mathrm{Range}(A) Range(APAH)=Range(A).
由于 A P A H APA^H APAH 为纯信号, 和噪声独立, 所以它和噪声子空间正交, 也就是 A A A 与噪声子空间正交, 也就是 A A A 中的每一列和 G G G 的任意一列都正交.

权向量

可以凑出来:
w ⃗ ( ω ) = G Λ N − 1 / 2 G H a ⃗ ( ω ) a ⃗ ( ω ) H G G H a ⃗ ( ω ) \vec \boldsymbol w(\omega) = \frac{\boldsymbol G \boldsymbol \Lambda^{-1/2}_N \boldsymbol G^H \vec \boldsymbol a(\omega)}{\vec \boldsymbol a(\omega)^H \boldsymbol G \boldsymbol G^H \vec \boldsymbol a(\omega)} w (ω)=a (ω)HGGHa (ω)GΛN1/2GHa (ω)
其中, Λ N ∈ R + ( M − K ) × ( M − K ) \boldsymbol \Lambda_N \in \mathbb R_+^{(M-K)\times (M-K)} ΛNR+(MK)×(MK) 为噪声子空间对应的特征值构成的对角阵, 也就是自相关矩阵特征值构成的, 从大到小排好的对角阵 Λ \boldsymbol \Lambda Λ 的右下角一块儿.

功率谱密度(伪谱, 假的)

P ~ ( ω ) = 1 a ⃗ ( ω ) H G G H a ⃗ ( ω ) = 1 ∑ k = K + 1 M ∣ a ⃗ ( ω ) H q ⃗ k ∣ 2 \tilde P(\omega) = \frac{1}{\vec \boldsymbol a(\omega)^H \boldsymbol G \boldsymbol G^H \vec \boldsymbol a(\omega)}=\frac{1}{\sum_{k=K+1}^{M} |\vec{\boldsymbol a}(\omega)^H \vec{\boldsymbol q}_k|^2} P~(ω)=a (ω)HGGHa (ω)1=k=K+1Ma (ω)Hq k21
可以看出, 它直接找出了噪声部分的特征向量, 抓住了主要矛盾.

四. 后记

功率谱估计是数字信号处理的第一站, 除了知道一些基本算法及其原理外, 我们需要从其中归纳出共性的东西:

  • 随机信号按时间采样得到的 M M M 维随机向量(零均值), 从本文看得到, 它经常和自相关矩阵的特征向量有关; 进一步, 它在自相关矩阵特征值分解得到的酉矩阵 Q Q Q 张成的空间中, 即它是各个归一化特征向量的加权和, 这就是所谓的 Karhunen-Loeve 展开.
  • 信号在高维下是在一个流形(Manifold)上, 所以我们不能仅仅认为多采样几个点只是多了几个点, 能提高传统估计方法的性能; 而是从高维空间去认识信号, 就像 MUSIC 的思想, 简单却十分强大.

另外, 机器学习中也常常认为数据分布于一个流形上, 用高维思维去看待问题会很有帮助.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值