|   | 122 | === Execution === | 
          
          
            |   | 123 | ==== Run the experiment ==== | 
          
          
            |   | 124 | * In the USRP-B210 {{{node8-7}}} terminal [Terminal 1], start the client: | 
          
          
            |   | 125 | {{{#!shell | 
          
          
            |   | 126 | root@node8-7:~/RENEWLab/CC/Sounder# ./build/sounder --conf files/special_conf/usrp-16QAM.json --client_only | 
          
          
            |   | 127 | ... | 
          
          
            |   | 128 | ... | 
          
          
            |   | 129 | pinning client thread 0 to core 1 | 
          
          
            |   | 130 | scheduling TX 13 Frames (41.08 ms) in the future! | 
          
          
            |   | 131 | 1 uplink symbols will be sent per frame... | 
          
          
            |   | 132 | Beacon detected at Time 32476200, sync_index: 13100 | 
          
          
            |   | 133 | Start main client txrx loop... | 
          
          
            |   | 134 | }}} | 
          
          
            |   | 135 |  | 
          
          
            |   | 136 | * In the second terminal [Terminal 2], start the BS: | 
          
          
            |   | 137 | {{{#!shell | 
          
          
            |   | 138 | root@srv2-lg1:~/git/renew-software/CC/Sounder# ./sounder files/usrp-bs-only.json  | 
          
          
            |   | 139 | ... | 
          
          
            |   | 140 | ... | 
          
          
            |   | 141 | Set HDF5 File to logs/trace-2020-9-21-18-46-29_1x2x2.hdf5 and group to / | 
          
          
            |   | 142 | task thread 0 starts | 
          
          
            |   | 143 | pinning thread 0 to core 1 | 
          
          
            |   | 144 | Recv Thread 0: waiting for release | 
          
          
            |   | 145 | receiver thread 0 has 1 radios | 
          
          
            |   | 146 | Sync BS host and FPGA timestamp... | 
          
          
            |   | 147 | Start BS main recv loop...  | 
          
          
            |   | 148 | Saving HDF5, 2000 frames saved. | 
          
          
            |   | 149 | ... | 
          
          
            |   | 150 | ... | 
          
          
            |   | 151 | }}} | 
          
          
            |   | 152 |  | 
          
          
            |   | 153 | ==== Analyze the results ==== | 
          
          
            |   | 154 | * 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: | 
          
          
            |   | 155 | {{{#!shell | 
          
          
            |   | 156 | 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 | 
          
          
            |   | 157 | }}} | 
          
          
            |   | 158 | where {{{--ref-ant = 0, 1}}} represents the BS antenna index, and {{{--ref-user = 0, 1}}} represents the user index. | 
          
          
            |   | 159 |  | 
          
          
            |   | 160 | || [[Image(MIMOSounding_tutorial_h00.png, 600px)]] || [[Image(MIMOSounding_tutorial_h01.png, 600px)]] || | 
          
          
            |   | 161 | || [[Image(MIMOSounding_tutorial_h10.png, 600px)]] || [[Image(MIMOSounding_tutorial_h11.png, 600px)]] ||  | 
          
          
            |   | 162 |  | 
          
          
            |   | 163 |  |