Commit Graph

19 Commits

Author SHA1 Message Date
Tom Henderson
b6a5ee8151 Run utils/trim-trailing-whitespace.py on codebase 2022-06-05 21:01:11 -07:00
Biljana Bojovic
33097e47d9 spectrum: GetAntenna supports antenna arrays (address Tommaso Zugno's comment on !686) 2022-01-22 11:43:31 +01:00
bbojovic
a4b43d0132 spectrum: Move doppler term D and alpha and improve (Thanks to Sandra Lagen)
Co-authored-by: Sandra Lagen <sandra.lagen@cttc.es>

This commit also fixes an issue that was discovered during this implementation,
and that is that the stream was never assigned for the uniform random variable used for
the term D and alpha generation.

-Store term D and alpha into the channel params structure.
-Make sure to use correct angles and zenit of departure and arrival:
Save the direction of the generation of the channel params and channel matrix,
in order to know when regenerating channel matrix if the saved angles aoa, aod,
zoa and zod are of of s-to-u or u-to-s, so to properly use them.
- Simplify the type of the key of channel matrix map
- Remove unecessary if statements and abort replace by assert
- Add a more detailed description of the ThreeGppSpectrumPropagationLossModel changes
2022-01-22 11:43:28 +01:00
bbojovic
4ca8b12ea0 spectrum: Support passing the TX and RX PhasedArrayModel objects to spectrum model
This possibility is needed for the types of spectrum propagation models that need to have a pointer
to the TX and RX antenna arrays to perform calculations, such as e.g.,
ThreeGppSpectrumPropagationLossModel, which currently has hard limitation of having a maximum of 1
antenna array instance per device. ThreeGppSpectrumPropagationLossModel now inherits a new class
PhasedArraySpectrumPropagationLossModel. Its DoCalcRxPowerSpectralDensity function has now two
additional parameters: TX and RX antenna arrays. Also, AddDevice function is removed from
ThreeGppSpectrumPropagationLossModel, because it is not anymore needed to specify for each
device its TX/RX antenna, since these are now passed as parameters. Hence, to use
ThreeGppSpectrumPropagationLossModel, when implementing Spectrum PHY features,
modules should implement the function of SpectrumPhy GetAntenna to return the instance of
PhasedArrayModel of that SpectrumPhy. These instances will be passed by MultiModelSpectrumChannel
(one of the core classes in the spectrum module) to propagation classes, children of
PhasedArraySpectrumPropagationLossModel, when it is necessary to DoCalcRxPowerSpectralDensity to
callculate the propagation loss.

Additionally: Fixed pair key generation for 3gpp channel model: Previous implementation was
using a cantor function of two integer of 32 bits and as a results was giving a unique
representatio of 32 bits. This is wrong, because such function needed even more than 64
bits to represent that value. Even if in ns-3 simulation we are not going to have such large
node numbers, we should fix this. Instead of just changing 64 bits from cantor function, I propose to
replace the cantor function with just simple concatenation of two 32 bits.

I also propose moving min and max inside of the function, to prevent some eventual future errors
in using GetKey, because with the previous implementation there was assumption that who calls GetKey
will previously sort its parameters, and first provide the min value, and then the max value,
and this was not even documented.
2022-01-22 03:42:49 +01:00
Mattia Lecci
2cfcebe0d0 antenna: (merges !481) Update antenna module
- Introduce PhasedArrayModel
- Use the new PhasedArrayModel framework across modules (e.g., 3gpp channel model)
- Improve Angles class. Furthermore, Angles has been translated from elevation to inclination and from degrees to radians
- Update antenna module doc
- Fix random angle generation for the 3gpp channel model. Specifically, cluster and sub-cluster angles might be generated with inclination angles outside the inclination range [0, pi], and have now been fixed.
2021-04-10 18:59:00 -07:00
Tommaso Zugno
0891fa9118 propagation: (merges !435) Channel condition model for vehicular scenarios
This work was done in collaboration with Zoraze Ali and Sandra Lagen.
2020-11-28 20:17:05 -08:00
mychele
a0b58934d3 spectrum: (merges !257) Matrix-based channel models
* Make ThreeGppChannelModel inherit from a new interface.
 * Update three-gpp-spectrum-propagation-loss-model
 * Define ThreeGppChannelMatrix
2020-05-15 22:15:03 -07:00
Natale Patriciello
bc65cf4f50 doc: Fix greek letters within model documentation
In Europe, people are advanced and use an UTF-* compatible charset, that
permits them to use many more letters than countries that
rely on ASCII. Unfortunately, latex still doesn't recognize all
these new character, so we have to use special escape sequences.

Close #188
2020-05-05 10:31:34 +02:00
Peter D. Barnes, Jr
49b47a4e8c doc: sphinx warnings 2020-04-08 20:14:24 -07:00
Tommaso Zugno
b4f5695e05 Integration of the 3GPP TR 38.901 fast fading model (GSoC 2019) (2/2)
Close !90
2020-03-30 18:23:07 +02:00
Peter D. Barnes, Jr.
51fa9e6142 [sphinx] Fix various sphinx errors 2018-01-24 01:57:57 -08:00
Benjamin Cizdziel
a4b5738b44 remove ChannelNumber attribute from TvSpectrumTransmitter 2015-04-13 14:21:27 -07:00
Benjamin Cizdziel
5b023387a4 add missing figures 2015-04-13 13:19:33 -07:00
Benjamin Cizdziel
7e795e2891 TvSpectrumTransmitter classes to create television transmitter(s) that transmit PSD spectrums customized by attributes such as modulation type, power, antenna type, channel frequency, etc. 2015-04-08 19:45:39 -07:00
Piotr Gawlowicz
a9ef49d196 GSoC 2014 FFR algorithms 2014-09-05 01:12:55 +02:00
Nicola Baldo
eae942732d clarified SpectrumSignalParameters usage in model docs 2014-01-13 17:10:49 +01:00
Nicola Baldo
fc244dde4d fixed Bug 1730 - no model library documentation for spectrum module 2013-12-24 18:22:02 +01:00
Peter D. Barnes, Jr.
1c3e6149ab Models source highlighting 2013-11-14 16:57:21 -08:00
Tommaso Pecorella
cf8ee5fccb Spectrum model documetation placeholder 2013-07-13 15:31:12 +02:00