阵列信号基础之3:EM 和 SAGE

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23947237/article/details/82343726

无线信道参数估计算法

对通信系统分析之前,首先需要建立一个能够完整反映该系统的传输信道的模型,其模型中的参数包括接收端接收信号的时延,发射端和接收端的联合方向分布等,获取这些参数的过程就是无线信道参数估计的过程。

方法可以大致分为三类:
- 谱估计算法:多重信号分类法
- 参数子空间估计算法:旋转不变技术估计信号参数算法
- 确定性参数估计算法:期望最大算法以及演进的空间交替广义期望最大算法

0. 前言

阵列信号处理基础本质上属于参数估计问题,和信道估计知识基本上别无二致。末学在这里整理了阵列信号处理的基础知识,包括公式推导,以及代码。一方面为了节省同行人士寻找资料和整理吸收的时间,开方便之门。另一方面为了和大家多多交流这方面的知识,寻找研究灵感。


如果有任何问题或者有相关的 MATLAB 代码,本着交流的态度请分享到我的邮箱:[email protected]。在这里很抱歉,我没有找到 SAGE 或者 EM 的阵列信号估计的代码,希望有代码的朋友可以分享一下给我,我会经过分析,整理成容易理解的代码分享给更多的学习者。


愿以此功德,庄严佛净土。上报四重恩,下济三途苦。
若有见闻者,悉发菩提心。尽此一报身,同生极乐国。

3. 期望最大算法

要想同时得到信道的多维参数信息,这里引入了 EM 算法来解决这一问题。EM 算法可以对无线传输信道中的无线电波进行幅度时延离幵角到达角多普勒谱的联合多重参数估计。

系统模型

考虑如下的传播环境模型。发射端有 M 根天线组成的阵列 1,经过 L 条路径传输到达接收端,接收端有 N 根天线组成的阵列 2。在每条路径上,信号受到来自中途障碍物的干扰,发生不同程度的折射、反射、绕射等,使到达信号产生多径现象

其中发射天线阵列由 M 个相对任意参考点 O 1 分别位于 r 1 , , r M R 3 的阵元组成,接收天线阵列由 N 个相对任意参考点 O 2 分别位于 r 1 , , r N R 3 的阵元组成。发射和接收天线阵列的阵元分别被限定在区域 R 1 R 2 中,这样我们假设的传播环境就满足了小尺度特性,对于我们后面的计算提供了便利。

sen

该模型假设:

  • 远场条件:发射天线阵列和接收天线阵列的距离要求足够远,这样才能使得接收信号都可以看成平面波。同时保证发射天线轻微的移动几十个波长时,每条径所经历的几何衰落路径基本保持不变
  • 小尺度特性:发射天线阵和接收天线阵都限定在一定区域内,使得发射端和接收端天线阵中的阵元的坐标都可以用三维矢量表示。信道的衰落特性符合小尺度衰落特性,即只考虑由于幅度、时延、离开角、到达角、多普勒频移等小尺度特性造成的信号衰落。

发射信号为 E T u ( t ) ,其中 T E 分别表示周期和在周期内的能量, u ( t ) = [ u 1 ( t ) , , u M ( t ) ] T

上述传播模型中假设有 L 条波到达接收机,接收机总共有 N 个天线阵元接收来波并对接收后的信号进行处理,这样第 n 个天线阵元所得的信道冲激响应可以表示为:

h n ( t ) = l = 1 L h l e j 2 π v l t c 2 ( Ω 2 , l ) c 1 ( Ω 1 , l ) T δ ( t τ l )

天线阵接收到的信号可以表示成:
Y n ( t ) = E T u ( t ) h n ( t ) + N n ( t ) = l = 1 L E T h l e j 2 π v l t c 2 ( Ω 2 , l ) c 1 ( Ω 1 , l ) T u ( t τ l ) + N n ( t ) = l = 1 L a l e j 2 π v l t c 2 ( Ω 2 , l ) c 1 ( Ω 1 , l ) T u ( t τ l ) + N n ( t ) = l = 1 L s ( t ; θ l ) + N n ( t )

其中,经过第 l 条路径传输来的信号矩阵定义为:
s ( t ; θ l ) = [ s 1 ( t ; θ l ) , , s N ( t ; θ l ) ] T = l = 1 L a l e j 2 π v l t c 2 ( Ω 2 , l ) c 1 ( Ω 1 , l ) T u ( t τ l )

