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

传真(Fax)编程

开发平台:

Matlab

  1. function [output_par] = range_calc (pt, tau, fr, time_ti, gt, gr, freq, ...
  2.    sigma, te, nf, loss, snro, pcw, range, radar_type, out_option)
  3. c = 3.0e+8;
  4. lambda = c / freq;
  5. if (radar_type == 0)
  6.    pav = pcw;
  7. else
  8.    % Compute the duty cycle
  9.    dt = tau * 0.001 * fr;
  10.    pav = pt * dt;
  11. end
  12. pav_db = 10.0 * log10(pav);
  13.    lambda_sqdb = 10.0 * log10(lambda^2);
  14.    sigmadb = 10.0 * log10(sigma);
  15.    for_pi_cub = 10.0 * log10((4.0 * pi)^3);
  16.    k_db = 10.0 * log10(1.38e-23);
  17.    te_db = 10.0 * log10(te);
  18.    ti_db = 10.0 * log10(time_ti);
  19.    range_db = 10.0 * log10(range * 1000.0);
  20. if (out_option == 0)
  21.    %compute SNR
  22.       % Implement Eq. (3.63)
  23.    snr_out = pav_db + gt + gr + lambda_sqdb + sigmadb + ti_db - ...
  24.       for_pi_cub - k_db - te_db - nf - loss - 4.0 * range_db
  25.    %%%%%%%%%% Generate Plots in Figure 1.21 %%%%%%%%%%%%
  26.    index = 0;
  27.    for range_var = 10:10:1000
  28.       index = index + 1;
  29.       rangevar_db = 10.0 * log10(range_var * 1000.0);
  30.       snr(index) = pav_db + gt + gr + lambda_sqdb + sigmadb + ti_db - ...
  31.          for_pi_cub - k_db - te_db - nf - loss - 4.0 * rangevar_db;
  32.    end
  33.    var = 10:10:1000;
  34.    plot(var,snr,'k')
  35.    xlabel ('Range - Km');
  36.    ylabel ('SNR - dB');
  37.    grid
  38. else
  39.   range4 = pav_db + gt + gr + lambda_sqdb + sigmadb + ti_db - ...
  40.      for_pi_cub - k_db - te_db - nf - loss - snro;
  41.   range = 10.0^(range4/40.) / 1000.0
  42.   %%%%%%%%%% Generate Plots in Figure 1.21 %%%%%%%%%%%%
  43.   index = 0;
  44.   for snr_var = -20:1:60
  45.      index = index + 1;
  46.      rangedb = pav_db + gt + gr + lambda_sqdb + sigmadb + ti_db - ...
  47.         for_pi_cub - k_db - te_db - nf - loss - snr_var;
  48.      range(index) = 10.0^(rangedb/40.) / 1000.0;
  49.   end
  50.   var = -20:1:60;
  51.   plot(var,range,'k')
  52.   xlabel ('Minimum SNR required for detection - dB');
  53.   ylabel ('Maximum detection range - Km');
  54.   grid
  55. end
  56. return
  57.