Veins中实现Nakagami-m信道模型(一种简单的方法)

Veins中实现Nakagami-m信道模型(一种简单的方法)

在VANET的仿真中,为了使得结果更加的真实,合适的场景和信道模型很有必要。

在很多文献中,所用的信道模型多为Two-ray ground model 和 Two-ray interference model 以及Nakagami信道模型。在我所用的Veins仿真框架中,已有的信道模型是自由空间传播、Log-normal shadowing Two-ray interference等比较简单的模型,并没有集成Nakagami-m信道。而在开源Inetmanet仿真程序包中,作者集成了多种信道模型,包括Log-normal、Rayleigh、Rice、Two-ray ground 以及Nakigami-m信道模型[1]。

而今,众多的文献都认为Nakagami-m信道比起其他的模型来说更加的适合车载环境的仿真,所以为了使得以后的仿真更加的可信,我决定在Veins模块里面以简单的方法加入Nakigami-m信道模型。

在介绍集成方法之前,先从信道对接收功率影响的角度来看看各种信道模型到底是怎么回事[2]。

自由空间传播模型 (Friss model)
假设电磁波在空中的传播是各向同性的,则离源节点d处的接收功率是一个二次衰减的形式,即:

Pr(d)=PtGtGrλ2(4π)2d2L

上式中, Pr(d) 表示在距离发送端 d 处的接收功率; Pt 为发送功率, Gt Gr 分别为发送天线和接收天线的增益, λ 为电磁波波长, L 为系统损耗,在实际仿真的时候,通常设置 Gt = Gr = L =1. 显然,这个模型是一个确定性模型,不存在随机因素,若设定一个接收功率阀值 Th ,则其接收的可能性和距离 d 的关系将是一个不连续的折线. 因此缺乏实用性,仅作为参考即可.

Two-Ray Ground 模型
该模型和Friss模型比起来,进一步的考虑了地面反射造成的损耗. 其接收功率和距离 d 是一个四次方的损耗关系:

Pr(d)=PtGtGrh2th2rd4

其中 ht hr 分别为发、收天线的高度.

Rayleigh信道模型
该信道模型不考虑直射分量(LoS),其接收信号的暴落服从瑞利分布, d 处接收功率与自由空间Friss模型有一下关系:

Pr(d)Rayleigh(Pr(d))

即是说接收功率服从瑞利分布,其平均功率为自由空间传播模型在 d 出的功率值. 此时, d 处的接收功率就变成了随机值,更加贴近现实。

Rice信道模型
莱斯信道在瑞利信道的基础上加入了LoS分量,它和瑞利信道比起来多了一个scale因子 k . 具体不赘述.

Nakagami信道模型
该信道模型是一个经验模型,也就是通过实验数据拟合所得,比前面的几个模型更具真实性。其 d 处的接收功率服从Gamma分布:

Pr(d;m)Gamma(m,Pr(d)/m)

参数m定义的是衰减程度. 当 m =1时,退化为Rayleigh信道; m 越大,越接近自由空间Friss模型.

基于接收功率这些简单的性质,[1]中实现的信道模型就从接收功率出发,实现了各个信道模型:
1. 计算自由空间传播模型 d 处的接收功率 pr ;
2. pr 为基本参数,产生随机数,模拟接收功率的随机变化.
以Rayleigh和Nakagami-m为例:

double RayleighModel::calculateReceivedPower(double pSend, double carrierFrequency, double distance)
{
    double waveLength = SPEED_OF_LIGHT / carrierFrequency;
    //得到平均接收功率:由自由空间传播模型得到
    double avg_rx_power = freeSpace(Gt, Gr, L, pSend, waveLength, distance, pathLossAlpha);
    double x = normal(0, 1);
    double y = normal(0, 1);//用于产生瑞利分布随机数.
    double prec = avg_rx_power * 0.5 * (x*x + y*y);
    if (prec > pSend)//pSend为发送功率,容错处理
        prec = pSend;
    return prec;//返回最终的接收功率.
}
double NakagamiModel::calculateReceivedPower(double pSend, double carrierFrequency, double distance)
{
    const int rng = 0;
    double waveLength = SPEED_OF_LIGHT / carrierFrequency;
    //得到平均接收功率
    double avg_power = freeSpace(Gt, Gr, L, pSend, waveLength, distance, pathLossAlpha);
    avg_power = avg_power/1000;//单位转换mw->w
    //服从gamma分布
    double prec = gamma_d(m, avg_power / m, rng) * 1000.0;
     if (prec > pSend)
        prec = pSend;
     return prec;
}

可以看到,inetmanet模块中实现的信道模型比较简单,特别是Nakagami-m信道.

故在veins中我也基于这个方法,在自由空间传播模型的基础上进行修改,以简单的方法实现该信道(Decider80211p.cc):

simtime_t Decider80211p::processNewSignal(AirFrame* msg) {

    AirFrame11p *frame = check_and_cast(msg);
    // get the receiving power of the Signal at start-time and center frequency
    Signal& signal = frame->getSignal();
    Argument start(DimensionSet::timeFreqDomain);
    start.setTime(signal.getReceptionStart());
    start.setArgValue(Dimension::frequency_static(), centerFrequency);
    signalStates[frame] = EXPECT_END;
    double transPower=signal.getTransmissionPower()->getValue(start);//test.如此可得到发送功率
    //2015-4-5此处实现了NAKAGAMI-m信道
    double m=2;//m参数
    double recvPower_o=signal.getReceivingPower()->getValue(start);得到由自由空间传播模型计算的接收功率
    recvPower_o=recvPower_o/1000.0;//单位转换
    double recvPower=gamma_d(m,((recvPower_o)/m))*1000.0;//功率服从gamma分布,得到新的接收功率.
    //2015-4-5
    if (recvPower < sensitivity) {//判断接收功率和阀值的关系,以处理接收的数据.
    ...........
    }

上面的实现代码在Decider80211p.cc文件中,该文件作为物理层的补充,里面的函数将调用相应的信道模型来计算接收功率。显然,要想使得上面的代码正确,必须使当前使用的信道模型为自由空间传播模型(config.xml文件中设定).

这个方法的好处就是简单可行,缺点是修改了物理层代码,使得要想使用其他信道,还需要删除掉新添加的代码.

该方法仅供参考,Veins中信道模型的实现方式比较难懂,如果有同学知道其实现机理,还请多多交流!

[1] https://github.com/aarizaq/inetmanet-2.0
[2] Kuntz A, Schmidt-Eisenlohr F, Graute O, et al. Introducing probabilistic radio propagation models in omnet++ mobility framework and cross validation check with ns-2[C]//Proceedings of the 1st international conference on Simulation tools and techniques for communications, networks and systems & workshops. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2008: 72.

你可能感兴趣的:(车载自组织网络,仿真)