雷达系统仿真matlab代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%

======================================================================= ====================%

% 该程序完成16个脉冲信号的【脉压、动目标显示/动目标检测(MTI/MTD)】

%

======================================================================= ====================%

% 程序中根据每个学生学号的末尾三位(依次为XYZ)来决定仿真参数,034

% 目标距离为[3000 8025 9000+(Y*10+Z)*200 8025],4个目标

% 目标速度为[50 0 (Y*10+X+Z)*6 100]

%

======================================================================= ====================%

close all; %关闭所有图形

clear all; %清除所有变量

clc;

%

======================================================================= ============%

% 雷达参数 % %

======================================================================= ============%

C=3.0e8; %光速(m/s)

RF=3.140e9/2; %雷达射频 1.57GHz

Lambda=C/RF;%雷达工作波长

PulseNumber=16; %回波脉冲数

BandWidth=2.0e6; %发射信号带宽带宽B=1/τ,τ是脉冲宽度

TimeWidth=42.0e-6; %发射信号时宽

PRT=240e-6; % 雷达发射脉冲重复周期(s),240us对应1/2*240*300=36000米最大无模糊距离

PRF=1/PRT;

Fs=2.0e6; %采样频率

NoisePower=-12;%(dB);%噪声功率(目标为0dB)

% ---------------------------------------------------------------% SampleNumber=fix(Fs*PRT);%计算一个脉冲周期的采样点数480;

TotalNumber=SampleNumber*PulseNumber;%总的采样点数480*16=;

BlindNumber=fix(Fs*TimeWidth);%计算一个脉冲周期的盲区-遮挡样点数;

%====================================================================== =============%

% 目标参数 % %====================================================================== =============%

TargetNumber=4;%目标个数

SigPower(1:TargetNumber)=[1 1 1 0.25];%目标功率,无量纲

TargetDistance(1:TargetNumber)=[3000 8025 15800 8025];%目标距离,单位m 距离参数为[3000 8025 9000+(Y*10+Z)*200 8025]

DelayNumber(1:TargetNumber)=fix(Fs*2*TargetDistance(1:TargetNumber)/C); % 把目标距离换算成采样点(距离门) fix函数向0靠拢取整

TargetVelocity(1:TargetNumber)=[50 0 204 100];%目标径向速度单位m/s 速度参数为[50 0 (Y*10+X+Z)*6 100]

TargetFd(1:TargetNumber)=2*TargetVelocity(1:TargetNumber)/Lambda; %计算目标多卜勒频移2v/λ

%====================================================================== ==============%

% 产生线性调频信

号 %

%====================================================================== ==============%

number=fix(Fs*TimeWidth);%回波的采样点数=脉压系数长度=暂态点数目+1

if rem(number,2)~=0 %rem求余

number=number+1;

end%把number变为偶数

for i=-fix(number/2):fix(number/2)-1

Chirp(i+fix(number/2)+1)=exp(j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%ex p(j*fi)*,产生复数矩阵Chirp

end

coeff=conj(fliplr(Chirp));%把Chirp矩阵翻转并把复数共轭,产生脉压系数

figure(1);%脉压系数的实部

plot(real(Chirp));axis([0 90 -1.5 1.5]);title('脉压系数实部');

%-------------------------产生目标回波串-----------------------------------------------------------------------------------------%

%-------------------------产生前3个目标的回波串-------%

SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0

for k=1:TargetNumber-1 % 依次产生各个目标

SignalTemp=zeros(1,SampleNumber);% 一个PRT

SignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=sqrt(SigPower(k))*Ch irp;%一个脉冲的1个目标(未加多普勒速度)

(DelayNumber(k)+1):(DelayNumber(k)+number)

Signal=zeros(1,TotalNumber);

for i=1:PulseNumber % 16个回波脉冲

Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp; %每个目标把16个SignalTemp排在一起

end

FreqMove=exp(j*2*pi*TargetFd(k)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移

Signal=Signal.*FreqMove;%加上多普勒速度后的16个脉冲1个目标

SignalAll=SignalAll+Signal;%加上多普勒速度后的16个脉冲4个目标

end

% %-------------------------产生第4个目标的回波串-------%

fi=pi/3;

SignalTemp=zeros(1,SampleNumber);% 一个脉冲

SignalTemp(DelayNumber(4)+1:DelayNumber(4)+number)=sqrt(SigPower(4))*ex p(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度)

Signal=zeros(1,TotalNumber);

for i=1:PulseNumber

Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp;

end

FreqMove=exp(j*2*pi*TargetFd(4)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移

相关文档
最新文档