Advertisement
Guest User

Untitled

a guest
Oct 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. %John Tran 25999001 FYP 2018
  2. clc
  3. clear
  4. close all
  5.  
  6. %Initialising all the variables
  7. P = 11;
  8. Q = 11;
  9.  
  10. x = linspace(-0.4,0.4,P);
  11. y = linspace(-0.4,0.4,Q);
  12.  
  13. L = 200;
  14.  
  15. a = 0.5;
  16.  
  17. %% a
  18. %we know the cluster is pi/4 X pi/4 wide, we use this to find the angular spreads
  19. %phi (0,0)
  20. Sr = zeros(1,2);
  21. St = zeros(1,2);
  22.  
  23. Sr(1) = -pi/8;
  24. Sr(2) = pi/8;
  25.  
  26. St(1) = -pi/8;
  27. St(2) = pi/8;
  28.  
  29. %determining size of cluster
  30. Qc = zeros(1,2);
  31. Pc = zeros(1,2);
  32.  
  33. Qc(1) = a*Q*sin(Sr(1));
  34. Qc(2) = a*Q*sin(Sr(2));
  35. Qc = round(Qc,0);
  36. Pc(1) = a*P*sin(St(1));
  37. Pc(2) = a*P*sin(St(2));
  38. Pc = round(Pc,0);
  39.  
  40. Hva = zeros(P,Q);
  41. %Calculating the channel power E(|Hv(q,p)|^2)
  42. for i = Qc(1):Qc(2)
  43. for j = Pc(1):Pc(2)
  44. BL = -1+(1+1)*rand(1,L);
  45. BLp = mean(abs(BL).^2);
  46. Hva(i+6,j+6) = BLp;
  47. end
  48. end
  49. contour(x,y,Hva)
  50. title('a=0.5')
  51. xlabel('\theta_T')
  52. ylabel('\theta_R')
  53.  
  54. sigma = trace(Hva'*Hva);
  55.  
  56. %% b
  57. % Identicle to part a, but instead alpha = 1
  58. figure()
  59. a_b = 1;
  60.  
  61. %determining size of cluster
  62. Qc_b = zeros(1,2);
  63. Pc_b = zeros(1,2);
  64.  
  65. Qc_b(1) = a_b*Q*sin(Sr(1));
  66. Qc_b(2) = a_b*Q*sin(Sr(2));
  67. Qc_b = round(Qc_b,0);
  68. Pc_b(1) = a_b*P*sin(St(1));
  69. Pc_b(2) = a_b*P*sin(St(2));
  70. Pc_b = round(Pc_b,0);
  71.  
  72. Hvb = zeros(P,Q);
  73. %Calculating the channel power E(|Hv(q,p)|^2)
  74. for i = Qc_b(1):Qc_b(2)
  75. for j = Pc_b(1):Pc_b(2)
  76. BL = -1+(1+1)*rand(1,L);
  77. BLp = mean(abs(BL).^2);
  78. Hvb(i+6,j+6) = BLp;
  79. end
  80. end
  81. contour(x,y,Hvb)
  82. title('a=1')
  83. xlabel('\theta_T')
  84. ylabel('\theta_R')
  85.  
  86. %% c
  87. % Identicle to part a, but instead alpha = 1.31
  88. figure()
  89. a_c = 1.31;
  90.  
  91. %determining size of cluster
  92. Qc_c = zeros(1,2);
  93. Pc_c = zeros(1,2);
  94.  
  95. Qc_c(1) = a_c*Q*sin(Sr(1));
  96. Qc_c(2) = a_c*Q*sin(Sr(2));
  97. % p_Q1 = asin(0.5/a_c);
  98. % p_Q2 = asin((2-0.5)/a_c);
  99. % phi_Q1 = linspace(-p_Q1,p_Q1);
  100. % phi_Q2 = linspace(p_Q1,p_Q2);
  101. % phi_Q3 = linspace(-p_Q2,-p_Q1);
  102. Qc_c = round(Qc_c,0);
  103.  
  104. Pc_c(1) = a_c*P*sin(St(1));
  105. Pc_c(2) = a_c*P*sin(St(2));
  106. % p_P1 = asin(0.5/a_c);
  107. % p_P2 = asin((2-0.5)/a_c);
  108. % phi_P1 = linspace(-p_P1,p_P1)*P;
  109. % phi_P2 = linspace(p_P1,p_P2)*P;
  110. % phi_P3 = linspace(-p_P2,-p_P1)*P;
  111. Pc_c = round(Pc_c,0);
  112.  
  113. %The for loops keeps the submatrix within the bounds of Hv by setting the
  114. %bounds within [-5,5]
  115. for i= 1:2
  116. if Qc_c(i) <=-6
  117. Qc_c(i) = -5;
  118. end
  119. if Pc_c(i) <=-6
  120. Pc_c(i) = -5;
  121. end
  122. end
  123.  
  124. for i= 1:2
  125. if Qc_c(i) >=6
  126. Qc_c(i) = 5;
  127. end
  128. if Pc_c(i) >=6
  129. Pc_c(i) = 5;
  130. end
  131. end
  132.  
  133. Hvc = zeros(P,Q);
  134. for i = Qc_c(1):Qc_c(2)
  135. for j = Pc_c(1):Pc_c(2)
  136. BL = -1+(1+1)*rand(1,L);
  137. BLp = mean(abs(BL).^2);
  138. Hvc(i+6,j+6) = BLp;
  139. end
  140. end
  141. contour(x,y,Hvc)
  142. title('a=1.31')
  143. xlabel('\theta_T')
  144. ylabel('\theta_R')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement