-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/rotation management #8
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Multi phase antenna array * Initial phase antenna array orientation * Node rotation over time * JSON output * New visualizer folder structure * Update test suite to support JSON and compatibility with new naming conventions * General improvements Commit details: * Update random generator functions to return multiple realizations * Extension to 3D output * Added new functions for MIMO features * Added dimension in output to support multiple independent stochastic realizations * Added dimension in output matrix to support multiple independent stochastic realizations * Support multiple PAA in raytracer.m * Write multiple PAA output to files * Configure multiple PAAs * Updated comment * Added PAA config files * Added Quaternion library * Added VR scenario * Added aoa and aod rotation * Added helper functions reading rotation traces and creating qd input * Added json output * Fixed bug. Avoid to append new output after previous content. * QD modified to support rotation. New definition of node location now including a temporal dimension. This commit includes also json export feature, which needs further test. * Fixed bug. List of file refreshed after creating node mobility files * Updated numberOfTimeDivision to load the full measurement trace in VR scenario * Added angles in nodeposition (visualizer output) * Added quaternion in list important folders * Added json flag and paa index as input of writeQdJsonOutput * Fixed json writig and generalized for paas/variable number of rays * Code cleaning * Fixed bug in load mobility and write output * Improved cluster_paa robustness/backwards compatibility/readability * Fixed bug: hard coded value replaced * Linear mobility extended for multi-paa devices * Improved backwards compatibility * Fixed bug in DOA rotation * If no MPC were found avoid matrix construction * Fixed bug in linear mobility for PAA * Updated nodePosition when using linear mobility. Cleaning. * Check which of the elements of the cell array output is empty. Write those not empty * Node mobility can be loaded from files .dat. If files not found default files are created. * MPC encoding kept as cell to allow multiple MPC sizes. Nodeposition.json keeps brackets also if a single vector is json encoded. * Removed rotation information from paa output * Mpc cell init. This allow to keep empty values if Mpc is not present * Optimized Json writing in QD file * PAA position output keeps brackets also if a single vector is json encoded * Improved QD output * Added write PAA info in raytracer. Rotation PAAs computed outside main loops. * point rotation includes initial orientation * PAA index starts from 0 * Warning if trace is not found * Fixed bug in output generation * Manage initial orientation. Commented PAA write, to remove in following commits * Removed angles in PAA position output * Fixed JSON for 1MPC * Load always MS1 * Removed conversion inch to m * Fixed bug: apply first device rotation and than PAA orientation * Added temporary variable to support both output. Write total rotation. * Added conversion from quaternion to euc * Added 13 nodes scenario * Time duration increased to 30000 * Updated scenario * Improved compatibility with newer Matlab releases: restore default table behavior * Add check if node is outside room * Removed subfolders * Removed subfolders * Code improvement * New node config: removed node.dat initial orientation set per paa * Extended NAN for MIMO channels when writing Json * Added orientation per PAA. pointRotation is now coordinateRotation with frame/point option. * Improved comments in coordinate rotation * Added L-room with multi-paa and rotation * Added missing function * Increase code robustness. Add NAN for blocked antennas * Major update. Frame rotation is not performed in raytracing loop but in postprocessing to take care of PAA with same centroids but rotated differently * Centroid info is written in output file. Orientation is added in PAA info struct * Add nan row after adding nan for missing antennas * Fixed bug: LOS control on doa before rotation, apply device rotation during raytracing, reverse rotation information in output * Missing file * Single PAA bug fixes * Removed NodesPosition.dat from example n3 output folder * Remove useless file from L-Room config * Adapted xml format * Add zero in output if no mpc * Increased reverseFrmRotMpInfo.m robustness * Disable write report and both outputs to execute test * Return empty if input is empty * Check if nodes.dat is still present and return obsolete warning. - Adapted file naming convention to be back-compatible - Fixes for mobility type 1 - removed useless visualizer output files * Keep csv file as default output for testing * Returned information for frame rotation as output of stochastic generator * Fixed bugs from merge - fixed doa/dod - code improvements * Using stochastic part path gain might be (wrongly) complex. Added real(gain) to avoid crash. Stochasting engine needs further verification * Start indexing from 0 * Start indexing from 0 * Start indexing from 0 * Start indexing from 0 * Added new scenario * Added new scenario * Added JSON comment * Added comments in nodeProfileCfg * Auto-indent * Improved raytracer comments * Cluster PAA improvements * Code cleaning and variable renaming * Remove unused functions * Code cleaning * Run new scenario * Added output folder * Added rotation in scenario * Modified test framework: added functions looking for new file, adaptad previous functions to new folder structure * Do not write rotation in obsolete visualizer files for matching output test * code cleaning * Removed redundant scenarios * Updated test functions * Updated header * scenarioNameStr empty * Removed brackets * Update src/quaternions/qtrnConj.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/Raytracer.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/LOSOutputGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/LOSOutputGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/LOSOutputGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/LinearMobility.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/cluster_paa.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/coordinateRotation.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/generateChannelPaa.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/generateChannelPaa.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/generateChannelPaa.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/generateChannelPaa.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Removed varargout * Update src/raytracer/phaseRotation.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/phaseRotation.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/phaseRotation.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/phaseRotation.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/randomLaplaceGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/randomLaplaceGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/randomLaplaceGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update test/exampleOutputsTest.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update test/exampleOutputsTest.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * MPC json saved as matrix * Updated header * Update src/quaternions/qtrnMultiply.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/quaternions/qtrnVectorrotate.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/randomExponetialGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/utils/saveEuclidianFromTrace.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Software review * Update src/utils/savePositionFromTrace.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/utils/saveRotationFromTrace.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/multipath.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Software review * Update src/utils/writeQdFileOutput.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/utils/writeQdFileOutput.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/utils/writeQdFileOutput.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/utils/writeQdFileOutput.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Software review * Update src/raytracer/multipath.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/multipath.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/multipath.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Update src/raytracer/QDGenerator.m Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com> * Software review * Software review * Software review * Commented linear mobility and randomization * Remove linear mobility and random. Code cleaning * Run Datacenter: new visualizer output. New qd output: random part is different because randomization rand were removed * Run DenserScenario: new visualizer output * Run Indoor1: new visualizer output. New qd output (no randomization) * Run Indoor2: new visualizer output. * Run L-Room: new visualizer output. * Run L-Room-rotation: only new line * Updated visualizer output. Null replaces empty * Run Outdoor1: new visualizer output. * Run SpatialSharing: new input/visualizer output. * Run StreetCanyon: new visualizer output. * Raytracer.m improvement * Function renamed * Moved visualizer write to different function * Config update * Run Indoor1: no mobility * Code cleaning * Code cleaning * Delete functions not used * Code cleaning * Deterministic path loss is returned. To be used when stochastic component is off * Added function to convert back and forth angle vector to az/el * Added comment * Added comment * Porting code from treetraversal * Porting code from treetraversal * Read libray path from config file * Added material folder * Added new qdGenerator * Replaced qdGenerator, code cleaning * Code cleaning * Update input. Added material input in config and replaced box and l-room with new materials * Code cleaning * Deleted previous QDgenerator * qdGenerator renamed * Test restored * Fixed reflection loss to 10dB when material library is not found + code cleaning * Updated function name * Re-run test: switch off random component, set default material library, fixed bug in MPC write * Added empty material library * Load empty material library if not defined in config file * Code cleaning * Moved quaternions library into utils/ * Deleted quaternion folder in src * White space and indentation improvements * Replaced switch3 with isMpcNonUnique and added comments * Updated input in indooor input. Node2 had wrong position * Removed nodeVelocity config * Open file with Wt permission * Improved code readability * Removed previous material library * Reverted check on NodesPosition * Re-run indoor1 due to different node position * Re-run DataCenter to remove stochastic output * Improved angleToVector implementation * Improved header vector2angle.m * Improved header singleMultipathGenerator.m * Removed duplicated function * Improved header, fixed sign bug, improved readability getReflectionLoss.m * Added correct quaternion folder in main * Restored previous functions for test suite * removed nodes.dat * Renamed PAA files * Added reflection loss as input * Update paa file name in config function * Removed check on obsolete output * Improved Indentation * Removed nan rays, fixed dimension bug in case all pre/post are nan * Added comment * Fixed indexing bugs Co-authored-by: Blandino <snb28@NIST.GOV> Co-authored-by: Mattia Lecci <mattia.lecci@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Commit details:
Update random generator functions to return multiple realizations
Extension to 3D output
Added new functions for MIMO features
Added dimension in output to support multiple independent stochastic realizations
Added dimension in output matrix to support multiple independent stochastic realizations
Support multiple PAA in raytracer.m
Write multiple PAA output to files
Configure multiple PAAs
Updated comment
Added PAA config files
Added Quaternion library
Added VR scenario
Added aoa and aod rotation
Added helper functions reading rotation traces and creating qd input
Added json output
Fixed bug. Avoid to append new output after previous content.
QD modified to support rotation. New definition of node location now including a temporal dimension. This commit includes also json export feature, which needs further test.
Fixed bug. List of file refreshed after creating node mobility files
Updated numberOfTimeDivision to load the full measurement trace in VR scenario
Added angles in nodeposition (visualizer output)
Added quaternion in list important folders
Added json flag and paa index as input of writeQdJsonOutput
Fixed json writig and generalized for paas/variable number of rays
Code cleaning
Fixed bug in load mobility and write output
Improved cluster_paa robustness/backwards compatibility/readability
Fixed bug: hard coded value replaced
Linear mobility extended for multi-paa devices
Improved backwards compatibility
Fixed bug in DOA rotation
If no MPC were found avoid matrix construction
Fixed bug in linear mobility for PAA
Updated nodePosition when using linear mobility. Cleaning.
Check which of the elements of the cell array output is empty. Write those not empty
Node mobility can be loaded from files .dat. If files not found default files are created.
MPC encoding kept as cell to allow multiple MPC sizes. Nodeposition.json keeps brackets also if a single vector is json encoded.
Removed rotation information from paa output
Mpc cell init. This allow to keep empty values if Mpc is not present
Optimized Json writing in QD file
PAA position output keeps brackets also if a single vector is json encoded
Improved QD output
Added write PAA info in raytracer. Rotation PAAs computed outside main loops.
point rotation includes initial orientation
PAA index starts from 0
Warning if trace is not found
Fixed bug in output generation
Manage initial orientation. Commented PAA write, to remove in following commits
Removed angles in PAA position output
Fixed JSON for 1MPC
Load always MS1
Removed conversion inch to m
Fixed bug: apply first device rotation and than PAA orientation
Added temporary variable to support both output. Write total rotation.
Added conversion from quaternion to euc
Added 13 nodes scenario
Time duration increased to 30000
Updated scenario
Improved compatibility with newer Matlab releases: restore default table behavior
Add check if node is outside room
Removed subfolders
Removed subfolders
Code improvement
New node config: removed node.dat initial orientation set per paa
Extended NAN for MIMO channels when writing Json
Added orientation per PAA. pointRotation is now coordinateRotation with frame/point option.
Improved comments in coordinate rotation
Added L-room with multi-paa and rotation
Added missing function
Increase code robustness. Add NAN for blocked antennas
Major update. Frame rotation is not performed in raytracing loop but in postprocessing to take care of PAA with same centroids but rotated differently
Centroid info is written in output file. Orientation is added in PAA info struct
Add nan row after adding nan for missing antennas
Fixed bug: LOS control on doa before rotation, apply device rotation during raytracing, reverse rotation information in output
Missing file
Single PAA bug fixes
Removed NodesPosition.dat from example n3 output folder
Remove useless file from L-Room config
Adapted xml format
Add zero in output if no mpc
Increased reverseFrmRotMpInfo.m robustness
Disable write report and both outputs to execute test
Return empty if input is empty
Check if nodes.dat is still present and return obsolete warning. - Adapted file naming convention to be back-compatible - Fixes for mobility type 1 - removed useless visualizer output files
Keep csv file as default output for testing
Returned information for frame rotation as output of stochastic generator
Fixed bugs from merge - fixed doa/dod - code improvements
Using stochastic part path gain might be (wrongly) complex. Added real(gain) to avoid crash. Stochasting engine needs further verification
Start indexing from 0
Start indexing from 0
Start indexing from 0
Start indexing from 0
Added new scenario
Added new scenario
Added JSON comment
Added comments in nodeProfileCfg
Auto-indent
Improved raytracer comments
Cluster PAA improvements
Code cleaning and variable renaming
Remove unused functions
Code cleaning
Run new scenario
Added output folder
Added rotation in scenario
Modified test framework: added functions looking for new file, adaptad previous functions to new folder structure
Do not write rotation in obsolete visualizer files for matching output test
code cleaning
Removed redundant scenarios
Updated test functions
Updated header
scenarioNameStr empty
Removed brackets
Update src/quaternions/qtrnConj.m
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Removed varargout
Update src/raytracer/phaseRotation.m
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
MPC json saved as matrix
Updated header
Update src/quaternions/qtrnMultiply.m
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Software review
Update src/utils/savePositionFromTrace.m
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Software review
Update src/utils/writeQdFileOutput.m
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Software review
Update src/raytracer/multipath.m
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com
Software review
Software review
Software review
Commented linear mobility and randomization
Remove linear mobility and random. Code cleaning
Run Datacenter: new visualizer output. New qd output: random part is different because randomization rand were removed
Run DenserScenario: new visualizer output
Run Indoor1: new visualizer output. New qd output (no randomization)
Run Indoor2: new visualizer output.
Run L-Room: new visualizer output.
Run L-Room-rotation: only new line
Updated visualizer output. Null replaces empty
Run Outdoor1: new visualizer output.
Run SpatialSharing: new input/visualizer output.
Run StreetCanyon: new visualizer output.
Raytracer.m improvement
Function renamed
Moved visualizer write to different function
Config update
Run Indoor1: no mobility
Code cleaning
Code cleaning
Delete functions not used
Code cleaning
Deterministic path loss is returned. To be used when stochastic component is off
Added function to convert back and forth angle vector to az/el
Added comment
Added comment
Porting code from treetraversal
Porting code from treetraversal
Read libray path from config file
Added material folder
Added new qdGenerator
Replaced qdGenerator, code cleaning
Code cleaning
Update input. Added material input in config and replaced box and l-room with new materials
Code cleaning
Deleted previous QDgenerator
qdGenerator renamed
Test restored
Fixed reflection loss to 10dB when material library is not found + code cleaning
Updated function name
Re-run test: switch off random component, set default material library, fixed bug in MPC write
Added empty material library
Load empty material library if not defined in config file
Code cleaning
Moved quaternions library into utils/
Deleted quaternion folder in src
White space and indentation improvements
Replaced switch3 with isMpcNonUnique and added comments
Updated input in indooor input. Node2 had wrong position
Removed nodeVelocity config
Open file with Wt permission
Improved code readability
Removed previous material library
Reverted check on NodesPosition
Re-run indoor1 due to different node position
Re-run DataCenter to remove stochastic output
Improved angleToVector implementation
Improved header vector2angle.m
Improved header singleMultipathGenerator.m
Removed duplicated function
Improved header, fixed sign bug, improved readability getReflectionLoss.m
Added correct quaternion folder in main
Restored previous functions for test suite
removed nodes.dat
Renamed PAA files
Added reflection loss as input
Update paa file name in config function
Removed check on obsolete output
Improved Indentation
Removed nan rays, fixed dimension bug in case all pre/post are nan
Added comment
Fixed indexing bugs
Co-authored-by: Blandino snb28@NIST.GOV
Co-authored-by: Mattia Lecci mattia.lecci@gmail.com