msinterleaverinitialization.m
来自「CDMA20001X的仿真平台,各链路性能研究,建模方法」· M 代码 · 共 138 行
M
138 行
%==========================================================================
% MS_Interleaver_Initialization.m
%==========================================================================
%根据无线配置设置交织器的信号重复因子,符号抽取向量以及交织器的长度
%只支持RC3和RC4
switch xRC
case 3
%根据原始数据帧的长度设置的信号重复因子,信号抽取向量以及交织器长度
switch xFrameLength
case 6120
xRepetitionCount=1;
xPunctureVector=[1];
xInterleaverSize=12288;
case 3048
xRepetitionCount=1;
xPunctureVector=[1];
xInterleaverSize=12288;
case 1512
xRepetitionCount=1;
xPunctureVector=[1];
xInterleaverSize=6144;
case 744
xRepetitionCount=1;
xPunctureVector=[1];
%xInterleaverSize=3072;
m=6;
J=48;
% Even interleaved Symbol
i = [0:2:3072-2]';
x = i/2;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
i = [1:2:3072-1]';
x= 3072 - (i+1)/2;
Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven Aodd]',3072,[]) + 1;
case 360
xRepetitionCount=1;
xPunctureVector=[1];
%xInterleaverSize=1536;
m=6;
J=24;
% Even interleaved Symbol
i = [0:2:1536-2]';
x = i/2;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
i = [1:2:1536-1]';
x= 1536 - (i+1)/2;
Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven Aodd]',1536,[]) + 1;
case 172
%xRepetitionCount=2;
%xPunctureVector=[1];
%xInterleaverSize=1536;
m=6;
J=24;
% Even interleaved Symbol
i = [0:1:1536-1]';
x = i;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
% i = [1:2:1536-1]';
% x= 1536 - (i+1)/2;
% Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven]',1536,[]) + 1;
case 80
xRepetitionCount=4;
xPunctureVector=[1];
% xInterleaverSize=1536;
m=6;
J=24;
% Even interleaved Symbol
i = [0:2:1536-2]';
x = i/2;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
i = [1:2:1536-1]';
x= 1536 - (i+1)/2;
Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven Aodd]',1536,[]) + 1;
case 40
xRepetitionCount=8;
xPunctureVector=[1 1 1 1 1 1 1 1 0];
%xInterleaverSize=1536;
m=6;
J=24;
% Even interleaved Symbol
i = [0:2:1536-2]';
x = i/2;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
i = [1:2:1536-1]';
x= 1536 - (i+1)/2;
Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven Aodd]',1536,[]) + 1;
case 16
xRepetitionCount=16;
xPunctureVector=[1 1 1 1 0];
%xInterleaverSize=1536;
m=6;
J=24;
% Even interleaved Symbol
i = [0:2:1536-2]';
x = i/2;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
i = [1:2:1536-1]';
x= 1536 - (i+1)/2;
Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven Aodd]',1536,[]) + 1;
case 24
xRepetitionCount=2;
xPunctureVector=[1];
%xInterleaverSize=384;
m=6;
J=6;
% Even interleaved Symbol
i = [0:2:384-2]';
x = i/2;
Aeven = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
% Odd interleaved Symbol
i = [1:2:384-1]';
x= 384 - (i+1)/2;
Aodd = 2^m*(mod(x,J))+ bi2de(de2bi(floor(x/J),m,'left-msb'),'right-msb');
int_table = reshape([Aeven Aodd]',384,[]) + 1;
otherwise
error('Error:Invalid Frame Length for Radio Configuration 3 in cdma 2000 Mobile Station block<Interleaver>');
int_table = [ ];
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?