⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midamble.m

📁 3G TD-SCDMA中基于midamble的信道估计的实现
💻 M
字号:
function G=midamble(mp0,Kmax,K) %basic midamble code:mp0(字符型);maximum Users number:Kmax;actual Users number:K.
mp1=HexToBinary(mp0); % %将输入的16进制数组(字符型)转换成为二进制数组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码进行旋转,得到复数型的midamble序列mp  :当采用QPSK的调制方式时训练序列需要转换为复数形式
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,标志了一个小区中可以使用的midamble序列的最大个数;W是P/K的整数部分,信道估计的窗长 ;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;%循环扩展到imax位
%下面划分K个Users
for k=1:K
    for i=1:Lm
        mp2((k-1)*Lm+i)=m(i+((K-k)*W));
    end;
end;
%现在已经得到了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 + -