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)]] || |