根据《雷达系统分析与设计》P25页内容,用matlab计算雷达作用距离
雷达方程P25公式(2.22)所示:
方法1:将公式中所有的值都转换dB单位,书上的方法
雷达作用距离的公式就算将R^4和SNR换位,给R开4次方
计算方式是分子的和减去分母的和
step1:定义range的函数
% 文件名为 R_of_radar_eq.m
% P24-公式2.22
% 函数参数是峰值功率pt,天线增益g,雷达中心频率freq,目标截面积sigma,带宽b,噪声系数nf,雷达损耗loss,目标距离,信噪比snr;
function[range] = R_of_radar_eq(pt, g, freq, sigma, b, nf, loss, snr)
pt_db = 10 * log10(pt);
% 通过公式计算得到lambda,作用距离为 r = 85.8559 km
c = 3.0e+8;
lambda = c / freq;
% lambda直接取值0.054,作用距离r = 86.1987 km,书上结果P25页例子是这样算的
lambda = 0.054;
lambda_sq_db = 10 * log10(lambda ^ 2);
sigma_db = 10 * log10(sigma);%目标截面积sigma
four_pi_cub_db = 10 * log10((4.0 * pi) ^ 3);
k_db = 10 * log10(1.38e-23); %玻尔兹曼系数k
t0_db = 10 * log10(290); %有效温度t0
b_db = 10 * log10(b);
num = pt_db + 2 * g + lambda_sq_db + sigma_db;%公式中的*是+,幂是×
den = four_pi_cub_db + k_db + t0_db + b_db + nf + loss + snr;
range4_db = num - den;%距离四次方,单位是dB
range = 10.0^(range4_db/40.) / 1000.0;
return
step2:调用函数,传入值,P25页例题
% 文件名为R_of_test_R.m
pt = 1.5e6;%单位是1.5M W
g = 45;%单位是dB
freq = 5.6e9;%频率是 5.6G Hz
sigma = 0.1;%RCS是0.1m^2
b = 5e6; % 带宽是5M Hz,5*10^6
nf = 3.0; %噪声系数
loss = 0;%没有换算,单位直接是dB
snr = 20;%信噪比为20dB
r = R_of_radar_eq(pt, g, freq, sigma, b, nf, loss, snr);
disp([ ' r = ', num2str(r), ' km ' ]);
运行结果 用disp输出呈现了参数 上面代码输出只有r的结果
matlab里输出后看参数表结果一样的
方法2:直接按公式计算
我直接写的,写在一个文件里直接就可以算,简洁明了
可以仿照方法1那样写成两个,后续画图会看着方便一些
clc
close all
clear all
pt = 1.5e6;%单位是1.5M W
g = 45;%单位是dB
% c = 3.0e+8;
% freq = 5.6e9;%频率是 5.6G Hz
% lambda = c / freq;
lambda = 0.054;
sigma = 0.1;%RCS是0.1m^2
b = 5e6; % 带宽是5M Hz,5*10^6
nf = 3.0; %噪声系数
snr = 20;
k = 1.38e-23;
t0 = 290;
loss = 0;
% dB单位进行换算,4个,天线增益g, 接收机噪声系数nf, 信噪比snr, 损耗loss;
G = 10 ^ (g / 10);
NF = 10 ^ (nf / 10);
SNR = 10 ^ (snr / 10);
LOSS = 10 ^ (loss / 10);
num = pt * lambda*lambda * G*G * sigma;
den = ((4.0 * pi) ^ 3 ) * k * t0 * b * NF * LOSS * SNR ;
range = (num / den) ^ (1/4) / 1000;
disp(['range = ', num2str(range), ' km ; ']);
运行结果