-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathPrecoder_Check.m
56 lines (52 loc) · 1.2 KB
/
Precoder_Check.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
%filename:Precoder_Check.m
j=sqrt(-1);
u0=[1; -1; -1; -1];
u1=[1; -j; 1; j];
u2=[1; 1; -1; 1];
u3=[1; j; 1; -j];
u4=[1; (-1-j)/sqrt(2); -j; (1-j)/sqrt(2)];
u5=[1; (1-j)/sqrt(2); j; (-1-j)/sqrt(2)];
u6=[1; (1+j)/sqrt(2); -j; (-1+j)/sqrt(2)];
u7=[1; (-1+j)/sqrt(2); j; (1+j)/sqrt(2)];
u8=[1; -1; 1; 1];
u9=[1; -j; -1; -j];
u10=[1; 1; 1; -1];
u11=[1; j; -1; j];
u12=[1; -1; -1; 1];
u13=[1; -1; 1; -1];
u14=[1; 1; -1; -1];
u15=[1; 1; 1; 1];
W0=eye(4)-2*u0*u0'/(u0'*u0);
W1=eye(4)-2*u1*u1'/(u1'*u1);
W2=eye(4)-2*u2*u2'/(u2'*u2);
W3=eye(4)-2*u3*u3'/(u3'*u3);
W4=eye(4)-2*u4*u4'/(u4'*u4);
W5=eye(4)-2*u5*u5'/(u5'*u5);
W6=eye(4)-2*u6*u6'/(u6'*u6);
W7=eye(4)-2*u7*u7'/(u7'*u7);
W8=eye(4)-2*u8*u8'/(u8'*u8);
W9=eye(4)-2*u9*u9'/(u9'*u9);
W10=eye(4)-2*u10*u10'/(u10'*u10);
W11=eye(4)-2*u11*u11'/(u11'*u11);
W12=eye(4)-2*u12*u12'/(u12'*u12);
W13=eye(4)-2*u13*u13'/(u13'*u13);
W14=eye(4)-2*u14*u14'/(u14'*u14);
W15=eye(4)-2*u15*u15'/(u15'*u15);
F0=W0/2;
F1=W1/2;
F2=W2(:,[3 2 1 4])/2;
F3=W3(:,[3 2 1 4])/2;
F4=W4/2;
F5=W5/2;
F6=W6(:,[1 3 2 4])/2;
F7=W7(:,[1 3 2 4])/2;
F8=W8/2;
F9=W9/2;
F10=W10(:,[1 3 2 4])/2;
F11=W11(:,[1 3 2 4])/2;
F12=W12/2;
F13=W13(:,[1 3 2 4])/2;
F14=W14(:,[3 2 1 4])/2;
F15=W15/2;
D=inv(F0)*F4
D2 = inv(F0) * F2