其中, a l = E T h l N n ( t ) = N n ( t ) + j N n ( t ) N n ( t ) N n ( t ) 均为具有单位频谱高度的零均值高斯白噪声过程,且相互独立,其双边功率谱密度为 N 0 2 ,满足 E [ N n ( t ) H N n ( t ) ] = 2 δ ( t t ) 。所以阵列 2 的接收信号为
Y ( t ) = [ Y 1 ( t ) , , Y N ( t ) ] T = l = 1 L s ( t ; θ l ) + N 0 2 N ( t )

其中, N ( t ) = [ N 1 ( t ) , , N N ( t ) ] T N 维复高斯白噪声向量值。 θ l = [ Ω 1 , l , Ω 2 , l , τ l , v l , a l ] 表示第 l 条路径的平面波参数矩阵。第 l 条路径的平面波由离开方向角 Ω 1 , l 、到达方向角 Ω 2 , l 、传播时延 τ l 、多普勒频移 v l 和复振幅 a l 来表征。因此,信道参数提取算法的核心就在于准确有效地估计这 5 个信道参数的信息。

为了简洁表达,我们定义 s ( t ; θ ) = l = 1 L s ( t ; θ l ) , 其中 θ = [ θ 1 , , θ L ] T 。为了方便描述到达角和离开角的方向,在这里引入球坐标

qiu

首先初始点设定为 O 处,以这个点为球心画出一个半径为 1 的球,确定一个方向,作为单位向量 Ω 。球面坐标系的单位向量为:

Ω == [ sin θ cos ϕ , sin θ sin ϕ , cos θ ] T

其中角度 ϕ [ π , π ) 为单位矢量 Ω 的水平方向角,角度 θ [ 0 , π ] 表示单位矢量 Ω 的垂直方向角。于是有
c 2 ( Ω 2 ) = [ f 2 , 1 ( Ω 2 ) exp { j 2 π λ 0 1 ( Ω 2 r 2 , 1 ) } , , f 2 , N ( Ω 2 ) exp { j 2 π λ 0 1 ( Ω 2 r 2 , N ) } ] T c 1 ( Ω 1 ) = [ f 1 , 1 ( Ω 1 ) exp { j 2 π λ 0 1 ( Ω 1 r 1 , 1 ) } , , f 1 , M ( Ω 1 ) exp { j 2 π λ 0 1 ( Ω 1 r 1 , M ) } ] T

上述表达式中 λ 0 为传播波的波长, f 1 , m ( Ω 1 ) 为发射天线阵列第 m 个阵元的复电场模式, f 2 , n ( Ω 2 ) 为接收天线阵列第 n 个阵元的复电场模式, ( ) 为内积符号。

由观测时间 P T 内的观测值 Y ( t ) = y ( t ) 可得 θ 的对数似然函数:

L ( θ ; y ) = 1 N 0 [ 2 P T { s H ( t ; θ ) y ( t ) } d t G 1 P T s ( t ; θ ) 2 d t G 2 ]

其中, ( ) 表示取实部。 θ 的最大似然估计的结果就是使对数似然函数 L ( θ ; y ) 取最大值的向量,即

θ ^ M L ( y ) = arg max θ l { L ( θ ; y ) }

对于信道中多径数目较大时,上式是关于 L ( θ ; y ) 的非线性函数,计算机无法直接对其进行求解。

EM 算法原理

EM 算法的推导基于两个主要概念:完全数据(不可观测)和不完全数据(可观测)。其思想是:你知道一些东西(观察到的数据),你不知道一些东西(观察不到的数据),如果你想知道那些不了解的东西,采取的方法就是根据一些假设 (parameter) 先猜 (E-step),把不知道的事都猜出来,基于知道的和猜测的数据,假装你全都知道了, 然后根据猜测的数据,你反思 (M-step)一下,更新假设,使得观察到的数据更加可能。 然后再猜,再反思,最后就得到可以解释整个数据的假设了。

EM 算法的核心思想是将需要估计的参数集 θ 分割成参数子集 θ 1 , , θ l 顺序估计。

定义 Y ( t ) 为实际数据的不完整可观测值,可表示成一组完整但不可观测的数据的函数 [ X 1 ( t ) , , X L ( t ) ] ,其中 X l ( t ) = s ( t ; θ l ) + β l N 0 2 N l ( t ) ,在这里重新定义 N ( t ) = [ β 1 N 1 ( t ) , , β L N L ( t ) ] 是方差为 β l 的高斯平稳噪声,且 N l ( t ) 之间相互独立。 其中 β l 为正值,且 l = 1 L β l = 1 。则不完整数据可以表示为完整数据的函数:

Y ( t ) = l = 1 L X l ( t ) = l = 1 L s ( t ; θ l ) + l = 1 L β l N 0 2 N l ( t )

可测数据与不可测数据转换示意图:

net

我们假设完全数据 X 是可以观测的。由于 X 1 ( t ) , , X L ( t ) 相互独立,故对第 l 条路径的传播参数 θ l 的估计与其它路径无关。由观测时间 P T 内的观测值 X l ( t ) = x l ( t ) ,可得 θ l 的对数似然函数:

L ( θ l ; x l ) = 1 β l N 0 [ 2 P T { s H ( t ; θ l ) x l ( t ) } d t G 1 P T s ( t ; θ l ) 2 d t G 2 ]

对于已知观测值 X l ( t ) = x l ( t ) θ l 的最大似然估计为:
( θ l ^ ) M L ( x l ) = arg max θ l { L ( θ l ; x l ) }

因为 X l ( t ) 是不可观测的完全数据,这里采用可以观测的不完全数据 Y ( t ) = y ( t ) 以及 θ 的上一次估计值 θ ^ 对其进行估计。于是可以利用已知的 Y ( t ) = y ( t ) 以及假设的 θ = θ ^ 从而计算 X l ( t ) 条件期望:
x l ( t ; θ ^ ) = E θ ^ [ X l ( t ) | Y ( t ) = y ( t ) ] , l = 1 , 2 , , L

此处, E θ ^ ( ) 指在假设参数值 θ 情况下的期望。利用条件期望所得的 x l ( t ; θ ^ ) 作为 X l ( t ) 的观测值,然后通过最大似然估计对传播波参数矢量 θ l 进行再估计:
θ l ^ = ( θ l ^ ) M L ( x ^ l ( t ; θ ^ ) ) , l = 1 , 2 , , L

总结以上两个公式就对应着 EM 算法的操作:

EM 算法 公式
E(求期望) x l ( t ; θ ^ ) = E θ ^ [ X l ( t ) | Y ( t ) = y ( t ) ] , l = 1 , 2 , , L
M (最大化) θ l ^ = ( θ l ^ ) M L ( x ^ l ( t ; θ ^ ) ) , l = 1 , 2 , , L

对于任意初始值 θ ^ ( 0 ) ,多次交替迭代执行 E 和 M 步骤。对于第 μ 次迭代,由初始值 θ ^ ( μ 1 ) 去求得每一径传播波的参数 θ ^ l ( μ ) 。迭代到收敛为止。

算法的 M 步骤,根据函数 x l ( t ; θ ^ ) 的特殊结构,其参数向量 θ l = [ Ω 1 , l , Ω 2 , l , τ l , v l , a l ] = [ θ ¯ l , a l ] 可以简化为以下几个步骤。首先将 a l 固定,求函数另外 4 L 个维度的联合最大化,为了进一步简化该步骤,可以将联合最大化变成 4 个参数分别的最大化。求得 Ω ^ 1 , l , Ω ^ 2 , l , τ ^ l , v ^ l 。之后可以通过以 Ω ^ 1 , l , Ω ^ 2 , l , τ ^ l , v ^ l 为函数的闭合表达式得到 a ^ l 。将复振幅 a l 的值代入到 L ( θ l ; x l ) 中,调整 M 步骤的公式如下:

( θ ¯ l ^ ) M L ( x l ) = arg max θ ¯ l { z ( θ ¯ l ; x l ) } , ( a l ^ ) M L ( x l ) = z ( θ ¯ l ; x l ) | θ ¯ l = ( θ ¯ l ^ ) M L ( x l ) | c 2 ( ( Ω ^ 2 , l ) M L ) | | c 1 ( ( Ω ^ 1 , l ) M L ) | I P T S C .

