A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
spectrum-signal-parameters.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 CTTC
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Nicola Baldo <nbaldo@cttc.es>
7 */
8
9#ifndef SPECTRUM_SIGNAL_PARAMETERS_H
10#define SPECTRUM_SIGNAL_PARAMETERS_H
11
12#include <ns3/matrix-array.h>
13#include <ns3/nstime.h>
14
15namespace ns3
16{
17
18class SpectrumPhy;
19class SpectrumValue;
20class AntennaModel;
21
22/**
23 * \ingroup spectrum
24 *
25 * This struct provides the generic signal representation to be used by
26 * all wireless technologies. Any specific wireless technology is
27 * allowed to define additional signal parameters by inheriting from this
28 * struct and providing additional member variables. This makes sure
29 * that a minimum set of parameters (in particular, the ones needed
30 * for interference calculation) is
31 * common across all wireless technologies, while at the same time
32 * allowing each technology to have its own specific signal parameters.
33 *
34 * Furthermore, since the signal parameters specific of every technology inherit
35 * directly from this struct, each PHY can test (by using a dynamic
36 * cast) if a signal being received belongs to a given technology or not.
37 *
38 * \note when inheriting from this class, make sure that the assignment operator and the copy
39 * constructor work properly, making deep copies if needed.
40 */
41struct SpectrumSignalParameters : public SimpleRefCount<SpectrumSignalParameters>
42{
43 /**
44 * default constructor
45 */
47
48 /**
49 * destructor
50 */
52
53 /**
54 * copy constructor
55 * \param p object to copy
56 */
58
59 /**
60 * make a "virtual" copy of this class, where "virtual" refers to
61 * the fact that if the actual object is a derived class of
62 * SpectrumSignalParameters, then the copy is also a derived class
63 * of the same type.
64 * Each class inheriting from
65 * SpectrumSignalParameters should override this method and use it
66 * to call the copy constructor of the derived class.
67 *
68 * \return a copy of the (possibly derived) class
69 */
70 virtual Ptr<SpectrumSignalParameters> Copy() const;
71
72 /**
73 * The Power Spectral Density of the
74 * waveform, in linear units. The exact unit will depend on the
75 * type of transmission medium involved: W for radio communications, Pa for
76 * underwater acoustic communications. Other transmission media to
77 * be defined.
78 *
79 * \note when SpectrumSignalParameters is copied, only the pointer to the PSD will be copied.
80 * This is because SpectrumChannel objects normally overwrite the psd anyway, so there is no
81 * point in making a copy.
82 */
84
85 /**
86 * The duration of the packet transmission. It is
87 * assumed that the Power Spectral Density remains constant for the
88 * whole duration of the transmission. In other words, all waveform
89 * have a rect shape with respect to time.
90 */
92
93 /**
94 * The SpectrumPhy instance that is making the transmission
95 */
97
98 /**
99 * The AntennaModel instance that was used to transmit this signal.
100 */
102
103 /**
104 * The 3D channel matrix where the dimensions are: the number of RX ports,
105 * the number of TX Ports, the number of resource blocks (RBs).
106 * Needed in the MIMO system in which multiple TX and RX ports can exist,
107 * hence the PSD is multidimensional. Elements are the complex numbers.
108 */
110
111 /**
112 * The 3D precoding matrix where the dimensions are: the number of TX ports,
113 * the number of TX streams, the number of RBs.
114 */
116};
117
118} // namespace ns3
119
120#endif /* SPECTRUM_SIGNAL_PARAMETERS_H */
Smart pointer class similar to boost::intrusive_ptr.
A template-based reference counting class.
Simulation virtual time values and global simulation resolution.
Definition nstime.h:94
Every class exported by the ns3 library is enclosed in the ns3 namespace.
This struct provides the generic signal representation to be used by all wireless technologies.
Ptr< AntennaModel > txAntenna
The AntennaModel instance that was used to transmit this signal.
Ptr< const ComplexMatrixArray > spectrumChannelMatrix
The 3D channel matrix where the dimensions are: the number of RX ports, the number of TX Ports,...
Ptr< const ComplexMatrixArray > precodingMatrix
The 3D precoding matrix where the dimensions are: the number of TX ports, the number of TX streams,...
Time duration
The duration of the packet transmission.
Ptr< SpectrumPhy > txPhy
The SpectrumPhy instance that is making the transmission.
virtual Ptr< SpectrumSignalParameters > Copy() const
make a "virtual" copy of this class, where "virtual" refers to the fact that if the actual object is ...
Ptr< SpectrumValue > psd
The Power Spectral Density of the waveform, in linear units.