| 31 |   |  * After nodes are imaged, verify that nodes are in POWEROFF state. Otherwise issue the following to turn them off for a reboot | 
          
          
            | 32 |   | {{{ | 
          
          
            | 33 |   | nilanjan@console.grid:~$ omf tell -a offh -t system:topo:all | 
          
          
            | 34 |   | }}} | 
          
          
            | 35 |   |  | 
          
          
            | 36 |   |  * Turn nodes back on and verify they are in POWERON state | 
          
          
            | 37 |   | {{{ | 
          
          
            | 38 |   | nilanjan@console.grid:~$ omf tell -a on -t node20-20,node19-19,node8-8 | 
          
          
            | 39 |   | }}} | 
          
          
            | 40 |   |  | 
          
          
            | 41 |   | In this example node8-8 and node19-19 is used as the transmitting nodes and the node20-20 as the receiver | 
          
          
            | 42 |   |  | 
          
          
            | 43 |   | === Generate signal source file using octave === | 
          
          
            | 44 |   |  | 
          
          
            | 45 |   | On each transmiting node, create a signal file using octave. You can use the scripts provided here as an example. On node8-8 create a file ''s1.bin'' using the lines below | 
          
          
            | 46 |   | {{{ | 
          
          
            | 47 |   | root@node8-8:~# cd wiserd | 
          
          
            | 48 |   | root@node8-8:~/wiserd# octave | 
          
          
            | 49 |   | octave:1> signal = fGenFDSignal(256,50,10,'1half'); | 
          
          
            | 50 |   | octave:2> saveToWiserdFile(signal,'s1.bin'); | 
          
          
            | 51 |   | octave:3> exit | 
          
          
            | 52 |   | }}} | 
          
          
            | 53 |   |  | 
          
          
            | 54 |   | The signal will look something like the following in the frequency domain - notice the first half of the spectrum is populated: | 
          
          
            | 55 |   |   || [[Image(s1.png, width=500px)]] || | 
          
          
            | 56 |   |  | 
          
          
            | 57 |   | Create a similar signal on node19-19 but with the 2nd half of the spectrum populated | 
          
          
            | 58 |   | {{{ | 
          
          
            | 59 |   | octave:1> signal = fGenFDSignal(256,50,10,'2half'); | 
          
          
            | 60 |   | octave:2> saveToWiserdFile(signal,'s2.bin'); | 
          
          
            | 61 |   | }}} | 
          
          
            | 62 |   |   || [[Image(s2.png, width=500px)]] || | 
          
          
            | 63 |   |  | 
          
          
            | 64 |   |  | 
          
          
            | 65 |   | === Set up transmitting node === | 
          
          
            | 66 |   |  | 
          
          
            | 67 |   |  | 
          
          
            | 68 |   |  * ssh into each node and start the wiserd interface: | 
          
          
            | 69 |   | {{{ | 
          
          
            | 70 |   | root@node8-8> wiserd | 
          
          
            | 71 |   | linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.002-86-g566dbc2b | 
          
          
            | 72 |   |  | 
          
          
            | 73 |   | -- Opening a USRP2/N-Series device... | 
          
          
            | 74 |   | -- Current recv frame size: 1472 bytes | 
          
          
            | 75 |   | -- Current send frame size: 1472 bytes | 
          
          
            | 76 |   | -- Detecting internal GPSDO.... No GPSDO found | 
          
          
            | 77 |   | -- Successfully tuned to 900.000000 MHz | 
          
          
            | 78 |   | -- | 
          
          
            | 79 |   | -- Successfully tuned to 900.000000 MHz | 
          
          
            | 80 |   | -- | 
          
          
            | 81 |   | Ready! | 
          
          
            | 82 |   | > | 
          
          
            | 83 |   | }}} | 
          
          
            | 84 |   |  | 
          
          
            | 85 |   |  * At the wiserd prompt set the carrier frequency, sampling rate & gain. Then link the transmitter to the signal source which is the binary file generated in octave from prior step: | 
          
          
            | 86 |   | {{{ | 
          
          
            | 87 |   | > --uhd_tx_freq 700e6 --uhd_tx_rate 5e6 --uhd_tx_gain 20 --tran_wavefilename s1.bin | 
          
          
            | 88 |   | -- Successfully tuned to 700.000000 MHz | 
          
          
            | 89 |   | uhd_tx_freq 700000000 | 
          
          
            | 90 |   | uhd_tx_gain 20 | 
          
          
            | 91 |   | uhd_tx_rate 5000000 | 
          
          
            | 92 |   | > --addmodule signalfromfile | 
          
          
            | 93 |   | Consumer signalfromfile added | 
          
          
            | 94 |   | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL | 
          
          
            | 95 |   | > | 
          
          
            | 96 |   | }}} | 
          
          
            | 97 |   |  | 
          
          
            | 98 |   | In order to set parameter values, multiple arguments can be used in one line: | 
          
          
            | 99 |   |  | 
          
          
            | 100 |   |  ''--uhd_tx_freq'' set carrier frequenct to 700MHz | 
          
          
            | 101 |   |  | 
          
          
            | 102 |   |  ''--uhd_tx_rate'' set sampling rate to 5M samples/sec | 
          
          
            | 103 |   |  | 
          
          
            | 104 |   |  ''--uhd_tx_gain'' set transmit gain to 20dB. | 
          
          
            | 105 |   |  | 
          
          
            | 106 |   |  ''--tran_wavefilename''  tells the links the transmitter source to a binary filename. | 
          
          
            | 107 |   |  | 
          
          
            | 108 |   | ''--addmodule signalfromfile'' opens the above filename, reads the samples and streams to the usrp. | 
          
          
            | 109 |   |  | 
          
          
            | 110 |   | At this point the USRP will continuously transmit the signal util the delete command is issued: | 
          
          
            | 111 |   |  | 
          
          
            | 112 |   |  ''--delmodule signalfromfile'' stops tranmitting signal. | 
          
          
            | 113 |   |  | 
          
          
            | 114 |   |  | 
          
          
            | 115 |   | Now set up the transmitter on node19-19 using similar commands. | 
          
          
            | 116 |   |  | 
          
          
            | 117 |   |  | 
          
          
            | 118 |   |  | 
          
          
            | 119 |   | === Set up receiving node(s) === | 
          
          
            | 120 |   | On the receiving node (node20-20), run wiserd to capture a snapshot of the signal from both transmitters. | 
          
          
            | 121 |   | {{{ | 
          
          
            | 122 |   | root@node20-20> wiserd | 
          
          
            | 123 |   | linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.002-86-g566dbc2b | 
          
          
            | 124 |   |  | 
          
          
            | 125 |   | -- Opening a USRP2/N-Series device... | 
          
          
            | 126 |   | -- Current recv frame size: 1472 bytes | 
          
          
            | 127 |   | -- Current send frame size: 1472 bytes | 
          
          
            | 128 |   | -- Detecting internal GPSDO.... No GPSDO found | 
          
          
            | 129 |   | -- Successfully tuned to 900.000000 MHz | 
          
          
            | 130 |   | -- | 
          
          
            | 131 |   | -- Successfully tuned to 900.000000 MHz | 
          
          
            | 132 |   | -- | 
          
          
            | 133 |   | Ready! | 
          
          
            | 134 |   | > --uhd_rx_freq 700e6 --uhd_rx_rate 5e6 --uhd_rx_gain 20 --recv_running_time 1000 --recv_output_filename rx_signal | 
          
          
            | 135 |   | -- Successfully tuned to 700.000000 MHz | 
          
          
            | 136 |   | -- | 
          
          
            | 137 |   | recv_output_filename rx_signal | 
          
          
            | 138 |   | recv_running_time 1000 | 
          
          
            | 139 |   | uhd_rx_freq 700000000 | 
          
          
            | 140 |   | uhd_rx_gain 20 | 
          
          
            | 141 |   | uhd_rx_rate 5000000 | 
          
          
            | 142 |   | > --addmodule timesamplestofile --timed | 
          
          
            | 143 |   | Consumer timesamplestofile added | 
          
          
            | 144 |   | Consumer timesamplestofile finished | 
          
          
            | 145 |   |  | 
          
          
            | 146 |   | > exit | 
          
          
            | 147 |   | }}} | 
          
          
            | 148 |   |  | 
          
          
            | 149 |   |  | 
          
          
            | 150 |   | Here the set command has an additional argument to limit capturing to 1000 milliseconds: | 
          
          
            | 151 |   |  | 
          
          
            | 152 |   |  ''--recv_output_filename'' set receiving signal filename. | 
          
          
            | 153 |   |  | 
          
          
            | 154 |   |  ''--recv_running_time''    set receiver run time in milliseconds. (optional) | 
          
          
            | 155 |   |  | 
          
          
            | 156 |   | The --addmodule command options | 
          
          
            | 157 |   |  | 
          
          
            | 158 |   |  ''--addmodule timesamplestofile'' streams data from receiver to file | 
          
          
            | 159 |   |  | 
          
          
            | 160 |   |  ''--timed''             runs receiver for the specified amount of time. (optional) | 
          
          
            | 161 |   |  | 
          
          
            | 162 |   | Received signal file name will automatically be appended with the frequency, rate and gain: | 
          
          
            | 163 |   | {{{ | 
          
          
            | 164 |   | root@node20-20> ls -ltr *.bin | 
          
          
            | 165 |   | -rw-r--r-- 1 root root 40003072 May 21 10:56 rx_signal_freq700000000_rate5000000_gain20.bin | 
          
          
            | 166 |   | }}} | 
          
          
            | 167 |   |  | 
          
          
            | 168 |   | Use octave to view the spectrum image: | 
          
          
            | 169 |   | {{{ | 
          
          
            | 170 |   | octave:1> fReconFDSignal(readWiserdFile('rx_signal_freq700000000_rate5000000_gain20.bin', 256*500), 256); | 
          
          
            | 171 |   | }}} | 
          
          
            | 172 |   |  | 
          
          
            | 173 |   | Received signal should look simiar to | 
          
          
            | 174 |   |   || [[Image(signal.png, width=500px)]] || |