#include #include #include #include "../../wimax_datasource/interfaces/itf_types.h" #include "../../wimax_rando/interfaces/itf_types.h" #include "../../wimax_rsolomon/interfaces/itf_types.h" #include "../../gen_cconv/interfaces/itf_types.h" #include "../../wimax_interleaver/interfaces/itf_types.h" #include "../../wimax_puncturing/interfaces/itf_types.h" #include "../../wimax_symbolmap/interfaces/itf_types.h" #include "../../wimax_channel/interfaces/itf_types.h" #include "../../wimax_symboldemap/interfaces/itf_types.h" #include "../../wimax_deinterleaver/interfaces/itf_types.h" #include "../../gen_depunct/interfaces/itf_types.h" #include "../../gen_viterbi/interfaces/itf_types.h" #include "../../wimax_dersolomon/interfaces/itf_types.h" #include "../../wimax_derando/interfaces/itf_types.h" #include "../../wimax_datasink/interfaces/itf_types.h" #include "wimaxTxControl.h" //Defines all the WIMAX control parameters extern CWimax WIMAXcontrol; extern int Tslot; extern float EbNo; ///////////////////////////////////////////BPSKCC1R2//////////////////////////// void modeBPSKCC1R2() { int i; //PUNCTURING SEQUENCES WIMAX 802.16e #define L1R1 2 #define L4R3 4 #define L3R2 6 #define L5R3 10 int rate1R1[L1R1]={1,1}; //Punturing matrix for rate 1/2 int rate4R3[L4R3]={1,1,0,1}; //Puncturing matrix for rate 2/3 int rate3R2[L3R2]={1,1,0,1,1,0}; //Puncturing matrix for rate 3/4 int rate5R3[L5R3]={1,1,0,1,1,0,0,1,1,0}; //Puncturing matrix for rate 5/6 //EbNo=0.0; WIMAXcontrol.usernumber=1; WIMAXcontrol.uncodedbytes=11; WIMAXcontrol.modulation=_BPSK; WIMAXcontrol.coderate=CODERATE1R2; WIMAXcontrol.rsolomon=0; WIMAXcontrol.channelcoding=CC; //CONVOLUTIONAL CODE WIMAXcontrol.CCcoderate=CODERATE1R2; //ALWAYS 1/2 IN CC WIMAX WIMAXcontrol.tail=1; //1 Byte (8 bits) WIMAXcontrol.viterbiEbNo=4.0; WIMAXcontrol.viterbiK=KWIMAX; //CHANNEL WIMAXcontrol.channel_mode=GAUSSIAN; //WIMAXcontrol.channel_mode=NONOISE; WIMAXcontrol.channelEbNo=EbNo; //PUNCTURING WIMAXcontrol.punct_rate=RATE1R1; WIMAXcontrol.pseqlength= L1R1; for(i=0; i