?? midamble.m
字號:
function G=midamble(mp0,Kmax,K) %basic midamble code:mp0(字符型);maximum Users number:Kmax;actual Users number:K.
mp1=HexToBinary(mp0); % %將輸入的16進制數(shù)組(字符型)轉換成為二進制數(shù)組b,一位十六進制對應于四位二進制
for i=1:(length(mp1))
if mp1(i)==0,
mp1(i)=-1;
end;
end;
%mp1=[1, -1, 1, 1 ,-1, -1, 1, -1,1, -1, 1, -1 ,1, 1, -1, -1 ,-1 ,1 ,
%-1 ,-1, -1,-1,1 ,-1, -1,-1,-1,-1,1 ,1 ,1 ,1, -1, 1, 1, 1,1 ,1 ,
%-1,-1,1, -1,-1, -1,1, 1, -1, 1,1 ,1 ,1 ,-1,1 ,-1 ,1, 1,1 ,1 ,1,
%1,1 ,-1,1 ,-1,-1, 1, 1 ,-1,1,-1, -1, 1,-1, 1 ,-1 ,1,-1, -1, -1,
% -1, -1,1 ,-1,1,1 ,-1, -1, 1,1, -1 ,-1,-1,-1,-1,-1,1, 1 ,-1,1 ,
%1,1, 1,-1,-1,1, 1 ,-1,1,-1,-1,-1,-1,-1,-1,1 ,-1,1 ,-1,-1,-1,1, 1 ,-1,-1,-1 ,-1,1 ,1];
%mp1為基本的midamble碼,mp0=['B2AC420F7C8DEBFA69505981BCD028C3']
%(1)旋轉:生成midamble碼前首先要對基本midamble碼進行旋轉,得到復數(shù)型的midamble序列mp :當采用QPSK的調(diào)制方式時訓練序列需要轉換為復數(shù)形式
p=length(mp1);
if ~(p==128),
error('The basic midamble code is wrong !')
end;
%Kmax=16:the maximum number of users that the system can support.
if K>Kmax,
error('the system can not support this number of users')
end;
for n=1:p
mp(n)=((j)^n)*mp1(n);
end;
%周期拓展:得到m序列后要對它進行周期性的拓展,使其長度達到Lm+(K-1)W。Lm是時隙中midamble的長度,為144;
%K=2,4,6,8,10,12,14,16,標志了一個小區(qū)中可以使用的midamble序列的最大個數(shù);W是P/K的整數(shù)部分,信道估計的窗長 ;P是基本midamble序列的長度,為128
if K<=8,
W=16;
else W=8;
end;
Lm=144;
imax=Lm+(K-1)*W;
for i=1:p
m(i)=mp(i);
end;
for i=1:(imax-p)
m(p+i)=m(i);
end;%循環(huán)擴展到imax位
%下面劃分K個Users
for k=1:K
for i=1:Lm
mp2((k-1)*Lm+i)=m(i+((K-k)*W));
end;
end;
%現(xiàn)在已經(jīng)得到了K個User的碼字,第k個User的碼字為mp1(k).每個User的碼字作為G(L*K)矩陣的一列共有K列。
for l=1:Lm
for k=1:K
G(l,k)=mp2((l-1)*K+k);
end;
end;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -