You are on page 1of 2

Re-create needed load_parameters data from Link level for the generation of the

precoding matrices.
% (c) Josep Colom Ikuno, INTHFT, 2008
% www.nt.tuwien.ac.at
%% Create the Codebook for Precoding
% Transmit diversity
LTE_params.Z{1} = [1, 0, 1i, 0;
0,-1, 0, 1i;
0, 1, 0, 1i;
1, 0,-1i, 0];
LTE_params.Z{2} = [1, 0, 0, 0, 1i, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0,-1, 0, 0, 0, 1i, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0, 1, 0, 0, 0, 1i, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
1, 0, 0, 0,-1i, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 1, 0, 0, 0, 1i, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0,-1, 0, 0, 0,1i;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 1, 0, 0, 0,1i;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 1, 0, 0, 0,-1i, 0];
% Spatial multiplexing
U_temp = [ 1,-1,-1,-1;
% Matrix corresponding to vectors u0 ... u15 in Tabl
e 6.3.4.2.3-2
1,-1i,1,1i;
1,1,-1,1;
1,1i,1,-1i;
1,(-1-1i)/sqrt(2), -1i,(1-1i)/sqrt(2);
1,(1-1i)/sqrt(2), 1i,(-1-1i)/sqrt(2);
1,(1+1i)/sqrt(2), -1i,(-1+1i)/sqrt(2);
1,(-1+1i)/sqrt(2), 1i,(1+1i)/sqrt(2);
1,-1,1,1;
1,-1i,-1,-1i;
1,1,1,-1;
1,1i,-1,1i;
1,-1,-1,1;
1,-1,1,-1;
1,1,-1,-1;
1,1,1,1;].';
Wn = zeros(4,4,16);
for ii = 1:16
LTE_params.Wn(:,:,ii)=diag(ones(1,4))-2*U_temp(:,ii)*U_temp(:,ii)'/(U_temp(
:,ii)'*U_temp(:,ii));
end
% W Matrix according to Table 6.3.4.2.3-1
% LTE_params.W{1} = cat(3,[1;0],[0;1],[1/sqrt(2);1/sqrt(2)],[1/sqrt(2);-1/sqrt(
2)],...
%
[1/sqrt(2);1i/sqrt(2)],[1/sqrt(2);-1i/sqrt(2)]);
LTE_params.W{1} = cat(3,[1/sqrt(2);1/sqrt(2)],[1/sqrt(2);-1/sqrt(2)],...
[1/sqrt(2);1i/sqrt(2)],[1/sqrt(2);-1i/sqrt(2)]);

LTE_params.W{2} = cat(3,1/sqrt(2)*[1,0;0,1],1/(2)*[1,1;1,-1],1/(2)*[1,1;1i,-1i]
);
% Large delay CDD
LTE_params.U_l{1} = 1;
LTE_params.U_l{2} = 1/sqrt(2)*[1,1;1,exp(-1i*pi)];
LTE_params.U_l{3} = 1/sqrt(3)*[1,1,1;1,exp(-1i*2*pi/3),exp(-1i*4*pi/3);1,exp(-1
i*4*pi/3),exp(-1i*8*pi/3)];
LTE_params.U_l{4} = 1/2*[1,1,1,1;1,exp(-1i*2*pi/4),exp(-1i*4*pi/4),exp(-1i*6*pi
/4);...
1,exp(-1i*4*pi/4),exp(-1i*8*pi/4),exp(-1i*12*pi/4);.
..
1,exp(-1i*6*pi/4),exp(-1i*12*pi/4),exp(-1i*18*pi/4)]
;
LTE_params.D_l{1} = 1;
LTE_params.D_l{2} = [1,0;0,exp(-1i*pi)];
LTE_params.D_l{3} = [1,0,0;0,exp(-1i*2*pi/3),0;0,0,exp(-1i*4*pi/3)];
LTE_params.D_l{4} = [1,0,0,0;0,exp(-1i*2*pi/4),0,0;0,0,exp(-1i*4*pi/4),0;0,0,0,
exp(-1i*6*pi/4)];
% Note that as of v.8.3.0, small delay CDD is removed from the standard
% (28/05/08
RAN_40 RP-080432
0043
Removal of small-delay C
DD
% Precoding matrix W columns to take for each layer mapping
LTE_params.mapping{1} = ones(16,1);
LTE_params.mapping{2}=[1 4;1 2;1 2;1 2;1 4;1 4;1 3;1 3;1 2;1 4;1 3;1 3;1 2;1 3;
1 3;1 2];
LTE_params.mapping{3}=[1 2 4;1 2 3;1 2 3;1 2 3;1 2 4;1 2 4;1 3 4;1 3 4;1 2 4;1
3 4;1 2 3;1 3 4;1 2 3;1 2 3;1 2 3;1 2 3];
LTE_params.mapping{4}=[1 2 3 4;1 2 3 4;3 2 1 4;3 2 1 4;1 2 3 4;1 2 3 4;1 3 2 4;
1 3 2 4;1 2 3 4;1 2 3 4;1 3 2 4;1 3 2 4;1 2 3 4;1 3 2 4;3 2 1 4;1 2 3 4];

You might also like