RENEW Project Documentation

Version 1.0

Reconfigurable Ecosystem for Next-generation End-to-end Wireless

OFDM Chained Mode

This tutorial is identical to the previous one, with one difference. The boards are assumed to be chained and exchange control information directly off the air. Consequently, there are some minor differences in the Matlab driver function calls and the order in which they are called. Therefore, we focus only on those parts in what follows. This setup can be used to test data transmission independently of control messaging. Also, bidirectional transmission and reception are easier and we can read data from both the UE and BS. That is, during its ‘P’ slot the BS may send an OFDM packet that we have written onto its ram instead of a beacon.

Click here for the complete code.

Set up transmission

Here, the framing starts with a trigger that will be issued by the BS that will propagate to the UE through their chained interfaces. The receiver streams are set up and the TDD schedules are configured as before, except that chained_mode is now set to 1.

 trig = 1;

node_bs.sdrsync(1);

node_ue.sdrrxsetup();
node_bs.sdrrxsetup();

chained_mode = 1;
node_ue.set_config(chained_mode,0,0);
node_bs.set_config(chained_mode,1,0); 

Burn data on the BS and the UE

We write OFDM packets onto the ram of both the BS and the UE. Below, we choose to use the same vector. This is not mandatory and the experimenter can choose different sequences for the BS and the UE.

 node_bs.sdrtx(tx_vec_iris);
node_ue.sdrtx(tx_vec_iris); 

Set up reception

The reading streams are activated on the BS and the UE.

 node_ue.sdr_activate_rx();
node_bs.sdr_activate_rx(); 

Start frame

By pulling the trigger on the BS the frame starts. Since we are in chained mode, pulling the trigger on the BS will notify the UE too that the frame has started.

 node_bs.sdrtrigger(trig); 

Receive

The BS and the UE read and store the received data from the receiver streams set up and activated earlier.

 [rx_vec_iris, data0_len] = node_ue.sdrrx();
[rx_vec_iris_bs, data0_len_bs] = node_bs.sdrrx(); 

End streams

The streams on both nodes are closed and the Iris nodes are rest.

 node_bs.sdr_close();
node_ue.sdr_close(); 

Last updated on 20 Mar 2019 / Published on 18 Mar 2019