main.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:6k
源码类别:

matlab例程

开发平台:

Matlab

  1. % Program 7-8
  2. %
  3. % main.m
  4. %
  5. % Programmed by A.Kanazawa
  6. % Checked by H.Harada
  7. %
  8. clear 
  9. %%%%%%%%%%%%%%% Status initialization
  10. I = 1; % The cluster size is determined from I and J. (n = I*I + J*J + I*J)
  11. J = 2;
  12. r = 100; % the radius of the cell[m]
  13. h = 0;  % the height of the BS[m]
  14. D = set_D(I,J,r);
  15. station = stationInit(D);
  16. xbs = real(station);  % The x axis of the BS
  17. ybs = imag(station); % The y axis of the BS
  18. sigma = 6.5; % standard deviation of shadowing
  19. alpha = 3.5; % path loss factor
  20. % margin = 0; % The parameter for power control
  21. % Characteristics of antenna gain decision for BS
  22. w_HBS = 60; % [horizontal]: beam width at BS for the target direction [degree]
  23. backg_BS = -100; % [horizontal]: antenna gain at BS for the opposite direction [dB]
  24. w_VBS = 360; % [vertical]: beam width at BS [degree]
  25. % Characteristics of antenna gain decision for MS
  26. w_HMS = 360; % [horizontal]: beam width at MS for the target direction [degree]
  27. backg_MS = -100; % [horizontal]: antenna gain at MS for the opposite direction [dB]
  28. w_VMS = 360; % [vertical]:beam width at MS [degree]
  29. if h == 0,   % In the case of macro cell situation, 
  30.    w_VBS = 360; w_VMS = 360;   %  the effect of beam tilt becomes less.
  31. end  %
  32. % Antenna gain calculation of each BS
  33. g_HBS = antgain(w_HBS, backg_BS);
  34. g_VBS = antgain(w_VBS, 0);
  35. g_HMS = antgain(w_HMS, backg_MS);
  36. g_VMS = antgain(w_VMS, 0);
  37. %%%%%%%%%%%%%%% Loop
  38. %-------Initialization of MS positions
  39. N=1000; % The number of repeat 
  40. for num = 1:N,
  41. Rx = rand(1,19); % the random values: [0-1]
  42. Ry = rand(1,19); % the random values: [0-1]
  43. X = r*Rx;
  44. Y = Ry.* sqrt ( r ^2 - X.^2 );
  45. tx = 2*((rand(1,19)>0.5) -0.5); % the random values: -1 or 1
  46. ty = 2*((rand(1,19)>0.5) -0.5); % the random values: -1 or 1
  47. x= X.* tx; % The x axis of the MS when we regard the position of each BS as (0,0)
  48. y= Y.* ty; % The y axis of the MS when we regard the position of each BS as (0,0)
  49. x2 = x+xbs.'; % The x axis of the MS when we regard the position of central BS as (0,0)
  50. y2 = y+ybs.'; % The y axis of the MS when we regard the position of central BS as (0,0)
  51. z(1,:) = x + i * y; % The complex expression of MS when we regard the position of each BS as (0,0)
  52. z(2,:) = x2+ i * y2; % The complex expression of MS when we regard the position of central BS as (0,0)
  53. d(1,:) = abs(z(1,:)); % The distance between BS_i and MS_i in horizontal axis
  54. d(2,:) = abs(z(2,:)); % The distance between central BS and MS_i in horizontal axis
  55. d2 = sqrt(d.^2 + h^2);  % The distance 
  56. phai(1,:) = angle(z(1,:)); % The angle difference between BS_i and MS_i [rad]
  57. phai(2,:) = angle(z(2,:)); % The angle difference between central BS and MS_i [rad]
  58. deg = phai*180/pi; % the conversion of radian to degree
  59.    
  60.    if h ==0, degH = 90*ones(1,19); 
  61.       else
  62.          phaiH = atan(d(2,:)/h); % the elevation angle between central BS and MS_i
  63.          degH = phaiH*180/pi;  % the conversion of radian to degree
  64.       end
  65. %-------shadowing----------
  66. for m = 1:19 
  67. g(m) = 10*log10(shadow(sigma));
  68. end
  69. % ----- propagation loss -----
  70. Loss(1,:) = 10 * log10(d2(1,:).^alpha); % The propagation loss from MS_i to BS_i [dB]
  71. Loss(2,:) = 10 * log10(d2(2,:).^alpha); % The propagation loss from MS_i to BS_0 [dB]
  72. Loss_max = 10 * log10(r.^alpha); % The propagation loss from the cell boundary to BS [dB]
  73.    
  74. % Free space loss   
  75. %    wl = 0.1;
  76. %   Loss(1,:) = 10 * log10((4*pi*d2(1,:)/wl).^2); % The propagation loss from MS_i to BS_i [dB]
  77. % Loss(2,:) = 10 * log10((4*pi*d2(2,:)/wl).^2); % The propagation loss from MS_i to BS_0 [dB]
  78. % Loss_max = 10 * log10((4*pi*r/wl).^2); % The propagation loss from the cell boundary to BS [dB]
  79. %--------Transmission power level of each MS [dB]------------
  80. Ptm_0= Loss_max*ones(1,19); % no power control
  81.  %  Ptm_0= Loss(1,:) + margin; % power control (with margin [dB])
  82.  
  83.  %--------- Calculation of antenna gain for the target direction
  84.  
  85. deg_B = deg(2,1)-deg(2,:); % the angle difference between the MS_0 and MS_i from central BS
  86. deg_M = deg(1,:)-deg(2,:);% the angle difference between the BS_0 and BS_i from MS_i
  87.    
  88.     degHBS = mod(round(deg_B),360);
  89.     degHMS = mod(round(deg_M),360);
  90.     degVBS = round(degH-degH(1)); % the angle difference in vertical direction between MSs and central BS
  91.     degVMS = degVBS; % the angle difference in vertical direction between MSs and central BS
  92.     
  93.     %-----Calculation of CIR at centered BS  
  94.     %Control
  95. CIdB_a= Ptm_0(1:19)+g_HBS(degHBS(1:19)+1) + g_VBS(degVBS(1:19)+1) + g_HMS(degHMS(1:19)+1) + g_VMS(degVMS(1:19)+1)- Loss(2,1:19)-g(1:19); % Received level at central BS (beam forming)
  96. CIw_a = 10 .^ ( CIdB_a ./ 10 ); % dB 仺 W
  97. isum_a = sum( CIw_a(2:19));
  98. CIR_a(num) =   CIw_a(1) / isum_a;
  99. %No Control
  100. CIdB_o= Ptm_0(1:19)- Loss(2,1:19)-g(1:19);  % Received level at centered BS (Omni)
  101. CIw_o= 10 .^ ( CIdB_o ./ 10 );  % dB 仺 W
  102. isum_o = sum( CIw_o(2:19));
  103. CIR_o(num) =  CIw_o(1) / isum_o;
  104.    
  105.    %-----Calculation of CIR under various w_HBS
  106.    %ii = 1;
  107.    %for w_HBS2=30:10:180,
  108.    % g_HBS2 = antgain(w_HBS2, backg_BS);    
  109.    % CIdB_a2= Ptm_0(1:19)+g_HBS2(degHBS(1:19)+1) + g_VBS(degVBS(1:19)+1) + g_HMS(degHMS(1:19)+1) + g_VMS(degVMS(1:19)+1)- Loss(2,1:19)-g(1:19); % Received level at central BS (beam)
  110.    % CIw_a2 = 10 .^ ( CIdB_a2 ./ 10 ); % dB 仺 W
  111.    % ciw_a2 = sum( CIw_a2(2:19));
  112.    % CIR_a2(num,ii) =   CIw_a2(1) / ciw_a2;
  113.    %   ii = ii+1;   
  114.    %end
  115. end
  116. %-----statistics
  117. CA = 10 * log10(sum(CIR_a)/N);
  118. CO = 10 * log10(sum(CIR_o)/N);
  119. %----result
  120. CA-CO % Improvement
  121. %-----Calculation of CIR under various w_HBS
  122. % CA2= 10 * log10(sum(CIR_a2)/N);
  123. % CA2-CO
  124. % plot(30:10:180,CA2-CO)
  125. %************ End of file ************