void test_scrambling(LTE_PHY_PARAMS *lte_phy_params) { std::cout << "Tx scrambling starts" << std::endl; // ReadInputFromFiles(lte_phy_params->scramb_in, lte_phy_params->scramb_in_buf_sz, "../testsuite/ScrambleInput"); GeneRandomInput(lte_phy_params->scramb_in, lte_phy_params->scramb_in_buf_sz, "../testsuite/RandomScrambleInput"); GenScrambInt(lte_phy_params->scramb_seq_int, lte_phy_params->scramb_in_buf_sz); // double tstart, tend, ttime; // tstart = dtime(); // for (int i = 0; i < 1; i++) { Scrambling(lte_phy_params, lte_phy_params->scramb_in, lte_phy_params->scramb_out); // } // tend = dtime(); // ttime = tend - tstart; // printf("%fms\n", ttime); WriteOutputToFiles(lte_phy_params->scramb_out, lte_phy_params->scramb_out_buf_sz, "../testsuite/testScrambleOutput"); std::cout << "Tx scrambling ends" << std::endl; }
void test_equalizer_chain_pth(LTE_PHY_PARAMS *lte_phy_params) { double tstart, tend, ttime; GeneRandomInput((lte_phy_params + 0)->ofdemod_in, (lte_phy_params + 0)->ofdemod_in_buf_sz, "./testsuite/SubCarrierMapInputReal", "./testsuite/SubCarrierMapInputImag"); GeneRandomInput((lte_phy_params + 1)->ofdemod_in, (lte_phy_params + 1)->ofdemod_in_buf_sz, "./testsuite/SubCarrierMapInputReal", "./testsuite/SubCarrierMapInputImag"); GeneRandomInput((lte_phy_params + 2)->ofdemod_in, (lte_phy_params + 2)->ofdemod_in_buf_sz, "./testsuite/SubCarrierMapInputReal", "./testsuite/SubCarrierMapInputImag"); tstart = dtime(); equalizer_chain_pth(lte_phy_params); tend = dtime(); ttime = tend - tstart; printf("%.3fms\n", ttime); WriteOutputToFiles((lte_phy_params + 0)->eq_out, (lte_phy_params + 0)->eq_out_buf_sz, "./testsuite/testLSCELSEqOutputReal", "./testsuite/testLSCELSEqOutputImag"); WriteOutputToFiles((lte_phy_params + 1)->eq_out, (lte_phy_params + 1)->eq_out_buf_sz, "./testsuite/testLSCELSEqOutputReal", "./testsuite/testLSCELSEqOutputImag"); WriteOutputToFiles((lte_phy_params + 2)->eq_out, (lte_phy_params + 2)->eq_out_buf_sz, "./testsuite/testLSCELSEqOutputReal", "./testsuite/testLSCELSEqOutputImag"); }
void rx_rate_matching(LTE_PHY_PARAMS *lte_phy_params) { std::cout << "Rx RateMatching starts" << std::endl; // ReadInputFromFiles(lte_phy_params->rdm_in, lte_phy_params->rdm_in_buf_sz, "testTxRateMatchOutput"); GeneRandomInput(lte_phy_params->rdm_in, lte_phy_params->rdm_in_buf_sz, "RxRateMatchInput"); RxRateMatching(lte_phy_params->rdm_in, lte_phy_params->rdm_out, lte_phy_params->rdm_hard, lte_phy_params->rdm_out_buf_sz); WriteOutputToFiles(lte_phy_params->rdm_out, lte_phy_params->rdm_out_buf_sz, "testRxRateMatchOutput"); std::cout << "Rx RateMatching ends" << std::endl; }
void test_scrambling(LTE_PHY_PARAMS *lte_phy_params) { std::cout << "Tx scrambling starts" << std::endl; // ReadInputFromFiles(lte_phy_params->scramb_in, lte_phy_params->scramb_in_buf_sz, "../testsuite/ScrambleInput"); GeneRandomInput(lte_phy_params->scramb_in, lte_phy_params->scramb_in_buf_sz, "/root/Scrambling/testsuite/RandomScrambleInput"); // GeneRandomInput(lte_phy_params->scramb_in, lte_phy_params->scramb_in_buf_sz, "../testsuite/RandomScrambleInput"); GenScrambInt(lte_phy_params->scramb_seq_int, lte_phy_params->scramb_in_buf_sz); Scrambling(lte_phy_params, lte_phy_params->scramb_in, lte_phy_params->scramb_out); WriteOutputToFiles(lte_phy_params->scramb_out, lte_phy_params->scramb_out_buf_sz, "/root/Scrambling/testsuite/testScrambleOutput"); // WriteOutputToFiles(lte_phy_params->scramb_out, lte_phy_params->scramb_out_buf_sz, "../testsuite/testScrambleOutput"); std::cout << "Tx scrambling ends" << std::endl; }
void test_turbo_encoding(LTE_PHY_PARAMS *lte_phy_params) { std::cout << "Turbo Encoder starts" << std::endl; // ReadInputFromFiles(lte_phy_params->te_in, lte_phy_params->te_in_buf_sz, "../TurboEncoderInput"); GeneRandomInput(lte_phy_params->te_in, lte_phy_params->te_in_buf_sz, "../testsuite/TurboEncoderInput"); /* for (int i = 0; i < lte_phy_params->te_in_buf_sz; i++) lte_phy_params->te_in[i] = 1; */ turbo_encoding(lte_phy_params, lte_phy_params->te_in, lte_phy_params->te_out); WriteOutputToFiles(lte_phy_params->te_out, lte_phy_params->te_out_buf_sz, "../testsuite/testTurboEncoderOutput"); std::cout << "Turbo Encoder ends" << std::endl; }
int main() { cout<<"Equalizer"<<endl; BSPara BS; BS.initBSPara(); UserPara User(&BS); Equalizer Eq(&BS,&User); FIFO<complex<float> > EqIn(1,Eq.InBufSz); FIFO<complex<float> > EqOut(1,Eq.OutBufSz); //ReadInputFromFiles(&EqIn,(Eq.InBufSz),"LSCELSEqInputReal","LSCELSEqInputImag"); //GeneRandomInput(&EqIn,Eq.InBufSz,"LSCELSEqRandomInputReal","LSCELSEqRandomInputImag"); GeneRandomInput(&EqIn,Eq.InBufSz); Eq.Equalizing(&EqIn,&EqOut); //WriteOutputToFiles(&EqOut,(Eq.OutBufSz),"LSCELSEqOutputReal","LSCELSEqOutputImag"); //WriteOutputToFiles(&EqOut,(Eq.OutBufSz),"LSCELSEqRandomOutputReal","LSCELSEqRandomOutputImag"); ReadOutput(&EqOut,(Eq.OutBufSz)); }
void test_descrambling(LTE_PHY_PARAMS *lte_phy_params) { std::cout << "Rx descrambling starts" << std::endl; float *rx_scramb_in = (float *)malloc(lte_phy_params->descramb_in_buf_sz * sizeof(float)); float *rx_scramb_out = (float *)malloc(lte_phy_params->descramb_out_buf_sz * sizeof(float)); int i; // ReadInputFromFiles(lte_phy_params->descramb_in, lte_phy_params->descramb_in_buf_sz, "testScrambleOutput"); GeneRandomInput(lte_phy_params->descramb_in, lte_phy_params->descramb_in_buf_sz, "ScrambleOutput"); // ReadInputFromFiles(rx_scramb_in, in_buf_sz, "testScrambleOutput"); for (i = 0; i < lte_phy_params->descramb_in_buf_sz; i++) { if (lte_phy_params->descramb_in[i] == 0) rx_scramb_in[i] = -1.0; else rx_scramb_in[i] = 1.0; } // Descrambling(lte_phy_params, lte_phy_params->descramb_in, lte_phy_params->descramb_out); Descrambling(rx_scramb_in, rx_scramb_out, lte_phy_params->descramb_in_buf_sz); for (i = 0; i < lte_phy_params->descramb_out_buf_sz; i++) { if (rx_scramb_out[i] > 0) lte_phy_params->descramb_out[i] = 1.0; else lte_phy_params->descramb_out[i] = 0.0; } free(rx_scramb_in); free(rx_scramb_out); WriteOutputToFiles(lte_phy_params->descramb_out, lte_phy_params->descramb_out_buf_sz, "testDescrambleOutput"); cout << "Rx descrambling ends" << endl; }
void tx_rate_matching(LTE_PHY_PARAMS *lte_phy_params) { std::cout << "Tx RateMatching starts" << std::endl; //ReadInputFromFiles(lte_phy_params->rm_in, lte_phy_params->rm_in_buf_sz, "../testsuite/RandomTxRateMatchInput"); GeneRandomInput(lte_phy_params->rm_in, lte_phy_params->rm_in_buf_sz, "/root/RateMatching/testsuite/RandomTxRateMatchInput"); TxRateMatching(lte_phy_params, lte_phy_params->rm_in, lte_phy_params->rm_out); double energy,ttime,tbegin; micpower_start(); tbegin = dtime(); for(int i=0;i<10000;i++) TxRateMatching(lte_phy_params, lte_phy_params->rm_in, lte_phy_params->rm_out); ttime = dtime() - tbegin; energy = micpower_finalize(); // printf("Energy used in %lf\n", energy); // printf("whole time is %fms\n", ttime); printf("%lf\t%f\t%f\n", energy, ttime, (energy * 1000.0) / ttime); WriteOutputToFiles(lte_phy_params->rm_out, lte_phy_params->rm_out_buf_sz, "/root/RateMatching/testsuite/testTxRateMatchOutput"); std::cout << "Tx RateMatching ends" << std::endl; }