📄 mbsfnpseudoranseq.m
字号:
function cMBSFN = MBSFNpseudoranseq(Nidmbsf,Ns) % 生成用于MBSFN参考信号的伪随机序列;
Nc=1600; %见协议36.211第75页规定;
n = 2 * 6 * 110 + 1 ;% 设置伪随机序列cMBSFN的长度,为了适用于MBSFN参考信号序列的长度:6*NmaxDLRB,NmaxDLRB是下行链路最大可占用资源块数,为110
x1(1)=1; % sequence x1 initializition;
for i=2:31 % x1(0)=1,x1(n)=0,n=1,2,...,30;
x1(i)=0;
end
for i=1:(Nc+n-31) % generate sequence x1,x1(n+31) = (x1(n + 3) + x1(n)) mod 2
x1(i+31)=mod((x1(i+3)+x1(i)),2);
end
for i = 1:6 % MBSFN参考信号只在天线端口4上传输,与PMCH共用一个天线端口。MBSFN参考信号只用于扩展型循环前缀.所以l=6。
Cinit(i) = 2 ^ 9 * (7 * (Ns + 1) + (i - 1) + 1) * (2 * Nidmbsf + 1) + Nidmbsf ; % 伪随机序列要在每个OFDM符号的开头初始化,Cinit(i) = 2 ^ 9 * (7 * (Ns + 1) + l + 1) * (2 * Nidmbsf + 1) + Nidmbsf;
end
% 求用于MBSFN参考信号的伪随机序列的初始值,还有个作用是为了对m序列x2进行初始化;因为每个OFDM符号的初始值不一样,则每个OFDM符号对应
% 的序列x2的初始值也不一样
x21=de2bi (Cinit(1),31); % 将十进制化为二进制
x22=de2bi (Cinit(2),31);
x23=de2bi (Cinit(3),31);
x24=de2bi (Cinit(4),31);
x25=de2bi (Cinit(5),31);
x26=de2bi (Cinit(6),31);
for i=1:(Nc+n-31) % generate sequence x2 ,x2(n + 31) = (x2(n + 3) + x2(n + 2) + x2(n + 1) + x2(n)) mod 2;
x21(i+31)=mod((x21(i+3)+x21(i+2)+x21(i+1)+x21(i)),2);
x22(i+31)=mod((x22(i+3)+x22(i+2)+x22(i+1)+x22(i)),2);
x23(i+31)=mod((x23(i+3)+x23(i+2)+x23(i+1)+x23(i)),2);
x24(i+31)=mod((x24(i+3)+x24(i+2)+x24(i+1)+x24(i)),2);
x25(i+31)=mod((x25(i+3)+x25(i+2)+x25(i+1)+x25(i)),2);
x26(i+31)=mod((x26(i+3)+x26(i+2)+x26(i+1)+x26(i)),2);
end
for i=1:n % generate pseudo-random sequence c(n);c(n)=(x1(n+Nc)+x2(n+Nc))mod 2 ;6个伪随机序列对应于6个OFDM符号
c1(i)=mod((x1(i+Nc)+x21(i+Nc)),2);
c2(i)=mod((x1(i+Nc)+x22(i+Nc)),2);
c3(i)=mod((x1(i+Nc)+x23(i+Nc)),2);
c4(i)=mod((x1(i+Nc)+x24(i+Nc)),2);
c5(i)=mod((x1(i+Nc)+x25(i+Nc)),2);
c6(i)=mod((x1(i+Nc)+x26(i+Nc)),2);
end
cMBSFN = [c1;c2;c3;c4;c5;c6]; % 将6个伪随机序列合成一个矩阵输出
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -