資源簡介
LTE系統級仿真中的輪詢調度代碼,可以植入其他的系統級仿真中
代碼片段和文件信息
function?[userAllocationInfo?RBAllocate_macro?RBAllocate_pico]?=?process_RR_schedule(userAllocationInfo?common_par)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%???process_RR_schedule
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%???創建人:曹玉
%???日期:2013.3.6
%???函數功能:對用戶進行輪詢調度
%???輸入:userAllocationInfo?用戶分配信息
%?????????common_par?輸入參數
%???輸出:userAllocationInfo?用戶分配信息
%?????????RBAllocate_macro?macro用戶RB分配信息
%?????????RBAllocate_pico?pico用戶RB分配信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????global?M_USER_NUM
????global?M_USER_MAPPING
????global?P_USER_NUM
????global?P_USER_MAPPING
????global?RB_ALLOCATION_STATISTIC
????global?T_INDEX
????USER_TOTAL_NUM?=?common_par.USER_TOTAL_NUM;
????layer_NUM?=?common_par.layer_NUM;
????SUBB_NUM?=?common_par.SUBB_NUM;
????SECTOR_NUM?=?common_par.SECTOR_NUM;
????PICO_CELL_NUM_PER_MACRO?=?common_par.PICO_CELL_NUM_PER_MACRO;
????RBused_macro?=?zeros(SECTOR_NUM?SUBB_NUM);
????RBAllocate_macro?=?zeros(SECTOR_NUM?SUBB_NUM);
????RBused_pico?=?zeros(SECTOR_NUM?*?PICO_CELL_NUM_PER_MACRO?SUBB_NUM);
????RBAllocate_pico?=?zeros(SECTOR_NUM?*?PICO_CELL_NUM_PER_MACRO?SUBB_NUM);
????%%?初始化用戶分配信息
????for?i_userID?=?1?:?USER_TOTAL_NUM
????????for?i_layerNum?=?1?:?layer_NUM
????????????blockSize?=?userAllocationInfo(i_userID?i_layerNum).allocateRBNum;
????????????if?(blockSize?~=?0)
????????????????userAllocationInfo(i_userID?i_layerNum).RBNO(1?:?blockSize)?=?-1;
????????????????userAllocationInfo(i_userID?i_layerNum).allocateRBNum?=?0;
????????????end
????????end
????end
????%%?Macro用戶資源調度
????for?i_sectorNum?=?1?:?SECTOR_NUM????
????????%?找到新包用戶放入新包數組中
????????countnum?=?0;
????????num?=?M_USER_NUM(i_sectorNum);???%該扇區下的用戶數
????????newpakageUserID?=?zeros(1?num);
????????for?i_RelativeuserID?=?1?:?num??%輪詢該扇區下的所有宏用戶
????????????userID?=?M_USER_MAPPING(i_sectorNum?i_RelativeuserID);
????????????newpakageUserID(countnum?+?1)?=?userID;??%記錄該扇區下所有宏用戶的絕對用戶號
????????????countnum?=?countnum?+?1;
????????end
????%?????if((num?>?0)?&&?(countnum?????%?????????newpakageUserID(countnum?+?1:?end)?=?[];
????%?????end
????????temp?=?find(RBused_macro(i_sectorNum?:)?==?0?1);??%找到未被占用的初始位置
????????if?isempty(temp)
????????????continue;
????????else
????????????unAllocateRBNum?=?temp;
????????????if?(countnum?~=?0)
????????????????begin?=?ceil(rand()?*?countnum);??%隨機找到輪詢調度的初始用戶號
????????????????for?RBId?=?unAllocateRBNum?:?SUBB_NUM
????????????????????userID?=?newpakageUserID(begin);??%得到初始調度的絕對用戶號
????????????????????blockSize?=?user
評論
共有 條評論