r
n
=
g
n
s
n
+
w
n
r_n = g_ns_n+w_n
rn=gnsn+wn
其中
r
n
r_n
rn表示接收信号,
g
n
g_n
gn表示信道增益,
s
n
s_n
sn表示发射信号,
w
n
w_n
wn是白噪声干扰。这个公式中我们默认
r
n
r_n
rn和
s
n
s_n
sn是电压或者电流信号,这样如果利用香农公式求解信道容量时我们需要转变成信噪功率比。
而 Nakagami-m 描述得就是
g
n
g_n
gn的变化情况。我们知道信号经过路径损耗之后,由于信道短时间内的变化还会发生快衰落,即
g
n
g_n
gn在某一值附近随机抽样。Nakagami-m 分布就是对这一“随机性”的描述。
Nakagami-m 分布的概率密度函数表示如下:
f
(
g
)
=
2
m
m
⋅
g
2
m
−
1
Γ
(
m
)
⋅
Ω
⋅
exp
−
m
g
2
Ω
,
g
≥
0
,
m
≥
1
2
f(g)=\frac{2m^m\cdot g^{2m-1}}{\Gamma(m)\cdot \Omega}\cdot \exp ^{-\frac{mg^2}{\Omega}}, g\geq 0, m \geq \frac{1}{2}
f(g)=Γ(m)⋅Ω2mm⋅g2m−1⋅exp−Ωmg2,g≥0,m≥21
其中
Γ
(
g
)
\Gamma(g)
Γ(g)表示伽马函数,
Ω
\Omega
Ω表示
g
g
g的归一化方差的逆。但是在参考文献[1]中表示信道增益平方的期望,即
Ω
=
E
[
∣
g
∣
2
]
\Omega =\mathbb{E}[|g|^2]
Ω=E[∣g∣2]1 ,参考文献[2]中表示为平均发射功率 2。Nakagami 原论文说的“归一化方差的逆”我不理解,而后两种说法应该是相同的。之前提到的
g
n
g_n
gn是电压或者电流的增益,平方一下就是功率的增益。我们一般仿真也是直接按照功率来设置的,比如XXdBm。 参数
m
m
m表示衰落的程度,值越大衰落越严重。
m
=
0.5
m=0.5
m=0.5时是单边高斯分布,
m
=
1
m=1
m=1时是瑞利分布,
m
=
∞
m=\infty
m=∞时是随机信道。
伽马分布
更进一步,当
g
n
g_n
gn满足Nakagami-m分布时,
∣
g
n
∣
2
|g_n|^2
∣gn∣2满足伽马分布。也就是说我们在仿真时没必要对
g
n
g_n
gn抽样,直接对
∣
g
n
∣
2
|g_n|^2
∣gn∣2抽样再乘以发射功率就可以了。
设随机变量
X
∼
N
a
k
a
g
a
m
i
−
m
,
Y
=
X
2
X\sim {\rm Nakagami}-m,Y=X^2
X∼Nakagami−m,Y=X2,那么随机变量
Y
Y
Y的分布函数有
F
Y
(
y
)
=
P
(
Y
<
y
)
=
P
(
X
2
<
y
)
=
P
(
X
<
y
)
(
X
非
负
)
=
∫
−
∞
y
f
X
(
x
)
d
x
\begin{aligned} F_Y(y)&=P(Y<y)\\ &=P(X^2<y)\\ &=P(X<\sqrt{y})(X{\rm 非负)}\\ &=\int_{-\infty}^{\sqrt y} f_X(x) {\rm d}x \end{aligned}
FY(y)=P(Y<y)=P(X2<y)=P(X<y)(X非负)=∫−∞yfX(x)dx 对分布函数求导即可得到概率密度函数,这里利用变上限积分求导法则容易得到:
f
Y
(
y
)
=
F
Y
′
(
y
)
=
f
X
(
y
)
⋅
1
2
y
\begin{aligned} f_Y(y)&=F_Y^{'}(y)\\ &=f_X(\sqrt y)\cdot \frac{1}{2\sqrt y} \end{aligned}
fY(y)=FY′(y)=fX(y)⋅2y1 把Nakagami-m分布中的
x
x
x换成
y
\sqrt y
y并乘以
1
2
y
\frac{1}{2\sqrt y}
2y1即可得到随机变量
Y
Y
Y的概率密度函数:
f
Y
(
y
)
=
m
m
⋅
y
m
−
1
Γ
(
m
)
⋅
Ω
⋅
exp
−
m
y
Ω
,
y
≥
0
,
m
≥
1
2
f_Y(y)=\frac{m^m \cdot y^{m-1}}{\Gamma (m)\cdot \Omega}\cdot \exp ^{-\frac{my}{\Omega}},y\geq 0, m\geq \frac{1}{2}
fY(y)=Γ(m)⋅Ωmm⋅ym−1⋅exp−Ωmy,y≥0,m≥21 这个形式便是伽马分布。
Python的相关包
Nakagami-m的Python包可以用scipy.stats.nakagami,文档页面的密度函数公式中取的
Ω
=
1
\Omega = 1
Ω=1。 伽马分布可以用numpy.random.gamma,文档的公式中
Ω
=
1
\Omega = 1
Ω=1,另一个参数
θ
=
Ω
/
k
\theta =\Omega /k
θ=Ω/k,
k
k
k也就是本文中的
m
m
m。 可以看到
k
θ
=
Ω
k \theta=\Omega
kθ=Ω,即伽马分布的均值为形状参数
k
k
k和尺度参数
θ
\theta
θ的乘积,伽马分布的方差为
k
θ
\sqrt k \theta
kθ。一些图像
S. A. Dianat, “SNR Estimation in Nakagami Fading Channels with Arbitrary Constellation,” 2007 IEEE International Conference on Acoustics, Speech and Signal Processing - ICASSP '07, Honolulu, HI, 2007, pp. II-325-II-328.IEEE链接↩︎↩︎