def main(): nrx=3 # Create a tx ntx=3 ta = None #ta = SampleRate() transmitter = Transmitter(ntx,ta) # Create a channel chan = TraceChan() num_chans=1 length = chan.create_chan(transmitter.Ntx,nrx) #ta = OracleRA(chan) #transmitter.set_transmit_ra(ta) #receiver = Receiver(MaxTputRA(),nrx) #receiver = Receiver(MinEngRA(),nrx) receiver = Receiver(EngTputRA(),nrx) #receiver = Receiver(EffSnrRA(),nrx) #receiver = Receiver(RxSampleRate(),nrx) #receiver = Receiver(RxOracle(),nrx) #length =10 for num in range(0,length): pkt = transmitter.transmit_pkt() chan.apply_channel(pkt) #print chan.curr_chan #print pkt # Create receiver receiver.receive_pkt(pkt) ack_pkt = receiver.get_feedback_pkt() transmitter.process_ack(ack_pkt)
def main(): if len(sys.argv) == 6: filename = sys.argv[1] card_type = sys.argv[2] energy_constraint = sys.argv[3] chan_pred = eval(sys.argv[4]) increment = eval(sys.argv[5]) print "filename: " + str(filename) else: print "Correct usage: python simulate_maxtput.py trace_file card_type tx/rx pred(True/False)" sys.exit(1) nrx = 3 # Create a tx ntx = 3 ta = None transmitter = Transmitter(ntx, ta) # Create a channel chan = TraceChan(filename) num_chans = 1 length = chan.create_chan(transmitter.Ntx, nrx) extname = ( filename.split("/")[-1].split(".")[0] + "_" + card_type + "_" + energy_constraint + "_pred" + str(chan_pred) + "_inc" + str(increment) ) # print extname receiver = PPrReceiver(PPrMinEngRA(card_type, energy_constraint, chan_pred), nrx, extname) if length > 10000: length = 10000 # length = 2 for num in range(0, length): itr_tic = time.clock() pkt = transmitter.transmit_pkt() chan.apply_channel(pkt) # print chan.curr_chan # print pkt # Create receiver receiver.receive_pkt(pkt) ack_pkt = receiver.get_feedback_pkt() transmitter.process_ack(ack_pkt) itr_toc = time.clock()
def main(): if len(sys.argv) == 5: filename = sys.argv[1] card_type = sys.argv[2] energy_constraint = sys.argv[3] chan_pred = eval(sys.argv[4]) increment = 1 print "filename: "+str(filename) elif len(sys.argv) == 6: filename = sys.argv[1] card_type = sys.argv[2] energy_constraint = sys.argv[3] chan_pred = False increment = eval(sys.argv[5]) print "filename: "+str(filename) else: print "Correct usage: python simulate_effsnr.py trace_file card_type tx/rx pred(True/False)" sys.exit(1) nrx=3 # Create a tx ntx=3 ta = None transmitter = Transmitter(ntx,ta) # Create a channel chan = TraceChan(filename, increment) num_chans=1 length = chan.create_chan(transmitter.Ntx,nrx) ta = OracleEffSnrRA(card_type,energy_constraint,chan) transmitter.set_transmit_ra(ta) extname=ta.name+"_"+filename.split('/')[-1].split('.')[0]+"_"+card_type+"_"+energy_constraint+"_pred"+str(chan_pred)+"_inc"+str(increment) receiver = Receiver(RxOracle(card_type,energy_constraint),nrx,extname) if length > 10000: length = 10000 #length =10 for num in range(0,length): pkt = transmitter.transmit_pkt() chan.apply_channel(pkt) #print chan.curr_chan #print pkt # Create receiver receiver.receive_pkt(pkt) ack_pkt = receiver.get_feedback_pkt() transmitter.process_ack(ack_pkt)
def main(): if len(sys.argv) == 7: filename = sys.argv[1] card_type = sys.argv[2] energy_constraint = sys.argv[3] chan_pred = eval(sys.argv[4]) threshold = eval(sys.argv[5]) increment = eval(sys.argv[6]) print "filename: "+str(filename) else: print "Correct usage: python simulate_engtput.py trace_file card_type tx/rx pred(True/False) threshold chan_increment" sys.exit(1) nrx=3 # Create a tx ntx=3 ta = None transmitter = Transmitter(ntx,ta) # Create a channel chan = TraceChan(filename, increment) length = chan.create_chan(transmitter.Ntx,nrx) extname=filename.split('/')[-1].split('.')[0]+"_"+card_type+"_"+energy_constraint+"_pred"+str(chan_pred)+"th"+str(threshold)+"_inc"+str(increment) receiver = Receiver(EngTputRA(card_type,energy_constraint,chan_pred,threshold),nrx,extname) if length > 10000: length = 10000 for num in range(0,length): pkt = transmitter.transmit_pkt() chan.apply_channel(pkt) #print chan.curr_chan #print pkt # Create receiver receiver.receive_pkt(pkt) ack_pkt = receiver.get_feedback_pkt() transmitter.process_ack(ack_pkt)
def main(): hwpred = HoltsWinter() chan = TraceChan() chan_len = chan.create_chan(3,3) chan.get_next_channel() Hint = chan.curr_chan hwpred.setup_a(Hint) hwpred.setup_b(Hint) Hpred = Hint Hprev = Hint for c in range(0,100): H = chan.curr_chan print "pred:"+str(sum(sum(sum(abs(Hpred - H))))) print "diff:"+str(sum(sum(sum(abs(Hprev - H))))) Hpred = hwpred.get_next_pred(H) Hprev = H chan.get_next_channel()
def main(): ##### ## constant PREDICTOR_DEBUG = 0 ##### ## variabes # filename = "/v/filer4b/v27q002/ut-wireless/yichao/csi_measurement/task01_parse_data/OUTPUT/face.speed3.data.mat" # filename = "/v/filer4b/v27q002/ut-wireless/yichao/csi_measurement/task01_parse_data/OUTPUT/card2.6m.data.mat" filename = "/v/filer4b/v27q002/ut-wireless/yichao/csi_measurement/task01_parse_data/OUTPUT/l1.dat.mat" num_sc = 30 ntx = 3 nrx = 3 increment = 1 ##### ## initialization ## each subcarrier of each steam has one predictor hw_preds = [] # for x in range(1, ntx * nrx * num_sc): # hw_preds.append(HoltsWinter()) for tx_i in range(0, ntx): txp = [] for rx_i in range(0, nrx): rxp = [] for sc_i in range(0, num_sc): rxp.append(HoltsWinter()) txp.append(rxp) hw_preds.append(txp) print "here " + str(len(hw_preds[1][1])) ##### ## holt-winters debug if PREDICTOR_DEBUG == 1: hw_pred = HoltsWinter() for x in xrange(1, 10): new_measurement = x * 2 + 1 * 1j print "measurement=" + str(new_measurement) + ", pred=" + str(hw_pred.pred) + ", diff=" + str(abs(new_measurement - hw_pred.pred)) hw_pred.update(new_measurement) ##### ## main start here ## read CSI file chan = TraceChan(filename, increment) num_measurements = chan.create_chan(ntx, nrx) for m_i in range(0, num_measurements): ## format: [tx, rx, subcarrier] chan.get_next_channel() Hint = chan.curr_chan # print "size=" + str(Hint.shape) # for tx_i in range(0, ntx): for tx_i in range(0, 1): # for rx_i in range(0, nrx): for rx_i in range(0, 1): # for sc_i in range(0, num_sc): for sc_i in range(0, 1): new_measurement = Hint[tx_i, rx_i, sc_i] # print Hint[tx_i, rx_i, sc_i] hw_pred = hw_preds[tx_i][rx_i][sc_i] print "measurement=" + str(new_measurement) + ", pred=" + str(hw_pred.pred) + ", diff=" + str(abs(new_measurement - hw_pred.pred)) hw_pred.update(new_measurement)