Nakagami-m分布、Gamma分布的无线信道及Python代码

这个分布其实挺难搞懂真正原理的,最基础的就是需要的时候要会用。

无线信道中产生分布为Nakagami的信道

在通信系统中,计算功率,速率都会用到 ∣ h ∣ 2 |h|^2 h2,当 ∣ h ∣ |h| h满足- N a k a g a m i ( m , Ω ) Nakagami(m,\Omega) Nakagami(m,Ω)分布时,模值的平方 ∣ h ∣ 2 |h|^2 h2恰巧服从gamma分布~ G a m m a ( k , θ ) Gamma(k , \theta) Gamma(k,θ),因此可以利用python中关于gamma的函数对其进行操作,很简单。
转换关系,其中 k = m , θ = Ω / m k=m,\theta=\Omega/m k=m,θ=Ω/m

m = 2
Omega=1
h = np.random.gamma(2, Omega/m) # 生成信道随机数

下面详细介绍Nakagami和Gamma分布。

Nakagami-m分布

这个分布最早是在1960年被提出,被用于模拟无线通信中的衰落信道。

特征

1、概率密度函数PDF(Probability Density Function)

f ( x ; m , Ω ) = 2 m m Γ ( m ) Ω m x 2 m − 1 exp ⁡ ( − m Ω x 2 ) , ∀ x ≥ 0. w h e r e ( m ≥ 1 2 , Ω > 0 ) f(x ; m, \Omega)=\frac{2 m^{m}}{\Gamma(m) \Omega^{m}} x^{2 m-1} \exp \left(-\frac{m}{\Omega} x^{2}\right), \forall x \geq 0. \\ where( m\geq \frac{1}{2},\Omega>0) f(x;m,Ω)=Γ(m)Ωm2mmx2m1exp(Ωmx2),x0.where(m21Ω>0)
参数 m m m and Ω \Omega Ω
m = ( E [ X 2 ] ) 2 Var ⁡ [ X 2 ] m=\frac{\left(\mathrm{E}\left[X^{2}\right]\right)^{2}}{\operatorname{Var}\left[X^{2}\right]} m=Var[X2](E[X2])2and,
Ω = E [ X 2 ] \Omega = E[X^2] Ω=E[X2]
下图是概率密度函数图,其中的 u u u就是 m m m,是shape parameter-形状参数,越大就越高; w w w就是 Ω \Omega Ω,是controlling spread控制扩散参数,越大就越散。
pdf

2、累积密度函数CDF(Cumulation Density Function)

F ( x ; m , Ω ) = γ ( m , m Ω x 2 ) Γ ( m ) F(x ; m, \Omega)=\frac{\gamma\left(m, \frac{m}{\Omega} x^{2}\right)}{\Gamma(m)} F(x;m,Ω)=Γ(m)γ(m,Ωmx2)
在这里插入图片描述

CDF就是PDF的积分,PDF就是CDF的导数。
   

4、无线信道参数设计

在无线信道中, m m m可以根据自己的需求来设置,只要大于0.5即可。 m = 0.5 m=0.5 m=0.5时是单边高斯分布, m = 1 m = 1 m=1时是瑞利分布, m = ∞ m = ∞ m=时是随机信道。
Ω \Omega Ω表示信道增益平方的期望,即 Ω = E [ ∣ h ∣ 2 ] \Omega = E[|h|^2] Ω=E[h2]

5、综合各函数表

下表是Nakagami分布的各种函数表
在这里插入图片描述

Gamma分布

Nakagami和Gamma分布可以相互转换。信道增益 ∣ h ∣ |h| h- N a k a g a m i ( m , Ω ) Nakagami(m,\Omega) Nakagami(m,Ω)时,那么它的模值的平方 ∣ h ∣ 2 |h|^2 h2~ G a m m a ( k , θ ) Gamma(k , \theta) Gamma(k,θ),其中 k = m , θ = Ω / m k=m,\theta=\Omega/m k=m,θ=Ω/m

代码

1、验证随机生成的数和PDF的关系

from scipy.stats import nakagami
import matplotlib.pyplot as plt

# 参数设计:
nu = 2

# 计算参数均值方差
mean, var, skew, kurt = nakagami.stats(nu, moments='mvsk')

# 显示概率密度函数(pdf):
x = np.linspace(nakagami.ppf(0.01, nu,loc=0, scale=1), nakagami.ppf(0.99, nu,loc=0, scale=1), 100)  # 设定一个边界
plt.plot(x, nakagami.pdf(x, nu), 'r-', lw=1.2, alpha=0.6, label='nakagami pdf')

# 生成随机数
r = nakagami.rvs(nu, loc=0, scale=1, size=1000) # 这里的omega为1,可以修改scale,改变omega
# 并比较直方图:
plt.hist(r, density=True, histtype='stepfilled', alpha=0.2)
plt.legend(loc='best', frameon=False)
plt.show()

在这里插入图片描述

其中,nakagami.pdf(x, m) = f ( x ; m , Ω = 1 ) = 2 m m Γ ( m ) x 2 m − 1 exp ⁡ ( − m x 2 ) , f(x ; m, \Omega=1)=\frac{2 m^{m}}{\Gamma(m) } x^{2 m-1} \exp \left(-mx^{2}\right), f(x;m,Ω=1)=Γ(m)2mmx2m1exp(mx2),
也就是说这个里面的公式计算出来的PDF默认 Ω = 1 \Omega=1 Ω=1,所以,要是想要自己产生一个随机数,还要变形一下。

  • 12
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
nakagami-m分布是一种常用于描述无线信道衰落的数学模型。在5径时变信道的仿真设计中,我们可以使用nakagami-m分布来模拟信道的衰落过程。 首先,我们需要确定nakagami-m分布的参数m的值,这取决于信道的特性。m的值越大,信道的衰落越快,反之衰落越缓慢。一般来说,我们可以根据实际的衰落情况选择合适的m的值。 接下来,我们可以使用随机数生成器来生成服从nakagami-m分布的随机变量。这些随机变量代表了信道的衰落系数。在仿真过程中,我们可以根据需要生成大量的随机变量,以获得足够的样本数据进行衰落分析。 在仿真设计中,我们还需要考虑信号的传输距离和发射功率等参数。这些参数将影响到信道的衰落过程。我们可以通过改变这些参数的值,观察信道衰落的变化情况,并进行性能分析。 除了生成随机变量,我们还可以使用数学方法对nakagami-m分布进行计算和分析。例如,可以计算信道的均值、方差和功率谱密度等参数,以评估信道的性能。 最后,在仿真设计中,我们可以使用各种信号处理技术来处理和分析仿真数据。例如,可以使用平均值滤波、自相关分析和频谱分析等方法,来研究信道衰落对信号传输的影响。 总而言之,通过使用nakagami-m分布来模拟5径时变信道的衰落过程,我们可以进行系统性能评估和优化设计。这种仿真设计可以帮助我们更好地理解和应对无线信道的衰落问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值