Projection Approximation Subspace Tracking PAST 算法
Projection Approximation Subspace Tracking PAST 算法
- PAST 算法
- 建立模型
- 闭式解与递推
- 算法步骤
- O-PAST 算法
- 建立模型
- 闭式解与递推
- 代码实现
PAST 算法
建立模型
在线估计一个映射矩阵 W∈CM×K\mathbf{W}\in\mathbb{C}^{M\times K}W∈CM×K,使得对于观测序列 x(i)∈CM\mathbf{x}(i)\in\mathbb{C}^{M}x(i)∈CM 和对应的低维投影向量 y(i)∈CK\mathbf{y}(i)\in\mathbb{C}^Ky(i)∈CK 在 ttt 时刻的最小二乘损失函数最小:
Jt(W)=∑i=1tβt−i∥x(i)−Wy(i)∥2J_t(\mathbf{W})=\sum_{i=1}^{t}\beta^{t-i}\left\|\mathbf{x}(i)-\mathbf{W}\mathbf{y}(i)\right\|^2 Jt(W)=i=1∑tβt−i∥x(i)−Wy(i)∥2
其中 y(i)=WH(t−1)x(i)\mathbf{y}(i) = \mathbf{W}^H(t-1)\mathbf{x}(i)y(i)=WH(t−1)x(i) 以及 0<β<10<\beta<10<β<1。
闭式解与递推
把 Jt(W)J_t(\mathbf{W})Jt(W) 对 W\mathbf{W}W 求导并令导数为零:
∂Jt∂W∗=−∑i=1tβt−i[x(i)−Wy(i)]yH(i)=0M×K\frac{\partial J_t}{\partial \mathbf{W}^*} = -\sum_{i=1}^t \beta^{t-i}\left[\mathbf{x}(i)-\mathbf{W}\mathbf{y}(i)\right]\mathbf{y}^H(i) = \mathbf{0}_{M\times K} ∂W∗∂Jt=−i=1∑tβt−i[x(i)−Wy(i)]yH(i)=0M×K
得到正规方程:
∑i=1tβt−ix(i)yH(i)=W(t)∑i=1tβt−iy(i)yH(i)\sum_{i=1}^t \beta^{t-i}\mathbf{x}(i)\mathbf{y}^H(i) = \mathbf{W}(t) \sum_{i=1}^t \beta^{t-i}\mathbf{y}(i)\mathbf{y}^H(i) i=1∑tβt−ix(i)yH(i)=W(t)i=1∑tβt−iy(i)yH(i)
即:
W(t)=Cxy(t)Cyy−1(t)\mathbf{W}(t) = \mathbf{C}_{xy}(t)\mathbf{C}_{yy}^{-1}(t) W(t)=Cxy(t)Cyy−1(t)
其中 Cxy(t)=∑i=1tβt−ix(i)yH(i)\mathbf{C}_{xy}(t) = \sum_{i=1}^t \beta^{t-i}\mathbf{x}(i)\mathbf{y}^H(i)Cxy(t)=∑i=1tβt−ix(i)yH(i) 以及 Cyy(t)=∑i=1tβt−iy(i)yH(i)\mathbf{C}_{yy}(t) = \sum_{i=1}^t \beta^{t-i}\mathbf{y}(i)\mathbf{y}^H(i)Cyy(t)=∑i=1tβt−iy(i)yH(i)。
由定义可得:
Cxy(t)=βCxy(t−1)+xyHCyy(t)=βCyy(t−1)+yyH\begin{aligned} \mathbf{C}_{xy}(t) &= \beta\mathbf{C}_{xy}(t-1)+\mathbf{x}\mathbf{y}^H \\ \mathbf{C}_{yy}(t) &= \beta\mathbf{C}_{yy}(t-1)+\mathbf{y}\mathbf{y}^H \end{aligned} Cxy(t)Cyy(t)=βCxy(t−1)+xyH=βCyy(t−1)+yyH
其中 x=x(t)\mathbf{x} = \mathbf{x}(t)x=x(t) 以及 y=y(t)\mathbf{y} = \mathbb{y}(t)y=y(t)。
接下来令 P(t)=Cyy−1(t−1)\mathbf{P}(t) = \mathbf{C}_{yy}^{-1}(t-1)P(t)=Cyy−1(t−1),对 P(t)\mathbf{P}(t)P(t) 应用 Woodbury 定理:
P(t)=(βCyy(t−1)+yyH)−1=β−1[P(t−1)−P(t−1)yyHP(t−1)β+yHP(t−1)y]\begin{aligned} \mathbf{P}(t) &=\left(\beta\mathbf{C}_{yy}(t-1)+\mathbf{y}\mathbf{y}^H\right)^{-1}\\ &=\beta^{-1}\left[\mathbf{P}(t-1)-\frac{\mathbf{P}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\right] \end{aligned} P(t)=(βCyy(t−1)+yyH)−1=β−1[P(t−1)−β+yHP(t−1)yP(t−1)yyHP(t−1)]
由此可得:
W(t)=Cxy(t)P(t)=[βCxy(t−1)+xyH]P(t)\mathbf{W}(t) = \mathbf{C}_{xy}(t)\mathbf{P}(t) = \left[\beta\mathbf{C}_{xy}(t-1)+\mathbf{x}\mathbf{y}^H\right]\mathbf{P}(t) W(t)=Cxy(t)P(t)=[βCxy(t−1)+xyH]P(t)
其中:
βCxy(t−1)P(t)=Cxy(t−1)[P(t−1)−P(t−1)yyHP(t−1)β+yHP(t−1)y]=W(t−1)[IK−yyHP(t−1)β+yHP(t−1)y]\begin{aligned} \beta\mathbf{C}_{xy}(t-1)\mathbf{P}(t)&=\mathbf{C}_{xy}(t-1)\left[\mathbf{P}(t-1)-\frac{\mathbf{P}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\right]\\ &=\mathbf{W}(t-1)\left[\mathbf{I}_K-\frac{\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\right] \end{aligned} βCxy(t−1)P(t)=Cxy(t−1)[P(t−1)−β+yHP(t−1)yP(t−1)yyHP(t−1)]=W(t−1)[IK−β+yHP(t−1)yyyHP(t−1)]
以及:
P(t)y=β−1[P(t−1)y−P(t−1)yyHP(t−1)yβ+yHP(t−1)y]=β−1βP(t−1)y+P(t−1)yyHP(t−1)y−P(t−1)yyHP(t−1)yβ+yHP(t−1)y=P(t−1)yβ+yHP(t−1)y\begin{aligned} \mathbf{P}(t)\mathbf{y} &= \beta^{-1}\left[\mathbf{P}(t-1)\mathbf{y}-\frac{\mathbf{P}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\right]\\ &=\beta^{-1}\frac{\beta\mathbf{P}(t-1)\mathbf{y}+\mathbf{P}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}-\mathbf{P}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\\ &=\frac{\mathbf{P}(t-1)\mathbf{y}}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}} \end{aligned} P(t)y=β−1[P(t−1)y−β+yHP(t−1)yP(t−1)yyHP(t−1)y]=β−1β+yHP(t−1)yβP(t−1)y+P(t−1)yyHP(t−1)y−P(t−1)yyHP(t−1)y=β+yHP(t−1)yP(t−1)y
所以有:
W(t)=W(t−1)−W(t−1)yyHP(t−1)β+yHP(t−1)y+xyHP(t−1)β+yHP(t−1)y=W(t−1)+[x−W(t−1)y]yHP(t−1)β+yHP(t−1)y\begin{aligned} \mathbf{W}(t) &= \mathbf{W}(t-1)-\frac{\mathbf{W}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}+\frac{\mathbf{x}\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\\ &=\mathbf{W}(t-1)+\frac{\left[\mathbf{x}-\mathbf{W}(t-1)\mathbf{y}\right]\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}} \end{aligned} W(t)=W(t−1)−β+yHP(t−1)yW(t−1)yyHP(t−1)+β+yHP(t−1)yxyHP(t−1)=W(t−1)+β+yHP(t−1)y[x−W(t−1)y]yHP(t−1)
最后整理得:
P(t)=β−1[P(t−1)−P(t−1)yyHP(t−1)β+yHP(t−1)y]W(t)=W(t−1)+[x−W(t−1)y]yHP(t−1)β+yHP(t−1)y\begin{aligned} \mathbf{P}(t) &=\beta^{-1}\left[\mathbf{P}(t-1)-\frac{\mathbf{P}(t-1)\mathbf{y}\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}}\right]\\ \mathbf{W}(t) &=\mathbf{W}(t-1)+\frac{\left[\mathbf{x}-\mathbf{W}(t-1)\mathbf{y}\right]\mathbf{y}^H\mathbf{P}(t-1)}{\beta+\mathbf{y}^H\mathbf{P}(t-1)\mathbf{y}} \end{aligned} P(t)W(t)=β−1[P(t−1)−β+yHP(t−1)yP(t−1)yyHP(t−1)]=W(t−1)+β+yHP(t−1)y[x−W(t−1)y]yHP(t−1)
算法步骤
y(t)=WH(t−1)x(t)h(t)=P(t−1)y(t)g(t)=h(t)/[β+yH(t)h(t)]P(t)=1β[P(t−1)−g(t)hH(t)]e(t)=x(t)−W(t−1)y(t)W(t)=W(t−1)+e(t)gH(t)\begin{aligned} \mathbf{y}(t) &= \mathbf{W}^H(t-1)\mathbf{x}(t)\\ \mathbf{h}(t) &= \mathbf{P}(t-1)\mathbf{y}(t)\\ \mathbf{g}(t) &= \mathbf{h}(t)/\left[\beta+\mathbf{y}^H(t)\mathbf{h}(t)\right]\\ \mathbf{P}(t) &= \frac{1}{\beta}\left[\mathbf{P}(t-1)-\mathbf{g}(t)\mathbf{h}^H(t)\right]\\ \mathbf{e}(t) &= \mathbf{x}(t)-\mathbf{W}(t-1)\mathbf{y}(t)\\ \mathbf{W}(t) &= \mathbf{W}(t-1)+\mathbf{e}(t)\mathbf{g}^H(t) \end{aligned} y(t)h(t)g(t)P(t)e(t)W(t)=WH(t−1)x(t)=P(t−1)y(t)=h(t)/[β+yH(t)h(t)]=β1[P(t−1)−g(t)hH(t)]=x(t)−W(t−1)y(t)=W(t−1)+e(t)gH(t)
O-PAST 算法
建立模型
OPAST 算法在每次迭代之后添加一步正交化操作:
W(t):=W(t)[WH(t)W(t)]−12\mathbf{W}(t) := \mathbf{W}(t)\left[\mathbf{W}^H(t)\mathbf{W}(t)\right]^{-\frac{1}{2}} W(t):=W(t)[WH(t)W(t)]−21
正交化保证 WH(t)W(t)=IK\mathbf{W}^H(t)\mathbf{W}(t) = \mathbf{I}_KWH(t)W(t)=IK。
闭式解与递推
易得:
WH(t)W(t)=[WH(t−1)+g(t)eH(t)][W(t−1)+e(t)gH(t)]=IK+∥e(t)∥2g(t)gH(t)=IK+z(t)zH(t)\begin{aligned} \mathbf{W}^H(t)\mathbf{W}(t) &= \left[\mathbf{W}^H(t-1)+\mathbf{g}(t)\mathbf{e}^H(t)\right]\left[\mathbf{W}(t-1)+\mathbf{e}(t)\mathbf{g}^H(t)\right]\\ &=\mathbf{I}_K+\|\mathbf{e}(t)\|^2\mathbf{g}(t)\mathbf{g}^H(t) = \mathbf{I}_K+\mathbf{z}(t)\mathbf{z}^H(t) \end{aligned} WH(t)W(t)=[WH(t−1)+g(t)eH(t)][W(t−1)+e(t)gH(t)]=IK+∥e(t)∥2g(t)gH(t)=IK+z(t)zH(t)
其中 z(t)=∥e(t)∥g(t)\mathbf{z}(t)=\|\mathbf{e}(t)\|\mathbf{g}(t)z(t)=∥e(t)∥g(t)。上式的化简利用了 WH(t−1)W(t−1)=IK\mathbf{W}^H(t-1)\mathbf{W}(t-1)=\mathbf{I}_KWH(t−1)W(t−1)=IK 以及:
WH(t−1)e(t)=WH(t−1)x(t)−WH(t−1)W(t−1)y(t)=WH(t−1)x(t)−y(t)=0K×1\begin{aligned} \mathbf{W}^H(t-1)\mathbf{e}(t) &= \mathbf{W}^H(t-1)\mathbf{x}(t)-\mathbf{W}^H(t-1)\mathbf{W}(t-1)\mathbf{y}(t)\\ &= \mathbf{W}^H(t-1)\mathbf{x}(t)-\mathbf{y}(t)=\mathbf{0}_{K\times 1} \end{aligned} WH(t−1)e(t)=WH(t−1)x(t)−WH(t−1)W(t−1)y(t)=WH(t−1)x(t)−y(t)=0K×1
进一步可得到:
[WH(t)W(t)]−12=IK+1∥z(t)∥2(11+∥z(t)∥2)zzH=IK+τ(t)g(t)gH(t)\begin{aligned} \left[\mathbf{W}^H(t)\mathbf{W}(t)\right]^{-\frac{1}{2}}&=\mathbf{I}_K+\frac{1}{\|\mathbf{z}(t)\|^2}\left(\frac{1}{\sqrt{1+\|\mathbf{z}(t)\|^2}}\right)\mathbf{z}\mathbf{z}^H\\ &=\mathbf{I}_K +\tau(t)\mathbf{g}(t)\mathbf{g}^H(t) \end{aligned} [WH(t)W(t)]−21=IK+∥z(t)∥21(1+∥z(t)∥21)zzH=IK+τ(t)g(t)gH(t)
其中:
τ(t)=1∥g(t)∥2(11+∥e(t)∥2∥g(t)∥2−1)\tau(t) = \frac{1}{\|\mathbf{g}(t)\|^2}\left(\frac{1}{\sqrt{1+\|\mathbf{e}(t)\|^2\|\mathbf{g}(t)\|^2}}-1\right) τ(t)=∥g(t)∥21(1+∥e(t)∥2∥g(t)∥21−1)
由此可得:
W(t):=W(t)[WH(t)W(t)]−12=[W(t−1)+e(t)gH(t)][IK+τ(t)g(t)gH(t)]=W(t−1)+τ(t)W(t−1)g(t)gH(t)+[1+τ(t)∥g(t)∥2]e(t)gH(t)=W(t−1)+τ(t)W(t−1)g(t)gH(t)+e(t)gH(t)1+∥e(t)∥2∥g(t)∥2\begin{aligned} &\mathbf{W}(t) :=\mathbf{W}(t)\left[\mathbf{W}^H(t)\mathbf{W}(t)\right]^{-\frac{1}{2}}\\ =\,&\left[\mathbf{W}(t-1)+\mathbf{e}(t)\mathbf{g}^H(t)\right]\left[\mathbf{I}_K +\tau(t)\mathbf{g}(t)\mathbf{g}^H(t)\right]\\ =\,&\mathbf{W}(t-1)+\tau(t)\mathbf{W}(t-1)\mathbf{g}(t)\mathbf{g}^H(t)+\left[1+\tau(t)\|\mathbf{g}(t)\|^2\right]\mathbf{e}(t)\mathbf{g}^H(t)\\ =\,&\mathbf{W}(t-1)+\tau(t)\mathbf{W}(t-1)\mathbf{g}(t)\mathbf{g}^H(t)+\frac{\mathbf{e}(t)\mathbf{g}^H(t)}{\sqrt{1+\|\mathbf{e}(t)\|^2\|\mathbf{g}(t)\|^2}} \end{aligned} ===W(t):=W(t)[WH(t)W(t)]−21[W(t−1)+e(t)gH(t)][IK+τ(t)g(t)gH(t)]W(t−1)+τ(t)W(t−1)g(t)gH(t)+[1+τ(t)∥g(t)∥2]e(t)gH(t)W(t−1)+τ(t)W(t−1)g(t)gH(t)+1+∥e(t)∥2∥g(t)∥2e(t)gH(t)
代码实现
PAST 与 OPAST 算法可作为 DoA 估计的预处理步骤,其估计得到的矩阵 W∈CM×K\mathbf{W}\in\mathbb{C}^{M\times K}W∈CM×K 可直接用于后续的 ESPRIT 算法进行 DoA 估计。
clc; clear; close all;M = 16;
theta = [0,5,10];
K = length(theta);
L = 10240;
SNRdB = -10;S = (randn(K,L)+1j*randn(K,L))/sqrt(2);
N = 1*sqrt(10^(-SNRdB/10)/2) * (randn(M,L) + 1j*randn(M,L));A = exp(-1j*pi*(0:M-1)'*sind(theta));
X = A*S+N;beta = 1;
DOA_past = PAST(X,K,beta); disp(DOA_past);
DOA_opast = OPAST(X,K,beta); disp(DOA_opast);function [DOA] = PAST(X, K, beta)[M,L] = size(X);% W = randn(M,K) + 1j*randn(M,K); % random initialW = eye(M);W = W(:,1:K);P = eye(K);for t = 1:Lx = X(:,t);y = W' * x; % K x 1h = P * y; % K x 1g = h / (beta + y' * h); % K x 1P = (P - g * h') / beta; % K x Ke = x - W * y; % M x 1W = W + e * g'; % M x KendUs = W;U1 = Us(1:M-1,:);U2 = Us(2:M,:);Psi = pinv(U1)*U2;[~,Phi] = eig(Psi,'vector');DOA = sort(asind(-angle(Phi)/pi));
endfunction [DOA] = OPAST(X, K, beta)[M,L] = size(X);% W = randn(M,K) + 1j*randn(M,K); % random initialW = eye(M);W = W(:,1:K);P = eye(K);for t = 1:Lx = X(:,t);y = W' * x; % K x 1h = P * y; % K x 1g = h / (beta + y' * h); % K x 1P = (P - g * h') / beta; % K x Ke = x - W * y; % M x 1W = W + e * g'; % M x Ktau = 1/(g'*g)*(1/sqrt(1+(e'*e)*(g'*g))-1);W = W*(eye(K)+tau*g*g');endUs = W;U1 = Us(1:M-1,:);U2 = Us(2:M,:);Psi = pinv(U1)*U2;[~,Phi] = eig(Psi,'vector');DOA = sort(asind(-angle(Phi)/pi));
end