| | 104 | |
| | 105 | * Include in {{{files/usrp-bs-serials.txt}}} the IP address {{{10.118.2.2}}}, i.e., use {{{sdr2-s1-lg1}}} as the base station (BS). In {{{files/usrp-bs-only.json}}}, set {{{"channel" : "AB",}}} to enable dual-channel on {{{sdr2-s1-lg1}}}. |
| | 106 | |
| | 107 | * Similarly, in {{{files/usrp-client-only.json}}}, set {{{"sdr_id" : [ "10.118.3.2" ]}}} (i.e., use {{{sdr2-md1}}} as the user) and {{{"channel" : "AB",}}} to enable dual-channel on {{{sdr2-md1}}}. |
| | 108 | |
| | 109 | |
| | 110 | === Execution === |
| | 111 | ==== Run the experiment ==== |
| | 112 | * In the first terminal [Terminal 1], start the client: |
| | 113 | {{{#!shell |
| | 114 | root@srv2-lg1:~/git/renew-software/CC/Sounder# ./sounder files/usrp-client-only.json |
| | 115 | ... |
| | 116 | ... |
| | 117 | pinning client thread 0 to core 1 |
| | 118 | scheduling TX 13 Frames (41.08 ms) in the future! |
| | 119 | 1 uplink symbols will be sent per frame... |
| | 120 | Beacon detected at Time 32476200, sync_index: 13100 |
| | 121 | Start main client txrx loop... |
| | 122 | }}} |
| | 123 | |
| | 124 | * In the second terminal [Terminal 2], start the BS: |
| | 125 | {{{#!shell |
| | 126 | root@srv2-lg1:~/git/renew-software/CC/Sounder# ./sounder files/usrp-bs-only.json |
| | 127 | ... |
| | 128 | ... |
| | 129 | Set HDF5 File to logs/trace-2020-9-21-18-46-29_1x2x2.hdf5 and group to / |
| | 130 | task thread 0 starts |
| | 131 | pinning thread 0 to core 1 |
| | 132 | Recv Thread 0: waiting for release |
| | 133 | receiver thread 0 has 1 radios |
| | 134 | Sync BS host and FPGA timestamp... |
| | 135 | Start BS main recv loop... |
| | 136 | Saving HDF5, 2000 frames saved. |
| | 137 | ... |
| | 138 | ... |
| | 139 | }}} |
| | 140 | |
| | 141 | ==== Analyze the results ==== |
| | 142 | * Once the hdf5 file is recorded (in this case, {{{logs/trace-2020-9-21-18-46-29_1x2x2.hdf5}}}), follow the **Analyze the HDF5 dataset** step [https://docs.renew-wireless.org/dev-suite/design-flows/cpp/sounder/ here] to analyze the results. For example, we can show the pilot sequence for computing the 2x2 channel matrix H = [h00, h01; h10, h11] as follows: |
| | 143 | {{{#!shell |
| | 144 | root@srv2-lg1:~/git/renew-software/PYTHON/IrisUtils# python3 plot_hdf5.py ../../CC/Sounder/logs/trace-2020-9-21-18-46-29_1x2x2.hdf5 --ref-ant 0 --ref-user 0 --ref-frame 1500 |
| | 145 | }}} |
| | 146 | |
| | 147 | || [[Image(MIMOSounding_tutorial_h00.png, 900px)]] || |
| | 148 | |
| | 149 | |