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)