Upload
pha-letrung
View
118
Download
0
Embed Size (px)
DESCRIPTION
Precoding trong Hệ thống thông tin di độngHy vọng đọc nó để hiểu them vài điều thú vị :)Precoding, BD, Block Diagonization,
Citation preview
Trang 51
CHNG 4: HN CH DUNG LNG PHN HI DA VO BEM TRONGMULTI-USER MIMO
4.1. Gii thiu chng:Bn cnh nhng hnh thc phn chia bit nh: thi gian, tn s v m trong
truyn thng khng dy, gn y phn chia theo khng gian c xem nh l mtchiu hng mi nng cao hiu nng ca h thng, c bit l trong truynmultiuser (MU). Trong a truy cp phn chia theo khng gian (SDMA), vic s dngnhiu anten mng cho php trm gc (BS) truyn ti ng thi nhiu lung d liu nvi nhiu ngi dng (user) khc nhau bng cch khai thc chiu tn hiu mi ny.Trong s cc k thut truyn MU, DPC (dirty paper coding) c bit n nh mtchin lc m ha MU ti u, khi hiu sut t c l dung lng gii hn caknh truyn MU. Tuy nhin, hiu sut ti u i km vi s tr gi cho phc tp lnv tnh thc t khng cao khi c mt lng ln user hot ng. Nh l mt k thuttuyn tnh c phc tp thp hn dng thay th, BD (block-diagonalization)precoding l mt xut m ha MU ti u c th thc hin c.
Trong cc ti liu vi hu ht cc k thut tin m ha (precoding) bit ugi thit cc ng MU downlink l ng nht v bt bin theo thi gian (user khngdi chuyn) trong sut mt n v d liu truyn kh ln block/burst (block-fading).Tuy nhin trong mng MU vi cc node mng c tc di chuyn nhanh (v d nhngi dng trn t, tu la hay tu cao tc trong h thng LTE(long-termevolution) ), kt qu l CIR (chanel impulse respone) lun lun thay i theo thi gianlm cho CIR tr thnh mt tp hp cc thng s rt ln. iu ny gy ra mt lng tiqu ln cho knh phn hi thng tin trng thi knh truyn (CSI feedback) trong qutrnh x l precoding v chn la (scheduling) user khi xem knh truyn lun thay i BS v lm ny sinh cc vn v knh CSI feedback b li thi. khc phc vn ny, trong knh MIMO downlink vi nhng user khng ng nht (mi u cui ding khc nhau c s anten thu khc nhau v cng sut nhiu khc nhau) , phngphp hn ch dung lng phn hi da vo BEM (basis expansion model) c xut. BEM c dng nh mt kiu mu tham s xp x bt kp s thay i theothi gian ca knh truyn v gim s lng thng s knh truyn. c bit hn gim lng thng tin phn hi, vector cc h s BEM hun luyn s c lng tbng thut ton LBG (Linde-Buzo-Gray) v lu vo codebook nh l mt tp hpcha mt lng ln cc h s BEM tham chiu, c bit trc c bn pht ln bnthu. V th, thay v phn hi mt lng ln cc thng s knh truyn ta ch cn gi vBS a ch ca cc h s BEM tng ng trong codebook qua knh feedback.
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaTypewriterMo hinh trien khai coban
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaArrow
Xin PhaArrow
Xin PhaLine
Trang 52
4.2. Xy dng h thng:4.2.1. Tn hiu pht:
Xt knh downlink MU-MIMO LTE khng ng nht vi BS c trang b Ntanten pht, vi cc u cui khc nhau c s lng anten thu khc nhau v t s tnhiu trn nhiu (SNR) khc nhau, iu ch ghp knh phn chia theo tn s trc giao(OFDM) vi N im FFT c dng trong knh truyn downlink a sng mang. Saukhi IFFT v chn tin t vng (CP), tn hiu pht bng tn c s ca symbol OFDMth m c pht ti anten th p c th c vit nh sau:
xn,m(p) = exp ( ) (1)
Vi n {-Ng,,0,,N-1}, Ng l chiu di CP,X k,m(p) l sng mang con th k c tin m ha.4.2.2. p ng knh:
Vi mi cp anten pht th p ti BS v anten thu th ru ca user th u (c Ruanten thu), li knh th l l hl,n,m(ru,p) vi n, m ln lt l ch s thi gian v symbolOFDM. Trong knh downlink c xt, BEM c dung bt kp s thay i theothi gian ca knh truyn. Vi s tr gip ca BEM, li knh thay i theo thigian th l gia anten pht th p v anten th ru ca user th u ti khe thi gian th n vsymbol OFDM th m c biu din nh sau:
, (2)
Tc user c gi s l khng i trong M symbol OFDM(trong khungtruyn LTE).
L : s ng Phading ca knh truyn.:l gi tr ca hm c s th q c dng trong BEM.
: l nhng h s BEM.
Q : l s hm c s c dng trong BEM.
: c to ra u tin bi thut ton Jakes, sau c xp x bi
DSP-BEM, dng nh mt s kt hp tuyn tnh ca Q hm c s.
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaArrow
Xin PhaTypewriter?
Xin PhaTypewriterDung GCE tot hon(xem do thi THUY)
Trang 53
4.2.3. Tn hiu thu:Sau khi loi b CP, mu thu th n trong symbol OFDM th m ti anten thu th
ru ca user th u c biu din:
n=0,.,N-1; (3)
Vi zn,m l nhiu Gausian cng thm vo vi phng sai u2 ta user th u. Gis nhng u cui khc nhau c c nhng cng sut nhiu khc nhau trong hthng ang xt.
Sau khi bin i FFT ti user, tng ng vi sng mang con th k trong symbolOFDM th m ti anten th ru ca user th u tn hiu thu c xc nh:
, (4)
l nhiu lin sng mang (ICI)
l
tn s knh truyn (CFR)
l nhiu ti bn thu min tn s
Trong mng MU ang xt,vi s lng user bt k, precoding v schedulingc thc hin trn mi sng mang con trong mi symbol OFDM ca mt khungLTE. Biu din cng thc (4) mt cch n gin di dng ma trn :
Yu = Hu X + Zu ; (5)
Vi
Gi s rng BS c cng sut pht trung bnh b hn ch tr( ) P
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaArrow
Xin PhaLine
Trang 54
Vi = E[XXH].
Trong (5) nhiu lin sng mang(ICI) b b qua v n l thnh phn c cng sutnh.Trong h LTE c thit lp,cng sut PICI b gii hn bi:
PICI 2 (6)Vi fd l tn s Doppler ca knh,v l tc u cui,vn tc nh sng c=3.108
m/s,fc l tn s sng mang, Ts l chu k ly mu ca h thng v s2 = E(| |2).
V d: H thng LTE vi fc =2 GHz,fs=1/Ts=1,92 MHz,v=400 km/h,kt quPICI 4.910-7 s2. Xem nh mt thnh phn nhiu thp c th b qua.
4.3. H thng truyn MU-MIMO hn ch dung lng feedback da vo BEM:4.3.1. Hn ch dung lng feedback da vo BEM:
Trong thit k hn ch feedback gi s vic c lng cc h s BEM cthit lp ti cc user , ta chia n ra lm Q/V phn tngng vi LBG codebook G ( gim phc tp ca codebook ngun) nh sau:
(7)
Vi ,
x = {1,,Q/V} v V l chiu di ca mi vector con.Trong LBG codebook ngun, ng vi mi ng fading l, thut tan
LBG(dng 105 vector hun luyn BEM) c dng to ra trc codebook sau:
(8)
Vi , l=0,L-1 v B l s bit nh phn biu dinv tr cho mt codevector trong LBG codebook.
(9)
Tng ng vi mi tc di chuyn thu bao th ta s to ra mt codebooktheo thut ton LBG t nhng vector h s BEM hun luyn tng ng vi tc .
Xin PhaLine
Xin PhaHighlight
Xin PhaTypewriterAi noi ?
Xin PhaArrow
Xin PhaArrow
Xin PhaLine
Xin PhaArrow
Xin PhaArrow
Xin PhaTypewriter?
Xin PhaHighlight
Xin PhaHighlight
Xin PhaLine
Xin PhaTypewriter??????
Xin PhaHighlight
Xin PhaTypewriterj
Xin PhaTypewriter
Xin PhaHighlight
Trang 55
Vi mi u cui di ng khc nhau vi nhng tc bit trc, LBGcodebook G s c trin khai vi tc gn nht vi nhng tc bit trc .
Nhng thc t tc cc user rt kh xc nh mt cch chnh xc. Ngoi radung lng trong my thu ca cc thit b u cui cng khng m bo c vic lutr mt lng ln cc LBG codebook G c to ra trc tng ng vi nhng tc khc nhau. V vy lun tn ti chnh lch gia tc thc s ca mobile v tc sdng to ra codebook ti cc u cui di ng.
S dng mt LBG codebook G vi mt tc cho trc, qu trnh khi phccc vector h s BEM c thc hin nh sau:
Tm ra xp x tt nht ca cc vector con h s BEM c lng c trongcodebook bn thu.
(10)
Sau a ch ca h s BEM trong codebook c gi v BS qua knhfeedback khng li. Da vo a ch bit, BS c th xc nh c vector contng ng ca h s BEM trong codebook vi cng tc nh sau:
(11)
vi (12)
v (13)
x = 1,,Q/V v l = 0,,L-1.
T nhng phin bn lng t c, ma trn p ng tn s knh truynCFR ng vi user th u c th c xc nh ti BS nh sau:
(14)
v (15)
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaArrow
Xin PhaHighlight
Xin PhaRectangle
Xin PhaHighlight
Trang 56
Cc hm c s bit c BS ln user.
Nh ch ra cng thc (15), p ng knh ng vi mi sng mang con trongmi OFDM symbol trong khe thi gian LTE hin ti c th c xc nh t phin bn
ca h s BEM . Nh cp trc , nhng h s BEM xem nh c c lng hon ho bng thut ton c lng knh da vo BEM bit dngtn hiu pilot trong khe thi gian LTE trc.
Sau khi c c thng tin feedback ti BS, u c xem nh p ng knhhon ho (perfect CSI) v c s dng trong qu trnh x l BD precoding vscheduling, c trnh by mc tip theo.4.3.2. Block-Diagonalization Precoding:
Vi phin bn lng t CSI u c, ta dng n tin m ha dng d liupht cho cc user nhm loi b nhiu lin user (IUI). v
Vi tp user la chn U, tn hiu truyn ti BS lX = (16)
S dng cng thc (5) v (16), tn hiu thu ca user th u trong tp user cla chn c biu din di dng vector nh sau:
(17)
loi b thnh phn nhiu gia cc user IUI, trong (17),th ma trn BD precoding Wu phi tha mn c iu kin zero-forcing sau:
Hu Wu = 0 ; u # u , 1 u,uU. (18)Bng cch s dng BEM trong vic hn ch lng thng tin phn hi, BS ch
c phin bn lng t CSI trong (14) v do ma trn BD-precoding Wu sc xc nh bi nhng {u}u=1U xem nh l nhng CSI hon ho vy .
t c (18), ta c th biu din n di mt dng khc:
vi u=1,,U. (19)
t c zero-forcing trong (18), Wu phi l null space ca ma trn vimt iu kin cn Nt u (s anten pht phi ln hn hoc bng tng s anten
Xin PhaRectangle
Xin PhaHighlight
Xin PhaHighlight
Xin PhaRectangle
Trang 57
thu ca cc user c la chn). tm ra null space ca ma trn ta phn hy(SVD) n nh sau:
(20)
Vi u l bao gm nu = ct u tin ca thnh phn phn hy th3 ca ma trn v u l nhng ct cn li (Nt-nu), u
Nh trnh by ,ta c:
u = 0 (21)
Vi uH u = I. Nh vy u l ngim tha mn phng trnh (18). Nhng ta schn ma trn BD-precoding ng vi user th u nh sau:
Wu = PuRu (22)
Vi l ma trn bt k tha mn iu kin hn ch tng cng sut vPu c to thnh t Ru ct ca ma trn u.
Pu = u (:,Nt - nu Ru + 1 : Nt - nu), (23)Vi nu = u.
Sau khi BD-precoding thnh phn nhiu cc user b loi b (inter-user-interference), tn hiu thu user th u l:
Yu = Hu PuRusu + Zu. (24)
By gi ta i xc nh Cu = RuRuH l mt ma trn positive semidifinite.Vi phin bn lng t CSI c sn ti BS, tc user th u c th c xcnh trong qu trnh tnh ton precoding/scheduling ti BS nh sau:
(25)
Vi ma trn =E[XXH] = uCuPuH(v E[susuH]=IRu). iu kin v cngsut tr( ) P . Suy ra (Cu) P (v tnh cht tr(ABC) = tr(BCA)).
Ma trn Cu c th c xc nh sao cho maiximize tc h thng
Xin PhaRectangle
Xin PhaLine
Xin PhaRectangle
Xin PhaArrow
Xin PhaTypewriterTai lieu nao
Xin PhaTypewriterRu' la ????
Xin PhaTypewriter
Xin PhaHighlight
Xin PhaHighlight
Xin PhaArrow
Xin PhaRectangle
Xin PhaHighlight
Xin PhaArrow
Xin PhaTypewriter?
Xin PhaLine
Trang 58
Tng ng vi vic minimize - . Nh vy Cu l ngim ca h phng trnh sau:
Minimize -
Tha (Cu) P
Cu 0, u = 1,,U. (26)
Vi kiu h phng trnh trn ta c th gii quyt n mt cch hiu qu bngcch s dng iu hin ti u KKT (Karush-Kuhn-Tucker). n gin ha vic tnhton, ta t Du = u Pu xem nh l hiu ng knh ca user th u sau khi precoding. Tac 1/ u2 DuDuH = uEuuH vi Eu l ma trn ng cho cha cc gi tr (eu,1,, )v uuH = I. Suy ra u2Du-1Du-H = uEu-1uH. Nh trnh by trong [1], Cu c xcnh bng cng thc sau:
(27)
Vi (x)+ =max(x,0).Water-level c xc nh bi:
(28)
Nh vy vi tp user c la chn, qu trnh BD-precoding c gng clng i thnh phn nhiu gia cc user v maximize tc h thng. Nh cp trn, tnh kh thi ca vic hn ch feedback da vo BEM s c kim tra trongmng MU vi s lng user kch hot trng h thng ty . c bit vi vic s dngknh hn ch feedback ny, qu trnh precoding v scheduling u c x l ti BS.i hi mt qu trnh x l phc tp trong vic maximize tc h thng. Ta s xemxt mt cch chi tit k thut scheduling mc tip theo.4.3.3. Greedy Scheduling :
Trong k thut precoding, mc ch ca vic scheduling l tm ra tp nhnguser trong tt c nhng user ang kch hot trong h thng nhm maximize tc hthng. C mt cch thc n gin trong vic chn la ra tp user l tm kim y
Xin PhaOval
Xin PhaTypewriter?
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaArrow
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaHighlight
Xin PhaTypewriterkhi lsam do an, phai co cau dan dat ni moi dung yeu cau, con mo dau chuong nhu ba Thuy
Xin PhaArrow
Trang 59
(x l tt c user) nhng iu s to ra phc tp qu ln v tnh thc thi khngcao khi s lng user qu ln. trnh nhc im trn Greedy Scheduling c xemnh l mt gii php thay th. Sau khi BD precoding cho tng user trong tp user S,tng tc BD(S) c th c xc nh ti BS nh sau:
(29)
vi Pu v Cu ln lt c xc nh (23)v (27).Chi tit qu trnh thc hin Greedy Scheduling vi Ua user ang kch hot trong
h thng c trnh by theo nhng bc sau:1) Khi u: A0 ={1,2,,Ua} l tp ch s ca cc user ang kch hot. S0={ }
l tp user c la chn ban u rng. v=0 tng ng vi s lng user c la chn. R0 = 0 l tc cu h thng.
2) Vng lp: Xc nh u* l ch s ca user c chn trong vng lp hin ti, u* c xc
nh nh sauu* = arg max { BD (Sv {u*})}, u Av (30)
max = BD (Sv {u*}) (31)
v = v+1 Nu max Rv-1 nhy ti bc 3, khng th thc hin cc bc sau:- Rv = max- Sv = (Sv-1 {u*}) (thm mt user vo tp user c chn)- Av = Av-1\{u*} (loi b i mt user trong vng lp tm kim sau) Quay tr li bc 2.3) Dng qu trnh la chn user:Vi tp S user c chn,tc thc s ca h thng l:
(32)
4.4. M phng v kt qu:Tin hnh m phng h thng vi cc thng s sau:
- S knh pha dinh tng ng mi cp anten pht vi anten thu L=5.- Tc ca user v=200km/h.
Xin PhaTypewriter
Xin PhaArrow
Xin PhaTypewriterla gi, y nghia ?
Xin PhaArrow
Xin PhaTypewriterEo hieu
Xin PhaArrow
Xin PhaTypewriterSao khong thay doi toc do khac
Xin PhaTypewriterL=6 ,7 thi sao ?
Trang 60
- S lng hm c s c s dng Q=18.- S khe thi LTE: 20.- S symbol trong mt khe thi gian: 7.- 128-point FFT.- Tn s ly mu: 1.92Mhz.- Tn s sng mang: 2Ghz.- Chiu di tin t vng: CP=10.- Phng sai nhiu: u2 =1.
4.4.1. Tc ca h thng khi thay i s lng user:S lng user thay i ln lt N_user=[4 10 20 30] vi s lng anten mi
user thay i tng ng [ones(1,N_user/2) 2*ones(1,N_user/2], s anten pht Nt=8.
Nhn xt: Tc user tng khi s lng user tng.4.4.2. Tc ca h thng khi s lng anten pht thay i:
S lng user khng i N_user=4, s lng anten thu ca mi user vn theoqut lut c, s lng anten pht thay i ln lt Nt=[2 4 6 8].
Xin PhaLine
Xin PhaTypewriterben ba Thuy co nhieu Q khac
Xin PhaArrow
Xin PhaArrow
Xin PhaArrow
Xin PhaArrow
Xin PhaArrow
Xin PhaArrow
Xin PhaArrow
Xin PhaTypewriterCo lien he gi khong ?
Xin PhaArrow
Xin PhaArrow
Trang 61
Nhn xt: tc h thng tng khi s lng anten pht tng.4.4.3. BD-precoding:
Vi h thng Mutil-user MIMO n gin: s anten pht NT=4, s lng antenca mi user NR=2, s lng user =2, p ng xung h c to ra ngu nhin bi hmrand v xem nh bit bn pht. So snh BER ca trng hp s dng BD-precoding v khng s dng BD-precoding, iu ch M-QAM vi M khc nhau 2,4.
Nhn xt: s dng BD-precoding lm gim BER ng k. Trng hp M=2 cho BERtt hn M=4.
Xin PhaTypewriternen gop nhieu do thi cho co the nhan xet
Trang 62
4.5. Kt lun chng: chng ny ta i su tm hiu v cch hn ch dung lng feedback da
vo h s BEM.Tm hiu v phng php BD-precoding, phn b cng sut v xydng cch chn la user theo dung lng.M phng tc ca h thng khi ta thayi user , thay i anten pht v so snh 2 trng hp khc nhau khi c v khng sdng BD-precoding.
Trang 63
KT LUN V HNG PHT TRIN TI
Trang 64
TI LIU THAM KHO
[1] Nguyn L Hng,Mobile Communications[2] Yong Soo Cho,Jaek won Kim,Won Young Yang,Chung G.Kang.MIMO-OFDM Wireless Communication with Matlab[3] Nguyn L Hng,L Ngc Th,Loic Canonne-Velasquez Multiuser MIMODowlink Tranmission with BEM-Based Limited Feedback over Douby SelectiveChannels
Trang 65
PH LC****BD.m****
clear all;close all;N_trial = 50; % number of simulation trialsN_user = [4 10 20 30]; % number of available "homogeneous" users in the consideredLTE systemN_tx = 8; % number of transmit antennas at BS; N_rx: number of Rx antennas = 1 atthe current step.
L = 5; % number of resolvable multipaths < N_cp, could be considered as themaximum number of resolvable paths of all BS-to-user channelsPDP = exp(-[0:L-1]/4)/sum( exp(-[0:L-1]/4) );% Power Delay Profile in according toCOST 259, [L. M. Correia,
% "Wireless Flexible Personalised Communications",New York: Wiley 2001].v_offset = 20; % = 0 if users have perfect values of their speeds.v_kph =200;% speed of "homogeneous" users in km/hN_dps_base = 18; % number of DPS-BEM coefficents is used in the TV channelmodelingk_dimen = 2; % each BEM coefficient vector is divided into many segments with alength of k=2 before vector quantization.%======LTE downlink timing settings related to pre-defined DPS-bases/Codebook
Trang 66
%The below MAT-file contains the pre-defined LBG codebook to be used in thissimulation platform.loadCodebook_10bits_1E5trains_DPS_18Bases_200kph_fc2GHz_2LTEframes_normal_CP_128FFT;
achievable_rate = zeros(1,length(N_user)); % achievable rate of our proposed schemefor k=1:length(N_user)
N_rx = 2*ones(1,N_user(k))No = 1*ones(1,N_user(k)); % Noise variance in "hetergeneous" scenarios
for trial =1:N_trial % to obtain average values of capacity/ratedisp(['Current Trial = ', num2str(trial)]);
actual_speed = v_kph + v_offset*(2*rand-1); % due to imperfect knowledge of userspeeds
[BEM_coe_Rx,CIR_Rx,TI_CIR_Rx] =Zheng_DPS_CIR_Gen(N_user(k),N_rx,N_tx,L,PDP,actual_speed,N_dps_base,...
N_LTE_frame,N_slot,N_sym_slot,N_fft,Ns,1/fs,fc,pseudoInv_BEM_Base_ma);disp(['Channel Generation Completed, Current Trial = ', num2str(trial)]); % to
estimate the simulation time of each task
% Quantization of users' BEM coefficients (channel responses) for feedback to BaseStation.
[index_set_Rx] =VQ_index_search(BEM_coe_Rx,k_dimen,L,N_tx,N_rx,N_user(k),codevectors); %index_set_Rx(seg,tap,tx_anten,user) to be sent to Base Station
clear BEM_coe_Rx;disp(['BEM Quantization Completed, Current Trial = ', num2str(trial)]); % to
estimate the simulation time of each task
[BEM_coe_BS] =BEM_coe_recover(index_set_Rx,codevectors,N_tx,N_rx,L,N_dps_base,k_dimen,N_user(k)); % recovered BEM coefficients at Base Station
[CFR_BS,CFR_Rx] =CFR_Gen(N_user(k),N_tx,N_rx,L,Ns,N_fft,CIR_Rx,BEM_coe_BS,BEM_Base_ma,N_sym_slot,N_slot,N_LTE_frame);
clear CIR_Rx BEM_coe_BS; % to reduce the used memory in PC % OR CAN USEBEM COEFFICIENTS TO RECOVER CFR_Rx TO AVOID THE USE OF CIR_Rx
disp(['CSI Recovery at BS Completed, Current Trial = ', num2str(trial)]); % toestimate the simulation time of each task
Trang 67
[TI_CFR_Rx] = TI_CFR_Gen(N_user(k),N_tx,N_rx,L,N_fft,TI_CIR_Rx); %assumed time-invariant CFR (perfect estimation) used for comparison
clear TI_CIR_Rx;% The below Greedy scheduling under assumption of time-invariant channels
ignore the ICI power
[total_rate] =Greedy_scheduler(Power,No,CFR_Rx,CFR_BS,N_fft,N_tx,N_rx,N_user(k),N_sym_slot,N_slot);
achievable_rate(k) = achievable_rate(k) + real( total_rate );disp(['TV-channel Scheduling completed, Current Trial = ',
num2str(trial)]); % to estimate the simulation time of each taskclear CFR_BS;
endachievable_rate(k) = achievable_rate(k)/N_trial/(N_sym_slot*N_slot)/N_fftend
figure(1)plot(N_user,achievable_rate,'-.k*','LineWidth',2);hold on;xlabel('Number of active users');ylabel('Sum-rate (bps/Hz)');legend('BD using BEM-based limited feedback');
Trang 68
****DPS_BEM_Gen****
function [BEM_Base_ma,pseudoInv_BEM_Base_ma] =DPS_BEM_Gen(v_kph,N_dps_base,fc,N_LTE_frame,N_slot,N_sym_slot,N_fft,N_cp,fs);
Ns = N_cp + N_fft; % OFDM symbol length after CP insertionTs = 1/fs; %the resulting sampling periodsam_index = 0:Ns*N_sym_slot*N_slot*N_LTE_frame - 1; % set of the time-domainsamples in N_LTE_frame framessam_time = sam_index*Ts; % time instants in N_LTE_frame frameslen_sam_index = length(sam_index);% number of all time-domain samples inN_LTE_frame frames
v_ms = v_kph*1000/3600; % speed in m/sc =3e8;%speed of light m/sv_Dmax = v_ms*fc*Ts/c; % Normalized one-sided Doppler bandwidth; actual mobilespeed can be a bit greater than the used value of v_ms herein.%-------------------------------------------------------------------------NW = v_Dmax*len_sam_index; % following description of dpss Matlab function,v_Dmax ---> W; len_sam_index --> N[E_ma,V_ma] = dpss(len_sam_index,NW,N_dps_base); % Put in a SEPERATE M-file to reduce simulation time !!!!
BEM_Base_ma = E_ma(1:len_sam_index,1:N_dps_base);pseudoInv_BEM_Base_ma = inv(BEM_Base_ma'*BEM_Base_ma)*BEM_Base_ma';% for pre-computation of pseudo matrix inversion in TV channel generation
Trang 69
****Zheng_DPS_CIR_Gen****
function [BEM_coe_Rx,CIR_Rx,TI_CIR_Rx] =Zheng_DPS_CIR_Gen(N_user,N_rx,N_tx,L,PDP,v_kph,N_dps_base,N_LTE_frame,N_slot,N_sym_slot,N_fft,Ns,Ts,fc,...
pseudoInv_BEM_Base_ma);M = 20; % number of sinusoid waves in Zheng model (extended Jakes model)len_sam_index = Ns*N_sym_slot*N_slot*N_LTE_frame;% number of all time-domain samples in N_LTE_frame frames where mobile user speed
% is assumed to be unchanged.sam_time = (0:len_sam_index - 1)*Ts; % time instants in N_LTE_frame frames (of asuperframe)v_ms = v_kph*1000/3600; % mobile user speed in m/sc =3e8; % speed of light in m/swd = 2*pi*v_ms*fc/c;BEM_coe_Rx = zeros(N_dps_base,L,N_tx,max(N_rx),N_user);CIR_Rx = zeros(L,N_fft,N_tx,max(N_rx),N_user,N_sym_slot*N_slot);TI_CIR_Rx = zeros(L,N_tx,max(N_rx),N_user);for user = 1:N_user
for rx_anten = 1:N_rx(user)for tx_anten = 1:N_tx
for tap = 1:Lalpha_n = ( 2*pi*[1:M].' - pi + pi*(2*rand-1) )/4/M; % M is the number of
sinusoid waves in Zheng model (extended Jakes model)Shi_n = pi*(2*rand(M,1)-1)*ones(1,len_sam_index);%PHI_ma = pi*(2*rand(M,1)-1)*ones(1,len_sam_index); % or PHI_ma =
pi*(2*rand-1)*ones(M,len_sam_index) !!! as used in Zheng paperPHI_ma = pi*(2*rand-1)*ones(M,len_sam_index); %
Trang 70
TI_CIR_Rx(1:L,tx_anten,rx_anten,user) =CIR_Rx(1:L,1,tx_anten,rx_anten,user,1);
%assuming time-invariant CIR is equal to the CIR at the 1st sample in the 1stOFDM symbol
endend
endclear Shi_n PHI_ma fading_gain sam_time;
Trang 71
****VQ_index_search****
function [index_set] =VQ_index_search(BEM_coe,k,L,N_tx,N_rx,N_user,codevectors);len_codebook = length(codevectors(1,:,1));N_segment = length(BEM_coe(:,1,1,1,1))/k;index_set = zeros(N_segment,L,N_tx,max(N_rx),N_user);for user =1:N_user
for rx_anten = 1:N_rx(user)for tx_anten = 1:N_tx
for tap =1:L % number of resolvable multipathsfor seg = 1:N_segment % the segment index of parts in a BEM coefficient
vector;[min_va,index_set(seg,tap,tx_anten,rx_anten,user)]=...
min( sum( abs( BEM_coe([1:k]+k*(seg-1),tap,tx_anten,rx_anten,user)*ones(1,len_codebook) -...
codevectors([1:k]+k*(seg-1),1:len_codebook,tap) ).^2 ) );
endend
endend
end% Just for reference on matrix sizes. % %BEM_coe(1:N_dps_bases,tap,tx_anten,user); % codevectors(1+k*(seg-1):k*seg,1:2^FB_len,tap)
Trang 72
****BEM_coe_recover****
function [BEM_coe_BS] =BEM_coe_recover(index_set,codevectors,N_tx,N_rx,L,N_dps_base,k_dimen,N_user);%Just for reference on matrix sizes used.% codevectors(1+k*(seg-1):k*seg,1:2^FB_len,tap)% index_set(seg,tap,tx_anten,user)BEM_coe_BS = zeros(N_dps_base,L,N_tx,max(N_rx),N_user);for user =1:N_user
for rx_anten = 1:N_rx(user)for tx_anten =1:N_tx
for tap =1:Lfor seg = 1:N_dps_base/k_dimen
BEM_coe_BS([1:k_dimen]+k_dimen*(seg-1),tap,tx_anten,rx_anten,user)=...
codevectors([1:k_dimen]+k_dimen*(seg-1),index_set(seg,tap,tx_anten,rx_anten,user),tap);
endend
endend
end
Trang 73
****CFR_Gen****
function [CFR_BS,CFR_Rx] =CFR_Gen(N_user,N_tx,N_rx,L,Ns,N_fft,CIR_Rx,BEM_coe_BS,BEM_Base_ma,N_sym_slot,N_slot,N_LTE_frame);% CIR_Rx(1:L,1:N_fft,1:N_tx,1:N_rx,1:N_user,OFDM_sym): just for reference inmatrix sizesmax_N_rx = max(N_rx);CFR_BS = zeros(max_N_rx,N_tx,N_fft,N_user,N_sym_slot*N_slot); % causeproblem of Memory in case of large user poolCFR_Rx = zeros(max_N_rx,N_tx,N_fft,N_user,N_sym_slot*N_slot); % causeproblem of Memory in case of large user poolfor OFDM_sym = 1:N_sym_slot*N_slot % CP length =Ns-N_fft
sum_BEM_bases = sum( BEM_Base_ma(Ns*N_sym_slot*N_slot*(N_LTE_frame-1) + (OFDM_sym-1)*Ns + Ns-N_fft + [1:N_fft],:) );
for user = 1:N_userfor rx_anten = 1:N_rx(user)
for tx_anten = 1:N_txsum_CIR_Rx = sum(
CIR_Rx(:,1:N_fft,tx_anten,rx_anten,user,OFDM_sym).' );for kk = 1:N_fft %
BEM_coe(1:N_dps_bases,tap,tx_anten,user):)CFR_BS(rx_anten,tx_anten,kk,user,OFDM_sym) =...
sum_BEM_bases*(BEM_coe_BS(:,:,tx_anten,rx_anten,user)*exp(-j*2*pi*(kk-1)*[0:L-1]'/N_fft) )/N_fft;
% compute H(kk,kk); (kk-1) since subcarrierindex run from 0 to N_fft -1
CFR_Rx(rx_anten,tx_anten,kk,user,OFDM_sym) = sum_CIR_Rx*exp(-j*2*pi*(kk-1)*[0:L-1].'/N_fft )/N_fft;
endend % end of "for tx_anten = 1:N_tx"
endend
end
Trang 74
****TI_CFR_Gen****
function [TI_CFR_Rx] = TI_CFR_Gen(N_user,N_tx,N_rx,L,N_fft,TI_CIR_Rx);
% TI_CIR_Rx(1:L,tx_antenn,user)TI_CFR_Rx = zeros(max(N_rx),N_tx,N_fft,N_user);for user = 1:N_user
for rx_anten = 1:N_rx(user)for tx_anten = 1:N_tx
for kk = 1:N_fftTI_CFR_Rx(rx_anten,tx_anten,kk,user) = exp( -j*2*pi*(kk-1)*[0:L-
1]/N_fft )* TI_CIR_Rx(1:L,tx_anten,rx_anten,user);end
endend
end
Trang 75
****Greedy_scheduler****
function [total_rate_frame] =Greedy_scheduler(Power,No,CFR_Rx,CFR_BS,N_fft,N_tx,N_rx,N_user,N_sym_slot,N_slot);% Just for reference on matrix sizes: TI_CFR_Rx(1:N_fft,tx_anten,user)total_rate_frame = 0;for OFDM_sym = 1:N_sym_slot*N_slot
for kk = 1:N_fft % perform (per-subcarrier) scheduling for each subcarrieruser_set = [1:N_user]; % set of available users in the considered LTE systemloop = 1; % just a variable refering to the number of selected users. As a result,
noted that the number of selected users = loop-1 N_tx % not sastify the constraint ofnumbers of Tx/Rx antennas
if loop ==1temp_sum_rate(uu) = log2( det( eye(N_rx(user_set(uu)))+
(Power/N_tx)*...
CFR_BS_temp_users*CFR_BS_temp_users'/No(temp_user_set) ) );else
temp_sum_rate(uu) = 0;end
else% if some temporarily selected users are too close in space the rank of the
matrix H will be < sum(N_rx(temp_user_set))if loop == 1 % corresponding to the 1st round of Greedy user selection
%no SVD required since there is only one user in the currentlyconsidered scenario
temp_sum_rate(uu) = log2( det( eye(N_rx(user_set(uu))) +(Power/N_tx)*...
Trang 76
CFR_BS_temp_users*CFR_BS_temp_users'/No(temp_user_set) ) );else % with Greedy user scheduling, selecting too-close users will reduce
the sum-rate of the system.U_v = zeros(max(N_rx),max(N_rx),length(temp_user_set));G_ma = zeros(max(N_rx),max(N_rx),length(temp_user_set));Lamda_vec = zeros(max(N_rx),length(temp_user_set));Lamda_seq = [];for user_index = 1:length(temp_user_set)
H_temp = CFR_BS_temp_users;H_temp( sign(user_index-1)*sum( N_rx(
temp_user_set(1:max(user_index-1,1)) ) ) +...
[1:N_rx(temp_user_set(user_index))],:) = [];[U_ma,S_ma,V_ma] = svd(H_temp);V_precoding = V_ma(1:N_tx,N_tx-
N_rx(temp_user_set(user_index))+1 : N_tx); % if rank(H_temp) =length(H_temp(:,1));
G_ma(1:N_rx(temp_user_set(user_index)),1:N_rx(temp_user_set(user_index)),user_index) =...
CFR_BS(1:N_rx(temp_user_set(user_index)),1:N_tx,kk,temp_user_set(user_index),OFDM_sym)*V_precoding;
%Consider different No at each user
Trang 77
% Should be carefull at Es_total for case of more than 1 user; Use thesamme Es_total, this is verify by hand-writing at page (*)
used_length = length(lamda_seq_sorted); % number of currentlyconsidered users for scheduling
check = 1;while (check)
water_level = lamda_seq_sorted(used_length); % water level = 1/mu;if sum( max(water_level - lamda_seq_sorted, 0) ) > Power
used_length = used_length - 1;else
check = 0;end
end%Calculate optimal water levelwater_level = ( Power +sum( lamda_seq_sorted(1:used_length) )
)/used_length;temp_sum_rate(uu) = 0;for user_index = 1:length(temp_user_set)
S_k =U_v(1:N_rx(temp_user_set(user_index)),1:N_rx(temp_user_set(user_index)),user_in-dex)*...
diag( max(water_level -1./Lamda_vec(1:N_rx(temp_user_set(user_index)),user_index),0) )*...
U_v(1:N_rx(temp_user_set(user_index)),1:N_rx(temp_user_set(user_index)),user_in-dex)';
temp_sum_rate(uu) = temp_sum_rate(uu) + log2( det(eye(N_rx(temp_user_set(user_index))) +...
G_ma(1:N_rx(temp_user_set(user_index)),1:N_rx(temp_user_set(user_index)),user_index)*...
S_k*...
G_ma(1:N_rx(temp_user_set(user_index)),1:N_rx(temp_user_set(user_index)),user_index)'/...
No(temp_user_set(user_index)) ) );end
end % of "if loop ==1"end % checking to see if adding one more user will sastify
sum(N_rx(temp_user_set))
Trang 78
keep_searching = 0; % Stop Greedy user selection due to a decrease in thesystem sum-rate.
elseselected_user_set = [selected_user_set user_set(index_max)];% selected_users(loop) = user_set(index_max);CFR_BS_chosen_users =
[CFR_BS_chosen_users;CFR_BS(1:N_rx(user_set(index_max)),1:N_tx,kk,user_set(index_max),OFDM_sym)];
user_set(index_max) = 0; % just a way to ignore the currently selected userin later consideration/user selection.
user_set = sort(user_set,'descend');% a way to ignore the currently selecteduser in later greedy user selection.
loop = loop+1; % number of selected users (add ONE new selected user) =loop-1
endend % end of the entire schdeduling process.% Compute the achievable system sum-rate with the above set of selected users% Repeat the BD precoding for the above set of selected usersif length(selected_user_set) == 1 % corresponding to the 1st round of Greedy user
selection%no SVD required since there is only one user in the currently considered
scenarioactual_sum_rate=log2( det( eye(N_rx(selected_user_set(1))) +
(Power/N_tx)*...
CFR_Rx(1:N_rx(selected_user_set(1)),1:N_tx,kk,selected_user_set(1),OFDM_sym)*...
CFR_Rx(1:N_rx(selected_user_set(1)),1:N_tx,kk,selected_user_set(1),OFDM_sym)'/...
No(selected_user_set(1)) ) );else % with Greedy user scheduling, selecting too-close users will reduce the
sum-rate of the system.U_v = zeros(max(N_rx),max(N_rx),length(selected_user_set));G_ma = zeros(max(N_rx),max(N_rx),length(selected_user_set));Lamda_vec = zeros(max(N_rx),length(selected_user_set));Lamda_seq = [];V_precoding = zeros(N_tx,max(N_rx),length(selected_user_set));for user_index = 1:length(selected_user_set)
H_temp = CFR_BS_chosen_users;H_temp( sign(user_index-1)*sum( N_rx(
selected_user_set(1:max(user_index-1,1)) ) ) +...[1:N_rx(selected_user_set(user_index))],:)
= [];[U_ma,S_ma,V_ma] = svd(H_temp);
Trang 79
V_precoding(1:N_tx,1:N_rx(selected_user_set(user_index)),user_index) =...V_ma(1:N_tx,N_tx -
N_rx(selected_user_set(user_index))+ 1 : N_tx); % if rank(H_temp) =length(H_temp(:,1));
G_ma(1:N_rx(selected_user_set(user_index)),1:N_rx(selected_user_set(user_index)),user_index) =...
CFR_BS(1:N_rx(selected_user_set(user_index)),1:N_tx,kk,selected_user_set(user_in-dex),OFDM_sym)*...
V_precoding(1:N_tx,1:N_rx(selected_user_set(user_index)),user_index);%Consider different No at each user
Trang 80
%Calculate optimal water levelwater_level = ( Power +sum( lamda_seq_sorted(1:used_length) )
)/used_length;Cov_I_Sig = zeros(N_tx,N_tx); % Covariance matrix of interference + signal
of interestS_k = zeros(max(N_rx),max(N_rx),length(selected_user_set));for user_index = 1:length(selected_user_set)
S_k(1:N_rx(selected_user_set(user_index)),1:N_rx(selected_user_set(user_index)),user_index) =...
U_v(1:N_rx(selected_user_set(user_index)),1:N_rx(selected_user_set(user_index)),user_index)*...
diag( max(water_level -1./Lamda_vec(1:N_rx(selected_user_set(user_index)),user_index),0) )*...
U_v(1:N_rx(selected_user_set(user_index)),1:N_rx(selected_user_set(user_index)),user_index)';
Cov_I_Sig = Cov_I_Sig +V_precoding(1:N_tx,1:N_rx(selected_user_set(user_index)),user_index)*...
S_k(1:N_rx(selected_user_set(user_index)),1:N_rx(selected_user_set(user_index)),user_index)*...
V_precoding(1:N_tx,1:N_rx(selected_user_set(user_index)),user_index)';endactual_sum_rate = 0;for user_index = 1:length(selected_user_set)
actual_sum_rate = actual_sum_rate +...log2( det(
No(selected_user_set(user_index))*eye(N_rx(selected_user_set(user_index))) +...
CFR_Rx(1:N_rx(selected_user_set(user_index)),1:N_tx,kk,selected_user_set(user_in-dex),OFDM_sym)*...
Cov_I_Sig*...
CFR_Rx(1:N_rx(selected_user_set(user_index)),1:N_tx,kk,selected_user_set(user_in-dex),OFDM_sym)' )/...
det(No(selected_user_set(user_index))*eye(N_rx(selected_user_set(user_index))) +...
CFR_Rx(1:N_rx(selected_user_set(user_index)),1:N_tx,kk,selected_user_set(user_in-dex),OFDM_sym)*...
( Cov_I_Sig -...
Trang 81
V_precoding(1:N_tx,1:N_rx(selected_user_set(user_index)),user_index)*...
S_k(1:N_rx(selected_user_set(user_index)),1:N_rx(selected_user_set(user_index)),user_index)*...
V_precoding(1:N_tx,1:N_rx(selected_user_set(user_index)),user_index)' )*...
CFR_Rx(1:N_rx(selected_user_set(user_index)),1:N_tx,kk,selected_user_set(user_in-dex),OFDM_sym)' ) );
endendtotal_rate_frame = total_rate_frame + actual_sum_rate;
endend