NS3中接收信号强度RSS获取方法

NS2中获取信号强度

p是数据包
TxPr是传输信号强度
RxPr是接收信号强度

Packet *p = Packet::alloc();
//SIGNAL
double receiveSignalStrength = p->txinfo_.RxPr;
double RSS;
if(receiveSignalStrength == 0)
{
RSSI = -200;
}
else
{
RSS = 10*log10(receiveSignalStrength);
}
if(SIGNAL_THRESHOLD >= RSS)
{
Packet::free((Packet *)p);
return;
}

NS3中获取信号强度

回调函数

void ReceivePacketWithRss(std::string context, Ptr<const Packet> packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId)
{
  WifiMacHeader hdr;
  packet->PeekHeader(hdr);
  uint32_t index = std::stoi(context.substr(10, 1));
  Vector pos = GetPosition(c.Get(index));
  Vector Tpos = GetPosition(c.Get(0)); // Target Position
  NS_LOG_UNCOND("*******************************************************************************************************************");
  NS_LOG_UNCOND("%INFO: I am Node " << index << " My Position is:" << pos << " And I Recieved " << signalNoise.signal << " dbm");
  NS_LOG_UNCOND("*******************************************************************************************************************");
  
  outFiles[0] << Simulator::Now().GetMilliSeconds() << "," << context.substr(10, 1) <<"," << pos.x << "," << pos.y << "," << signalNoise.signal <<"," << CalculateDistance(pos,Tpos) << "," << Tpos.x << "," << Tpos.y <<"\n";

  outFiles[index] << Tpos.x << "," << Tpos.y << "," << signalNoise.signal << "\n";
}

在这里插入图片描述
跟踪

Config::Connect("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::WifiPhy/MonitorSnifferRx", MakeCallback(&ReceivePacketWithRss));

节点位置

void SetPosition(Ptr<Node> node, Vector position)
{
  Ptr<MobilityModel> mobility = node->GetObject<MobilityModel>();
  mobility->SetPosition(position);
}

Vector GetPosition(Ptr<Node> node)
{
  Ptr<MobilityModel> mobility = node->GetObject<MobilityModel>();
  return mobility->GetPosition();
}

传播模型(可更改)

  NS_LOG_UNCOND("Configuring PHY Loss model...");
  wifiChannel.SetPropagationDelay("ns3::ConstantSpeedPropagationDelayModel");
  wifiChannel.AddPropagationLoss("ns3::FriisPropagationLossModel");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值