/usr/include/ns3.27/ns3/lte-spectrum-value-helper.h is in libns3-dev 3.27+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Author: Giuseppe Piro <g.piro@poliba.it>
*/
#ifndef LTE_SPECTRUM_VALUE_HELPER_H
#define LTE_SPECTRUM_VALUE_HELPER_H
#include <ns3/spectrum-value.h>
#include <vector>
namespace ns3 {
/**
* \ingroup lte
*
* \brief This class defines all functions to create spectrum model for lte
*/
class LteSpectrumValueHelper
{
public:
/**
* Calculates the carrier frequency from the E-UTRA Absolute
* Radio Frequency Channel Number (EARFCN) according to 3GPP TS
* 36.101 section 5.7.3 "Carrier frequency and EARFCN".
*
* \param earfcn the EARFCN
*
* \return the carrier frequency in Hz
*/
static double GetCarrierFrequency (uint32_t earfcn);
/**
* Converts downlink EARFCN to corresponding LTE frequency band number.
*
* \param earfcn the EARFCN
*
* \return the downlink carrier band
*/
static uint16_t GetDownlinkCarrierBand (uint32_t nDl);
/**
* Converts uplink EARFCN to corresponding LTE frequency band number.
*
* \param earfcn the EARFCN
*
* \return the uplink carrier band
*/
static uint16_t GetUplinkCarrierBand (uint32_t nDl);
/**
* Calculates the downlink carrier frequency from the E-UTRA Absolute
* Radio Frequency Channel Number (EARFCN) using the formula in 3GPP TS
* 36.101 section 5.7.3 "Carrier frequency and EARFCN".
*
* \param earfcn the EARFCN
*
* \return the downlink carrier frequency in Hz
*/
static double GetDownlinkCarrierFrequency (uint32_t earfcn);
/**
* Calculates the uplink carrier frequency from the E-UTRA Absolute
* Radio Frequency Channel Number (EARFCN) using the formula in 3GPP TS
* 36.101 section 5.7.3 "Carrier frequency and EARFCN".
*
* \param earfcn the EARFCN
*
* \return the uplink carrier frequency in Hz
*/
static double GetUplinkCarrierFrequency (uint32_t earfcn);
/**
*
*
* \param txBandwidthConf the tranmission bandwidth
* configuration in number of resource blocks
*
* \return the nominal channel bandwidth in Hz as per 3GPP TS 36.101
*/
static double GetChannelBandwidth (uint8_t txBandwidthConf);
/**
*
* \param earfcn the carrier frequency (EARFCN) at which reception
* is made
* \param bandwidth the Transmission Bandwidth Configuration in
* number of resource blocks
*
* \return the static SpectrumModel instance corresponding to the
* given carrier frequency and transmission bandwidth
* configuration. If such SpectrumModel does not exist, it is
* created.
*/
static Ptr<SpectrumModel> GetSpectrumModel (uint32_t earfcn, uint8_t bandwidth);
/**
* create a spectrum value representing the power spectral
* density of a signal to be transmitted. See 3GPP TS 36.101 for
* a definition of most of the parameters described here.
*
* \param earfcn the carrier frequency (EARFCN) of the transmission
* \param bandwidth the Transmission Bandwidth Configuration in
* number of resource blocks
* \param powerTx the total power in dBm over the whole bandwidth
* \param activeRbs the list of Active Resource Blocks (PRBs)
*
* \return a pointer to a newly allocated SpectrumValue representing the TX Power Spectral Density in W/Hz for each Resource Block
*/
static Ptr<SpectrumValue> CreateTxPowerSpectralDensity (uint32_t earfcn,
uint8_t bandwidth,
double powerTx,
std::vector <int> activeRbs);
/**
* create a spectrum value representing the power spectral
* density of a signal to be transmitted. See 3GPP TS 36.101 for
* a definition of most of the parameters described here.
*
* \param earfcn the carrier frequency (EARFCN) of the transmission
* \param bandwidth the Transmission Bandwidth Configuration in
* number of resource blocks
* \param powerTx the total power in dBm over the whole bandwidth
* \param powerTxMap the map of power in dBm for each RB,
* if map contain power for RB, powerTx is not used for this RB,
* otherwise powerTx is set for this RB
* \param activeRbs the list of Active Resource Blocks (PRBs)
*
* \return a pointer to a newly allocated SpectrumValue representing the TX Power Spectral Density in W/Hz for each Resource Block
*/
static Ptr<SpectrumValue> CreateTxPowerSpectralDensity (uint32_t earfcn,
uint8_t bandwidth,
double powerTx,
std::map<int, double> powerTxMap,
std::vector <int> activeRbs);
/**
* create a SpectrumValue that models the power spectral density of AWGN
*
* \param earfcn the carrier frequency (EARFCN) at which reception
* is made
* \param bandwidth the Transmission Bandwidth Configuration in
* number of resource blocks
* \param noiseFigure the noise figure in dB w.r.t. a reference temperature of 290K
*
* \return a pointer to a newly allocated SpectrumValue representing the noise Power Spectral Density in W/Hz for each Resource Block
*/
static Ptr<SpectrumValue> CreateNoisePowerSpectralDensity (uint32_t earfcn, uint8_t bandwidth, double noiseFigure);
/**
* create a SpectrumValue that models the power spectral density of AWGN
*
* \param noiseFigure the noise figure in dB w.r.t. a reference temperature of 290K
* \param spectrumModel the SpectrumModel instance to be used
*
* \return a pointer to a newly allocated SpectrumValue representing the noise Power Spectral Density in W/Hz for each Resource Block
*/
static Ptr<SpectrumValue> CreateNoisePowerSpectralDensity (double noiseFigure, Ptr<SpectrumModel> spectrumModel);
};
} // namespace ns3
#endif /* LTE_SPECTRUM_VALUE_HELPER_H */
|