RELAX算法
y ( n ) = ∑ k = 1 K a k s k ( n ) n = 1 , ⋯ , N y(n) = \sum_{k=1}^{K} a_k s_k(n) \qquad n=1,\cdots,N y(n)=k=1∑Kaksk(n)n=1,⋯,N
[ y ( 1 ) y ( 2 ) ⋮ y ( N ) ] = [ a 1 a 2 ⋮ a K ] ⋅ [ s 1 ( 1 ) s 2 ( 1 ) ⋯ s K ( 1 ) s 1 ( 2 ) s 2 ( 2 ) ⋯ s K ( 2 ) ⋮ s 1 ( N ) s 2 ( N ) ⋯ s K ( N ) ] + [ e ( 1 ) e ( 2 ) ⋮ e ( N ) ] \begin{bmatrix} y(1) \\ y(2) \\ \vdots \\y(N) \end{bmatrix} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_K \end{bmatrix} \cdot \begin{bmatrix} s_1(1) & s_2(1) \cdots & s_K(1)\\ s_1(2) & s_2(2) \cdots & s_K(2) \\ \vdots \\ s_1(N)& s_2(N) \cdots & s_K(N) \end{bmatrix} + \begin{bmatrix} e(1) \\ e(2) \\ \vdots \\e(N) \end{bmatrix} y(1)y(2)⋮y(N) = a1a2⋮aK ⋅ s1(1)s1(2)⋮s1(N)s2(1)⋯s2(2)⋯s2(N)⋯sK(1)sK(2)sK(N) + e(1)e(2)⋮e(N)
根据最小二乘准则,问题转化为:
{
f
k
,
a
k
}
k
=
1
K
=
a
r
g
m
i
n
∣
∣
y
−
∑
k
=
1
K
a
k
ω
(
f
k
)
∣
∣
2
\{ f_k , a_k\}_{k=1}^{K} = arg \quad min \quad ||y-\sum_{k=1}^{K} a_k \omega(f_k)||^2
{fk,ak}k=1K=argmin∣∣y−k=1∑Kakω(fk)∣∣2
ω
(
f
k
)
=
[
1
e
j
2
π
f
k
⋮
e
j
2
π
f
k
(
N
−
1
)
]
\omega(f_k) = \begin{bmatrix} 1 \\ e^{j2\pi f_k} \\ \vdots \\e^{j2 \pi f_k(N-1)} \end{bmatrix}
ω(fk)=
1ej2πfk⋮ej2πfk(N−1)
参数估计:
f
K
^
=
a
r
g
m
i
n
∣
∣
ω
H
(
f
k
)
y
k
∣
∣
2
\hat{f_K} = arg \quad min \quad || \omega^H(f_k) y_k ||^2
fK^=argmin∣∣ωH(fk)yk∣∣2
a
k
=
ω
H
(
f
k
)
y
k
N
a_k = \frac{\omega^H(f_k) y_k}{N}
ak=NωH(fk)yk
收敛性由第p个结果和(p-1)个结果的差小于预设的阈值
ϵ
\epsilon
ϵ,则算法结束。
迭代过程描述如下:
- 取i=1,令Y(1,:) = y,得到信号初始估计: a 1 a_1 a1、 f 1 f_1 f1
- 取i=2,令Y(2,:) = y − ∑ k = 1 , k ≠ i K a k s k ( n ) y - \sum_{k=1,k \neq i} ^{K} a_k s_k(n) y−∑k=1,k=iKaksk(n),去除第一个频率分量,再得到第二个信号的初始估计: a 2 a_2 a2、 f 2 f_2 f2;重新计算第一个信号的初始估计 a 1 a_1 a1、 f 1 f_1 f1,反复迭代至收敛。
- 取i=3,令Y(3,:) = y − ∑ k = 1 , k ≠ i K a k s k ( n ) y - \sum_{k=1,k \neq i} ^{K} a_k s_k(n) y−∑k=1,k=iKaksk(n),去除第一个频率分量,其中 a 1 a_1 a1、 f 1 f_1 f1、 a 2 a_2 a2、 f 2 f_2 f2由第二步所得,再得到第三个信号的初始估计: a 3 a_3 a3、 f 3 f_3 f3;由获得的 a 2 a_2 a2、 f 2 f_2 f2、 a 3 a_3 a3、 f 3 f_3 f3重新计算参数 a 1 a_1 a1、 f 1 f_1 f1;再由 a 1 a_1 a1、 f 1 f_1 f1、 a 3 a_3 a3、 f 3 f_3 f3重新计算参数 a 2 a_2 a2、 f 2 f_2 f2;再由 a 1 a_1 a1、 f 1 f_1 f1、 a 2 a_2 a2、 f 2 f_2 f2重新计算参数 a 3 a_3 a3、 f 3 f_3 f3;反复迭代至收敛。
- …
- 重复上述步骤直至i=K