脉冲多普勒雷达设计附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

要求雷达能在迎头飞行400Km距离上能够探测到F22(F22飞机迎头雷达散射截面积约0.1平米),并区分间隔10m以上的两架飞机。(假设探测条件为目标信号信噪比大于13dB,系统损耗3dB,接收机噪声系数3dB)。

⛄ 部分代码

%% 参数

clc;clear all;close all;

Pt = 300e3;    %发射功率的峰值功率500KW

c = 3e8;

fc = 1.5e9;      % 波段为L波段

lamda = c/fc;   %波长

Bn = 20e6;    % 噪声,信号带宽 15MHz

Tp = 10e-6;   % 脉冲宽度s

kr = Bn/Tp;  % 调频率

R = 400e3;   % 目标距离

PRF = 5e3;  % Hz

PRT = 1/PRF;

fs = 1.2*Bn; % 采样频率

pulse_num = floor(fs * Tp);

ts = 1/fs;   % 采样时间间隔

Fn = 3;       % 噪声系数

KT = 1.38e-23*(290);  % 噪声

sigma = 0.1;   % 雷达截面积

eff = 0.7;     % 天线效率

loss = 3;    % 信号损耗  dB

SNRmin = 13;  % 最小信噪比 dB

Ae = 64;       %接收面积

G = 4*pi*Ae/power(lamda,2);      %天线增益

%% 加入系统损耗,进行相干积累时的最远距离仿真

N = 1000;    

Rmax = 400e3;

pt = (Rmax)^4*((4*pi)^3*KT*Bn*power(10,Fn/10)*power(10,loss/10)*power(10,SNRmin/10))/(eff*G^2*lamda^2*sigma);

SNRmin = SNRmin-10*log10(N);

ptn = (Rmax)^4*((4*pi)^3*KT*Bn*power(10,Fn/10)*power(10,loss/10)*power(10,SNRmin/10))/(eff*G^2*lamda^2*sigma);

R_max = (Pt*eff*G^2*lamda^2*sigma/((4*pi)^3*KT*Bn*power(10,Fn/10)*power(10,loss/10)*power(10,SNRmin/10))).^(1/4);  %加入系统损耗后的最远距离

v=100/3.6;

fd = 2*v/lamda;

%% 信号产生、加噪、脉冲压缩

SNR = 13;

delay = 2*R/c;

t_axis = (delay-pulse_num*ts) : ts : (delay+2*pulse_num*ts); % 时间轴

t_start = t_axis(1);

Nr = length(t_axis); 

r_axis = t_axis*c/2;

figure

s = rectpuls(t_axis-Tp/2-delay,Tp).*exp(1j*2*pi*fc*(-delay)).*exp(1j*pi*kr*(t_axis-Tp/2-delay).^2);

plot(real(s));

receive = awgn(s,SNR);

figure

plot(t_axis,real(s));

s_ref =  rectpuls(t_axis-Tp/2-t_start,Tp).*exp(1j*pi*kr*(t_axis-Tp/2-t_start).^2); %

s_out = ifft(fft(receive).*conj(fft(s_ref)));

figure

plot(t_axis,abs(s_out));

%% 一维CFAR检测

s_power = abs(s_out).^2;

s_power_db = 10*log10(s_power); % 信号功率

num_ref = 18; % 参考单元

num_protect = 2; % 保护单元

Pfa = 1e-6;   %恒虚警率

alpha = num_ref*(Pfa^(-1/num_ref)-1);   %系数

window = [ones(1,num_ref/2),zeros(1,num_protect+1),ones(1,num_ref/2)]; % 滑窗

threshold = conv(s_power,window,'same')/num_ref*alpha; % 利用卷积计算门限值

threshold_db = 10*log10(threshold);  

figure

plot(r_axis,threshold_db);

hold on;

plot(r_axis,s_power_db,'r');

legend('检测门限','信号功率');

%% 

⛄ 运行结果

⛄ 参考文献

[1] 刘丙亚. 脉冲多普勒雷达解模糊算法设计与实现[D]. 西安电子科技大学.

[2] 崔素芬. 脉冲多普勒雷达信号处理软件设计与实现[D]. 西安电子科技大学, 2015.

[3] 李斌, 王磊, 张少华. 脉冲多普勒雷达Matlab建模与仿真[J]. 光电技术应用, 2020, 35(4):9.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是脉冲多普勒雷达距离目标参数的MATLAB代码: ```matlab % 脉冲多普勒雷达距离目标参数 % 定义常量 c = 3e8; % 光速,单位:m/s fc = 10e9; % 雷达频率,单位:Hz lambda = c / fc; % 波长,单位:m pri = 10e-6; % 脉冲重复间隔,单位:s prf = 1 / pri; % 脉冲重复频率,单位:Hz bw = 1e6; % 带宽,单位:Hz % 生成模拟信号 f0 = -bw / 2; % 起始频率 f1 = bw / 2; % 终止频率 t = 0 : 1 / (bw * 10) : pri; % 时间序列,单位:s y = chirp(t, f0, t(end), f1); % 频率扫描信号 % 目标距离参数估计 r = c * t * prf / (2 * bw); % 距离序列,单位:m max_y = max(abs(y)); % 最大幅值 snr = 10; % 信噪比 noise = randn(size(y)) * max_y / snr; % 加入噪声 y_noise = y + noise; % 加噪声后的信号 [~, locs] = findpeaks(abs(y_noise), 'MinPeakHeight', max_y / 2); % 寻找峰值 if isempty(locs) disp('没有发现目标'); else [~, idx] = max(abs(y_noise(locs))); % 找到最大峰值 range = r(locs(idx)); % 目标距离 disp(['目标距离为', num2str(range), '米']); end ``` 代码中使用了MATLAB的信号处理工具箱中的`chirp`函数和`findpeaks`函数,前者用于生成频率扫描信号,后者用于寻找信号中的峰值。首先定义了常量`c`、`fc`、`lambda`、`pri`、`prf`和`bw`,分别表示光速、雷达频率、波长、脉冲重复间隔、脉冲重复频率和带宽。然后生成了一个频率扫描信号`y`,并使用了加噪声的版本`y_noise`。接着计算了距离序列`r`,并在`y_noise`中寻找峰值。如果找不到峰值,则输出“没有发现目标”;否则找到最大峰值,并计算目标距离`range`,并输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值