A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
spectrum-signal-parameters.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 CTTC
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Nicola Baldo <nbaldo@cttc.es>
18
*/
19
20
#ifndef SPECTRUM_SIGNAL_PARAMETERS_H
21
#define SPECTRUM_SIGNAL_PARAMETERS_H
22
23
#include <ns3/matrix-array.h>
24
#include <ns3/nstime.h>
25
26
namespace
ns3
27
{
28
29
class
SpectrumPhy;
30
class
SpectrumValue;
31
class
AntennaModel;
32
33
/**
34
* \ingroup spectrum
35
*
36
* This struct provides the generic signal representation to be used by
37
* all wireless technologies. Any specific wireless technology is
38
* allowed to define additional signal parameters by inheriting from this
39
* struct and providing additional member variables. This makes sure
40
* that a minimum set of parameters (in particular, the ones needed
41
* for interference calculation) is
42
* common across all wireless technologies, while at the same time
43
* allowing each technology to have its own specific signal parameters.
44
*
45
* Furthermore, since the signal parameters specific of every technology inherit
46
* directly from this struct, each PHY can test (by using a dynamic
47
* cast) if a signal being received belongs to a given technology or not.
48
*
49
* \note when inheriting from this class, make sure that the assignment operator and the copy
50
* constructor work properly, making deep copies if needed.
51
*/
52
struct
SpectrumSignalParameters
:
public
SimpleRefCount
<SpectrumSignalParameters>
53
{
54
/**
55
* default constructor
56
*/
57
SpectrumSignalParameters
();
58
59
/**
60
* destructor
61
*/
62
virtual
~SpectrumSignalParameters
();
63
64
/**
65
* copy constructor
66
* \param p object to copy
67
*/
68
SpectrumSignalParameters
(
const
SpectrumSignalParameters
& p);
69
70
/**
71
* make a "virtual" copy of this class, where "virtual" refers to
72
* the fact that if the actual object is a derived class of
73
* SpectrumSignalParameters, then the copy is also a derived class
74
* of the same type.
75
* Each class inheriting from
76
* SpectrumSignalParameters should override this method and use it
77
* to call the copy constructor of the derived class.
78
*
79
* \return a copy of the (possibly derived) class
80
*/
81
virtual
Ptr<SpectrumSignalParameters>
Copy
()
const
;
82
83
/**
84
* The Power Spectral Density of the
85
* waveform, in linear units. The exact unit will depend on the
86
* type of transmission medium involved: W for radio communications, Pa for
87
* underwater acoustic communications. Other transmission media to
88
* be defined.
89
*
90
* \note when SpectrumSignalParameters is copied, only the pointer to the PSD will be copied.
91
* This is because SpectrumChannel objects normally overwrite the psd anyway, so there is no
92
* point in making a copy.
93
*/
94
Ptr<SpectrumValue>
psd
;
95
96
/**
97
* The duration of the packet transmission. It is
98
* assumed that the Power Spectral Density remains constant for the
99
* whole duration of the transmission. In other words, all waveform
100
* have a rect shape with respect to time.
101
*/
102
Time
duration
;
103
104
/**
105
* The SpectrumPhy instance that is making the transmission
106
*/
107
Ptr<SpectrumPhy>
txPhy
;
108
109
/**
110
* The AntennaModel instance that was used to transmit this signal.
111
*/
112
Ptr<AntennaModel>
txAntenna
;
113
114
/**
115
* The 3D channel matrix where the dimensions are: the number of RX ports,
116
* the number of TX Ports, the number of resource blocks (RBs).
117
* Needed in the MIMO system in which multiple TX and RX ports can exist,
118
* hence the PSD is multidimensional. Elements are the complex numbers.
119
*/
120
Ptr<const ComplexMatrixArray>
spectrumChannelMatrix
;
121
122
/**
123
* The 3D precoding matrix where the dimensions are: the number of TX ports,
124
* the number of TX streams, the number of RBs.
125
*/
126
Ptr<const ComplexMatrixArray>
precodingMatrix
;
127
};
128
129
}
// namespace ns3
130
131
#endif
/* SPECTRUM_SIGNAL_PARAMETERS_H */
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:77
ns3::SimpleRefCount
A template-based reference counting class.
Definition:
simple-ref-count.h:81
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:105
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::SpectrumSignalParameters
This struct provides the generic signal representation to be used by all wireless technologies.
Definition:
spectrum-signal-parameters.h:53
ns3::SpectrumSignalParameters::txAntenna
Ptr< AntennaModel > txAntenna
The AntennaModel instance that was used to transmit this signal.
Definition:
spectrum-signal-parameters.h:112
ns3::SpectrumSignalParameters::spectrumChannelMatrix
Ptr< const ComplexMatrixArray > spectrumChannelMatrix
The 3D channel matrix where the dimensions are: the number of RX ports, the number of TX Ports,...
Definition:
spectrum-signal-parameters.h:120
ns3::SpectrumSignalParameters::SpectrumSignalParameters
SpectrumSignalParameters()
default constructor
Definition:
spectrum-signal-parameters.cc:33
ns3::SpectrumSignalParameters::~SpectrumSignalParameters
virtual ~SpectrumSignalParameters()
destructor
Definition:
spectrum-signal-parameters.cc:38
ns3::SpectrumSignalParameters::precodingMatrix
Ptr< const ComplexMatrixArray > precodingMatrix
The 3D precoding matrix where the dimensions are: the number of TX ports, the number of TX streams,...
Definition:
spectrum-signal-parameters.h:126
ns3::SpectrumSignalParameters::duration
Time duration
The duration of the packet transmission.
Definition:
spectrum-signal-parameters.h:102
ns3::SpectrumSignalParameters::txPhy
Ptr< SpectrumPhy > txPhy
The SpectrumPhy instance that is making the transmission.
Definition:
spectrum-signal-parameters.h:107
ns3::SpectrumSignalParameters::Copy
virtual Ptr< SpectrumSignalParameters > Copy() const
make a "virtual" copy of this class, where "virtual" refers to the fact that if the actual object is ...
Definition:
spectrum-signal-parameters.cc:57
ns3::SpectrumSignalParameters::psd
Ptr< SpectrumValue > psd
The Power Spectral Density of the waveform, in linear units.
Definition:
spectrum-signal-parameters.h:94
src
spectrum
model
spectrum-signal-parameters.h
Generated on Tue May 28 2024 23:39:21 for ns-3 by
1.9.6