其中相关文献中介绍的无线信道探测仪在接收端和发射端都配备了射频天线开关,这里采用时分多路复用(TDM) 模式进行无线信道的探测。 用 I 表示发射端循环周期的个数,将 I 个循环周期定义为一个快拍。发射端发送周期为 T s 且功率为 P 的探测信号。对于接收端,由于射频天线开关的作用,接收天线阵列的 N 个阵元也相继对接收信号进行扫描,每个阵元的扫描时间为 T S C

z ( θ ¯ l ; x l ) = f ( θ ¯ l ) H D ( Ω 1 , l , Ω 2 , l ) f ( θ ¯ l ) = c ~ 2 ( Ω 2 , l ) H X l ( τ l , v l ) c ~ 1 ( Ω 1 , l )

其中,
f ( θ ¯ l ) = [ c 2 , 1 ( Ω 2 , l ) H X l ( τ l , v l ) c 1 , 1 ( Ω 1 , l ) c 2 , 1 ( Ω 2 , l ) H X l ( τ l , v l ) c 1 , 2 ( Ω 1 , l ) c 2 , 2 ( Ω 2 , l ) H X l ( τ l , v l ) c 1 , 1 ( Ω 1 , l ) c 2 , 2 ( Ω 2 , l ) H X l ( τ l , v l ) c 1 , 2 ( Ω 1 , l ) ] , c ~ 2 ( Ω 2 , l ) = c 2 ( Ω 2 , l ) | c 2 ( Ω 2 , l ) | , c ~ 1 ( Ω 1 , l ) = c 1 ( Ω 1 , l ) | c 1 ( Ω 1 , l ) | .

X l ( τ l , v l ) N × M 维的矩阵,其中每一个元素如下所示:
x l , n , m ( t ; τ l , v l ) = i = 1 I exp { j 2 π v l t i , n , m } 0 T S C u ( t τ l ) exp { j 2 π v l t } x l ( t + t i , n , m ) d t

其中, D ( Ω 1 , l , Ω 2 , l ) = [ c 2 ( Ω 2 , l ) H c 2 ( Ω 2 , l ) ] [ c 1 ( Ω 1 , l ) H c 1 ( Ω 1 , l ) ] 。为了保证算法的 M 步骤中的对于参数矩阵的估计有解,需要满足矩阵 D ( Ω 1 , l , Ω 2 , l ) 的非奇异值条件,即行列式不为 0:
det ( D ( Ω 1 , l , Ω 2 , l ) ) = k = 1 2 ( | c k , 1 ( Ω k ) | 2 | c k , 2 ( Ω k ) | 2 | c k , 2 ( Ω k ) H c k , 1 ( Ω k ) | 2 ) 2

发现上式 det ( D ( Ω 1 , l , Ω 2 , l ) ) 0 ,当且仅当 c k , 1 ( Ω k ) c k , 2 ( Ω k ) 线性相关时,等号才成立。故矩阵 D ( Ω 1 , l , Ω 2 , l ) 是非奇异矩阵的充要条件为:对于任意的 Ω k ,   ( k = 1 , 2 ) c k , 1 ( Ω k ) c k , 2 ( Ω k ) 都是线性不相关的。

SAGE 算法

根据似然函数

L ( θ l ; x l ) = 1 β l N 0 [ 2 P T { s H ( t ; θ l ) x l ( t ) } d t G 1 P T s ( t ; θ l ) 2 d t G 2 ]

其中,
G 1 = a l c 2 ( Ω 2 , l ) H X l ( τ l , v l ) c 1 ( Ω 1 , l ) , G 2 = | a l | 2 | c 2 ( Ω 2 , l ) | 2 | c 1 ( Ω 1 , l ) | 2 I P T S C .

于是,代入整理可得似然函数
L ( θ l ; x l ) 2 | c 2 ( Ω 2 , l ) | | c 1 ( Ω 1 , l ) | { a l z ( θ ¯ l ; x l ) } | a l | 2 | c 2 ( Ω 2 , l ) | 2 | c 1 ( Ω 1 , l ) | 2 I P T S C .

