您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 雷达系统仿真matlab代码
%===========================================================================================%%该程序完成16个脉冲信号的【脉压、动目标显示/动目标检测(MTI/MTD)】%===========================================================================================%%程序中根据每个学生学号的末尾三位(依次为XYZ)来决定仿真参数,034%目标距离为[300080259000+(Y*10+Z)*2008025],4个目标%目标速度为[500(Y*10+X+Z)*6100]%===========================================================================================%closeall;%关闭所有图形clearall;%清除所有变量clc;%===================================================================================%%雷达参数%%===================================================================================%C=3.0e8;%光速(m/s)RF=3.140e9/2;%雷达射频1.57GHzLambda=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)=[1110.25];%目标功率,无量纲TargetDistance(1:TargetNumber)=[30008025158008025];%目标距离,单位m距离参数为[300080259000+(Y*10+Z)*2008025]DelayNumber(1:TargetNumber)=fix(Fs*2*TargetDistance(1:TargetNumber)/C);%把目标距离换算成采样点(距离门)fix函数向0靠拢取整TargetVelocity(1:TargetNumber)=[500204100];%目标径向速度单位m/s速度参数为[500(Y*10+X+Z)*6100]TargetFd(1:TargetNumber)=2*TargetVelocity(1:TargetNumber)/Lambda;%计算目标多卜勒频移2v/λ%====================================================================================%%产生线性调频信号%%====================================================================================%number=fix(Fs*TimeWidth);%回波的采样点数=脉压系数长度=暂态点数目+1ifrem(number,2)~=0%rem求余number=number+1;end%把number变为偶数fori=-fix(number/2):fix(number/2)-1Chirp(i+fix(number/2)+1)=exp(j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%exp(j*fi)*,产生复数矩阵Chirpendcoeff=conj(fliplr(Chirp));%把Chirp矩阵翻转并把复数共轭,产生脉压系数figure(1);%脉压系数的实部plot(real(Chirp));axis([090-1.51.5]);title('脉压系数实部');%-------------------------产生目标回波串-----------------------------------------------------------------------------------------%%-------------------------产生前3个目标的回波串-------%SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0fork=1:TargetNumber-1%依次产生各个目标SignalTemp=zeros(1,SampleNumber);%一个PRTSignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=sqrt(SigPower(k))*Chirp;%一个脉冲的1个目标(未加多普勒速度)(DelayNumber(k)+1):(DelayNumber(k)+number)Signal=zeros(1,TotalNumber);fori=1:PulseNumber%16个回波脉冲Signal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp;%每个目标把16个SignalTemp排在一起endFreqMove=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))*exp(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度)Signal=zeros(1,TotalNumber);fori=1:PulseNumberSignal((i-1)*SampleNumber+1:i*SampleNumber)=SignalTemp;endFreqMove=exp(j*2*pi*TargetFd(4)*(0:TotalNumber-1)/Fs);%目标的多普勒速度*时间=目标的多普勒相移Signal=Signal.*FreqMove;SignalAll=SignalAll+Signal;figure(2);subplot(2,1,1);plot(real(SignalAll),'r-');title('目标信号的实部');gridon;zoomon;subplot(2,1,2);plot(imag(SignalAll));title('目标信号的虚部');gridon;zoomon;%====================================================================================%%产生系统噪声信号%%====================================================================================%SystemNoise=normrnd(0,10^(NoisePower/10),1,TotalNumber)+j*normrnd(0,10^(NoisePower/10),1,TotalNumber);%均值为0,标准差为10^(NoisePower/10)的噪声%====================================================================================%%总的回波信号%%====================================================================================%Echo=SignalAll+SystemNoise;%+SeaClutter+TerraClutter,加噪声之后的回波fori=1:PulseNumber%在接收机闭锁期,接收的回波为0Echo((i-1)*SampleNumber+1:(i-1)*SampleNumber+number)=0;%发射时接收为0endfigure(3);%加噪声之后的总回波信号subplot(2,1,1);plot(real(Echo),'r-');title('总回波信号的实部,闭锁期为0');subplot(2,1,2);plot(imag(Echo));title('总回波信号的虚部,闭锁期为0');%================================时域脉压=================================%pc_time0=conv(Echo,coeff);%pc_time0为Echo和coeff的卷积pc_time1=pc_time0(number:TotalNumber+number-1);%去掉暂态点number-1个figure(4);%时域脉压结果的幅度subplot(2,1,1);plot(abs(pc_time0),'r-');title('时域脉压结果的幅度,有暂态点');%pc_time0的模的曲线subplot(2,1,2);plot(abs(pc_time1));title('时域脉压结果的幅度,无暂态点');%pc_time1的模的曲线%================================频域脉压=================================%Echo_fft=fft(Echo,8192);%理应进行TotalNumber+number-1点FFT,但为了提高运算速度,进行了8192点的FFTcoeff_fft=fft(coeff,8192);pc_fft=Echo_fft.*coeff_fft;pc_freq0=ifft(pc_fft);figure(5);subplot(2,1,1);plot(abs(pc_freq0(1:TotalNumber+number-1)));title('频域脉压结果的幅度,有前暂态点');subplot(2,
本文标题:雷达系统仿真matlab代码
链接地址:https://www.777doc.com/doc-1491241 .html