multipath.m
上传用户:szahd2008
上传日期:2020-09-25
资源大小:1275k
文件大小:3k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  1. % This program calculates and plots the propagation factor versus
  2. % target range with a fixed target hieght.
  3. % The free space radar-to-target range is assumed to be known.
  4. clear all 
  5. close all
  6. eps = 0.01;
  7. %%%%%%%%%%%%% input %%%%%%%%%%%%%%%%
  8. ro = 6375e3; % earth radius
  9. re = ro * 4 /3; % 4/3 earth radius
  10. freq = 3000e6; % frequnecy
  11. lambda = 3.0e8 / freq; % wavelength
  12. hr = 30.48; % radar height in meters
  13. ht = 2 .* hr; % target height in meters
  14. Rd1 = linspace(2e3, 55e3, 500); % slant range 3 to 55 Km 500 points
  15. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  16. %determine whether the traget is beyond the radar's line of sight
  17. range_to_horizon = sqrt(2*re) * (sqrt(ht) + sqrt(hr)); % range to horizon
  18. index = find(Rd1 > range_to_horizon);
  19. if isempty(index);
  20.     Rd = Rd1;
  21. else
  22.     Rd = Rd1(1:index(1)-1);
  23.     fprintf('****** WARNING ****** n')
  24.     fprintf('Maximum range is beyond radar line of sight. n')
  25.     fprintf("Traget is in diffraction region n')
  26.     fprintf('****** WARNING ****** n')
  27. end
  28. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  29. val1 = Rd.^2 - (ht -hr).^2;
  30. val2 = 4 .* (re + hr) .* (re + ht);
  31. r = 2 .* re .* asin(sqrt(val1 ./ val2)); % Eq. (8.77)
  32. phi = r ./ re; % Eq. (8.71)
  33. p = sqrt(re .* (ht + hr) + (r.^2 ./4)) .* 2 ./ sqrt(3); %Eq.(8.68)
  34. exci = asin((2 .* re .* r .* (ht - hr) ./ p.^3)); % Eq. (8.69)
  35. r1 = (r ./ 2) - p .* sin(exci ./3);
  36. phi1 = r1 ./ re; % Eq. (8.70)
  37. r2 = r - r1;
  38. phi2 = r2 ./ re; % Eq. (8.70)
  39. R1 = sqrt( re.^2 + (re + hr).^2 - 2 .* re .* (re + hr) .* cos(phi1)); % Eq. (8.72)
  40. R2 = sqrt( re.^2 + (re + ht).^2 - 2 .* re .* (re + ht) .* cos(phi2)); % Eq. (8.73)
  41. psi = asin((2 .* re .* hr + hr^2 - R1.^2) ./ (2 .* re .* R1));
  42. deltaR = R1 + R2 - Rd; % Eq. (8.65)
  43. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  44. %%%%%%%%%%%%% input surface roughness %%%%%%%%%%%%%%%%
  45. hrms = 1; % 
  46. psi = psi .* 180 ./ pi;
  47. [Sr] = surf_rough(hrms, freq, psi);
  48. %%%%%%%%%%%%% input divergence %%%%%%%%%%%%%%%%
  49. [D] = divergence(r1, r2, ht, hr, psi);
  50. %%%%%%%%%%%%% input smooth earth ref. coefficient %%%%%%%%%%%
  51. epsp = 50;
  52. epspp = 15;
  53. [rh,rv] = ref_coef (psi, epsp, epspp);
  54. D = 1;
  55.  Sr =1;
  56. gamav = abs(rv);
  57. phv = angle(rv);
  58. gamah = abs(rh);
  59. phh = angle (rh);
  60.  gamav =1;
  61.  phv = pi;
  62. Gamma_mod = gamav .* D .* Sr; % Eq. (8.39)
  63. Gamma_phase = phv; %
  64. rho = Gamma_mod;
  65. delta_phi = 2 .* pi .* deltaR  ./ lambda; % Eq. (8.56)
  66. alpha = delta_phi + phv;
  67. F = sqrt( 1 + rho.^2 + 2 .* rho .* cos( alpha)); % Eq. (8.48)
  68. Ro = 185.2e3; % refrence range in Km
  69. F_free = 40 .* log10(Ro ./ Rd);
  70. F_dbr = 40 .* log10( F .* Ro ./ Rd);
  71. F_db = 40 .* log10( eps + F );
  72. figure(1)
  73. plot(Rd./1000, F_db,'k','linewidth',1)
  74. grid
  75. xlabel('slant range in Km')
  76. ylabel('propagation factor in dB')
  77. axis tight
  78. axis([2 55 -60 20])
  79. figure(2)
  80. plot(Rd./1000, F_dbr,'k',Rd./1000, F_free,'k-.','linewidth',1)
  81. grid
  82. xlabel('slant range in Km')
  83. ylabel('propagation factor in dB')
  84. axis tight
  85. axis([2 55 -40 80])
  86. legend('multipath','free space')