SAGE 算法是针对 EM 算法 每次迭代都要更新所有参数这一缺陷所提出的一种优化扩展算法。SAGE 算法的主要思想是:在 EM 算法的基础上将参数矩阵空间集分割成维数较小的参数子集,每次迭代只更新部分参数子集,而其余补集保持不变。具体的做法为:将每一径的参数矩阵分割为 6 个参数子集:
θ l = [ Ω 1 , l , Ω 2 , l , τ l , v l , a l ] { τ l , a l } , { θ 2 , l , a l } , { ϕ 2 , l , a l } , { θ 1 , l , a l } , { ϕ 1 , l , a l } , { v l , a l } .

对于不可观测的完全数据 X l ( t ) 的估计与 θ ^ 是无关的。所以对参数空间集进行分割不影响求期望步骤的进行,每个子集的求期望步骤是完全一致的。在迭代的过程中,每次只更新其中一个子集,其余补集都保持初始值不变,依次更新所有子集后一条路径一次迭代完成。对所有路径完成一次迭代即完成了一个迭代周期。只更新子集的做法可以减小 Fisher 信息,算法的运算复杂度得到显著降低,收敛速度明显加快。一次迭代所得到的参数矩阵的值如下所示:

τ ^ l = arg max τ l   z ( ϕ ^ 1 , l , θ ^ 1 , l , ϕ ^ 2 , l , θ ^ 2 , l , τ l , v ^ l , x ^ l ) , θ ^ 2 , l = arg max θ 2 , l   z ( ϕ ^ 1 , l , θ ^ 1 , l , ϕ ^ 2 , l , θ 2 , l , τ ^ l , v ^ l , x ^ l ) , ϕ ^ 2 , l = arg max ϕ 2 , l   z ( ϕ ^ 1 , l , θ ^ 1 , l , ϕ 2 , l , θ ^ 2 , l , τ ^ l , v ^ l , x ^ l ) , θ ^ 1 , l = arg max θ 1 , l   z ( ϕ ^ 1 , l , θ 1 , l , ϕ ^ 2 , l , θ ^ 2 , l , τ ^ l , v ^ l , x ^ l ) , ϕ ^ 1 , l = arg max ϕ 1 , l   z ( ϕ 1 , l , θ ^ 1 , l , ϕ ^ 2 , l , θ ^ 2 , l , τ ^ l , v ^ l , x ^ l ) , v ^ l = arg max v l   z ( ϕ ^ 1 , l , θ ^ 1 , l , ϕ ^ 2 , l , θ ^ 2 , l , τ ^ l , v l , x ^ l ) .

最后

a ^ l = [ | c 2 ( ( ϕ ^ 2 , l , θ ^ 2 , l ) ) | | c 1 ( ( ϕ ^ 1 , l , θ ^ 1 , l ) | I P T S C ] 1 z ( ϕ ^ 1 , l , θ ^ 1 , l , ϕ ^ 2 , l , θ ^ 2 , l , τ ^ l , v ^ l , x ^ l )

于是 SAGE 算法具体步骤:

  • E 步骤

因为 X l ( t ) 不可观测,所以对数似然函数也不可计算。那么关键步骤是基于 Y ( t ) = y ( t ) 估计 X l ( t ) 的条件期望:

x l ( t ; θ ^ ) = E θ ^ [ X l ( t ) | Y ( t ) = y ( t ) ] = y ( t ) l = 1 , l l L s ( t ; θ ^ l )

  • M 步骤

( θ ¯ l ^ ) M L ( x l ) = arg max θ ¯ l { z ( θ ¯ l ; x l ) } , ( a l ^ ) M L ( x l ) = z ( θ ¯ l ; x l ) | θ ¯ l = ( θ ¯ l ^ ) M L ( x l ) | c 2 ( ( Ω ^ 2 , l ) M L ) | | c 1 ( ( Ω ^ 1 , l ) M L ) | I P T S C .

从上可以看出,SAGE 算法和 EM 算法的 E 步骤和 M 步骤的公式在形式上是完全一样的。SAGE 算法和 EM 算法的求期望过程是完全一致的,但是 SAGE 算法在 EM 算法基础上,对其 M 步骤进行了改进:对于参数矩阵的估计是将其参数空间进行分割,将多维联合参数估计转化成一维参数估计。

猜你喜欢

转载自blog.csdn.net/qq_23947237/article/details/82343726