⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar_atten.m

📁 此程序给出了不同情况的雷达距离测量仿真平台
💻 M
字号:
% Ar_atten.m
% Calculate Atmospheric and Rain Attenuation
%
% Last edited: 15 Mar 1996
%

% Attenuation parameters.  First two values in each row are
% the frequency range the attenuation parameters are valid.
%            fl    fh    sl      sh     wl     wh
%             1     2    3       4      5      6
Att_param = [0.4   1.3  0.01   0.012  1.0e-6  0.0003;
	          1.3   3    0.012  0.015  0.0003  0.0013;
             3     5.5  0.015  0.017  0.0013  8.000001e-3;
             5.5   10   0.017  0.024  8.000001e-3 0.037;
             10    15   0.024  0.055  0.037   0.083;
	          15    22   0.055  0.3    0.083   0.23;
             22    35   0.3    0.14   0.23    0.57;
             35    60   0.14   35     0.57    1.3;
	          60    95   35     0.8    1.3     2;
	          95    140   0.8   1      2       2.3;
	          140   240   1     14     2.3     2.2];

% Shift frequency to GHz scale and test to see which parameters to use
% for subsequent calculations.  Program will still crash if freq_radar
% outside of 400MHz - 240GHz range.
%
freq_ghz = freq_radar /1000;
i = find(freq_ghz > Att_param(:,1) & freq_ghz <= Att_param(:,2));

% Use working variables to calculate the resulting attenuation
%
ax = log (Att_param(i,4)/Att_param(i,3)) / log (Att_param(i,2)/Att_param(i,1));
sx = Att_param(i,3)*((freq_ghz/Att_param(i,1))^ax);
bx = log(Att_param(i,6)/Att_param(i,5)) / log (Att_param(i,2)/Att_param(i,1));
wx = rain_fall * Att_param(i,5) * ((freq_ghz/Att_param(i,1))^bx);

el_tgt = el_tgt_deg * pi/180;
re = 3/sin(el_tgt + 0.00025/(el_tgt+0.028));

% Convert earlier calculated clear ranges to kilometers
%
rng_km = ranges_clear.* 1.854;
rx = rng_km;

rdel = 0;
done = 0;
while done==0
	rx = rx - rdel;
	lea = sx .* re *(1-exp(-rx ./ re));
	ler = wx .* rx;
	fr = 0.4343 .* log(rx ./ rng_km) + (lea + ler)/40;
	dfr = (1./rx) + wx/40 + sx.*(exp(-rx./re))/40;
	rdel = fr./dfr;
        a = find(rdel <= 0.01);
	b = length(a);
	if b > 0
		for i = 1:b,
			rdel(a(i)) = 0;
		end
	end
	if rdel <= 0.01
		done = 1;
	end
end

%swrlg_case
ar_atten_ans = [lea; ler; (rx./1.854)];

% Print Detection with Atmospheric and Weather Attenuation 

fprintf('三、无干扰情况下的检测距离\n');
fprintf('Swerling Case         0         1        ');
fprintf(' 2         3         4       1FA       3FA\n');

fprintf('大气衰减 (dB)       ');fprintf('%-10.2f',lea);fprintf('\n');
fprintf('降雨衰减 (dB)       ');fprintf('%-10.2f',ler);fprintf('\n');
if rx<50;
   fprintf('检测距离 (n m)     ');fprintf('%-10.2f',rx/1.854);
   else,
      fprintf('检测距离 (n m)     ');fprintf('%-10.2f',rx/1.854);
end;
fprintf('\n\n');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -