雷达系统仿真matlab代码
SAR合成孔径雷达图像点目标仿真报告(附matlab代码)

SAR 图像点目标仿真报告徐一凡1 SAR 原理简介合成孔径雷达(Synthetic Aperture Radar .简称SAR)是一种高分辨率成像雷达技术。
它利用脉冲压缩技术获得高的距离向分辨率.利用合成孔径原理获得高的方位向分辨率.从而获得大面积高分辨率雷达图像。
SAR 回波信号经距离向脉冲压缩后.雷达的距离分辨率由雷达发射信号带宽决定:2r rCB ρ=.式中r ρ表示雷达的距离分辨率.r B 表示雷达发射信号带宽.C 表示光速。
同样.SAR 回波信号经方位向合成孔径后.雷达的方位分辨率由雷达方位向的多谱勒带宽决定:aa av B ρ=.式中a ρ表示雷达的方位分辨率.a B 表示雷达方位向多谱勒带宽.a v 表示方位向SAR 平台速度。
在小斜视角的情况下.方位分辨率近似表示为2a Dρ=.其中D 为方位向合成孔径的长度。
2 SAR 的几何关系雷达位置和波束在地面覆盖区域的简单几何模型如图1所示。
此次仿真考虑的是正侧视的条带式仿真.也就是说倾斜角为零.SAR 波束中心和SAR 平台运动方向垂直的情况。
图1 雷达数据获取的几何关系建立坐标系XYZ 如图2所示.其中XOY 平面为地平面;SAR 平台距地平面高H.以速度V 沿X 轴正向匀速飞行;P 点为SAR 平台的位置矢量.设其坐标为(x,y,z); T 点为目标的位置矢量.设其坐标为(,,)T T T x y z ;由几何关系.目标与SAR 平台的斜距为:(R PT x ==(1)由图可知:0,,0T y z H z ===;令x vs =⋅.其中v 为平台速度.s 为慢时间变量(slow time ).假设T x vs =.其中s 表示SAR 平台的x 坐标为T x的时刻;再令r =r 表示目标与SAR 的垂直斜距.重写(1)式为:(;)PT R s r = =(;)R s r 就表示任意时刻s 时.目标与雷达的斜距。
一般情况下.0v s s r-<<.于是通过傅里叶技术展开.可将(2)式可近似写为:220(;)()2v R s r r s s r=≈+- (3)可见.斜距是s r 和的函数.不同的目标.r 也不一样.但当目标距SAR 较远时.在观测带内.可近似认为r 不变.即0r R =。
雷达信号matlab仿真

雷达系统分析大作作 者: 雪娣 学号:04104207271. 最大不模糊距离:,max1252u rC R km f == 距离分辨率:1502mcR m B ∆== 2. 天线有效面积:220.07164e G A m λπ==半功率波束宽度:3 6.4o dbθ==3. 模糊函数的一般表示式为()()()22*2;⎰∞∞-+=dt e t s t s f d f j d πττχ 对于线性调频信号 ()21Re j t p t s t ct e T πμ⎛⎫= ⎪ ⎪⎝⎭则有:()()221;Re Re p j t T j t d ppp t t f ct ct e e dt T T T πμπμτχτ∞+-∞⎛⎫⎛⎫+=⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎰ ()()()sin 1;11d p p d p d p p f T T f T f T T τπμττχττπμτ⎛⎫⎛⎫+- ⎪⎪ ⎪ ⎪⎛⎫⎝⎭⎝⎭=- ⎪ ⎪⎛⎫⎝⎭+-⎪ ⎪⎝⎭分别令0,0==d f τ可得()()220;,;0τχχd f()()sin 0;d p d d pf T f f T πχπ=()sin 1;011p p p p p T T T T T τπμττχττπμτ⎛⎫⎛⎫-⎪ ⎪ ⎪ ⎪⎛⎫⎝⎭⎝⎭=- ⎪ ⎪⎛⎫⎝⎭- ⎪ ⎪⎝⎭程序代码见附录1的T_3.m, 仿真结果如下:4. 程序代码见附录1的T_4.m, 仿真结果如下:通过比较得知,加窗后的主副瓣比变大,副瓣降低到40db 以下,但主瓣的宽度却增加了,约为未加窗时的1.5倍,主瓣也有一定的损失。
5.由雷达方程221340(4)tPG Te SNR KT LFR λσπ=计算可得1196.5540log SNR R =- db作图输出结果如下,程序代码见附录1的T_5.m在R=70km 时,计算得单个脉冲的SNR 1=2.7497 db,要达到要求的检测性能则需要12.5dB 的最小检测输入信噪比,而M 个相参脉冲积累可以将信噪比提高M 倍, 故 10)1(SNR D M ==9.4413 因此要达到要求就需要10个以上的相参脉冲进行积累。
雷达系统仿真matlab代码.docx

%====================================================== =====================================%% 该程序完成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.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)=[1 1 1 0.25];%目标功率,无量纲TargetDistance(1:TargetNumber)=[3000 8025 15800 8025];%目标距离,单位m 距离参数为[3000 80259000+(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:TargetNumb er)/Lambda; %计算目标多卜勒频移2v/λ%===================================================== ===============================%% 产生线性调频信号 %%===================================================== ===============================%number=fix(Fs*TimeWidth);%回波的采样点数=脉压系数长度=暂态点数目+1if rem(number,2)~=0 %rem求余number=number+1;end%把number变为偶数for i=-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([0 90 -1.5 1.5]);title('脉压系数实部');%-------------------------产生目标回波串-----------------------------------------------------------------------------------------%%-------------------------产生前3个目标的回波串-------% SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0for k=1:TargetNumber-1 % 依次产生各个目标SignalTemp=zeros(1,SampleNumber);% 一个PRTSignalTemp(DelayNumber(k)+1:DelayNumber(k)+number)=sqr t(SigPower(k))*Chirp;%一个脉冲的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排在一起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)=sqr t(SigPower(4))*exp(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度)Signal=zeros(1,TotalNumber);for i=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('目标信号的实部');grid on;zoom on;subplot(2,1,2);plot(imag(SignalAll));title('目标信号的虚部');grid on;zoom on;%===================================================== ===============================%% 产生系统噪声信号 %%===================================================== ===============================%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,加噪声之后的回波for i=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,1,2);plot(abs(pc_time0(1:TotalNumber+number-1)-pc_freq0(1:TotalNumber+number-1)),'r');title('时域和频域脉压的差别');pc_freq1=pc_freq0(number:TotalNumber+number-1);%去掉暂态点 number-1个,后填充点若干(8192-number+1-TotalNumber)% ================按照脉冲号、距离门号重排数据=================================%for i=1:PulseNumberpc(i,1:SampleNumber)=pc_freq1((i-1)*SampleNumber+1:i*SampleNumber);%每个PRT为一行,每行480个采样点的数据endfigure(6);plot(abs(pc(1,:)));title('频域脉压结果的幅度,没有暂态点'); % ================MTI(动目标显示),对消静止目标和低速目标---可抑制杂波=================================%for i=1:PulseNumber-1 %滑动对消,少了一个脉冲mti(i,:)=pc(i+1,:)-pc(i,:);endfigure(7);mesh(abs(mti));title('MTI result');% ================MTD(动目标检测),区分不同速度的目标,有测速作用=================================%mtd=zeros(PulseNumber,SampleNumber);for i=1:SampleNumberbuff(1:PulseNumber)=pc(1:PulseNumber,i);buff_fft=fft(buff);mtd(1:PulseNumber,i)=buff_fft(1:PulseNumber);endfigure(8);mesh(abs(mtd));title('MTD result');%=======================================虚实矩阵转换========================================%coeff_fft_c=zeros(1,2*8192);for i=1:8192coeff_fft_c(2*i-1)=real(coeff_fft(i));coeff_fft_c(2*i)=imag(coeff_fft(i));endecho_c=zeros(1,2*TotalNumber);for i=1:TotalNumberecho_c(2*i-1)=real(Echo(i));echo_c(2*i)=imag(Echo(i));end%===========================以下是为DSP程序提供回波数据、脉压系数===============================%% fo=fopen('F:\mystudy\Visual_DSP_test\test_1\coeff_fft_c.dat','wt');%频域脉压系数% for i=1:2*8192% fprintf(fo,'%f,\r\n',coeff_fft_c(i));% end% fclose(fo);%% fo=fopen('F:\mystudy\Visual_DSP_test\test_1\echo_c.dat','wt');%16次回波的% for i=1:2*TotalNumber% fprintf(fo,'%f,\r\n',echo_c(i));% end% fclose(fo);。
雷达接收机的MATLAB仿真

利用最长延时估计频率
利用所有相关器的相位输出 时对频率进行最小二乘估计
西安电子科技大学
仿真结果:
基于多路鉴相器的并行运用
西安电子科技大学
信道化接收机MATLAB举例
%>>>>>>>>>>适用于三级结构>>>>>>>>>>>>>> clc;clear; f1=2000;f2=4000;%测频范围 f=input('输入待测频率 (MHz) '); if f>=f1&&f<=f2 m1=4;m2=4;m3=4;%各分路器均设为5,分路器结构 u=(f2-f1)/(m1*m2*m3);%频率分辨力 ur=[0,0,0];%为各分路器中放带宽提供缓存
西安电子科技大学
num=zeros(1,3);%为每层的信道提供缓存 for k=1:3 j=1; while j<=4 if f-fl(k,j)>=fi(k)-ur(k)/2&&f-fl(k,j)<=fi(k)+ur(k)/2 f=f-fl(k,j); num(k)=j-1; break; else j=j+1; end 频率估计公式 end end
因为,你不在身边 。
快乐时,感到微微的惶恐。 大笑时,感到莫名的忧伤。
初遇你的那天,整个世界都被点亮。 回忆里你的笑容,如那午夜温柔的月光。 于是我时常微笑,因为在你面前没有权利悲伤。
岁月漂白了时光, 这一切也只不过是我单纯的盼望。 多想在阴雨时为你撑起伞, 多想在危难时化为一堵墙。
但这零碎的幸福,却是那阳光的方向。 我可以做你的骑士吗? 为你,击碎人生所有的无常。
matlab毫米波雷达例程

matlab毫米波雷达例程
在MATLAB中,你可以使用Phased Array System Toolbox来模
拟毫米波雷达系统。
这个工具箱提供了一些示例代码,可以帮助你
理解和模拟毫米波雷达系统的工作原理。
一个简单的例程是模拟一个基本的毫米波雷达系统。
你可以使
用MATLAB的Phased Array System Toolbox中的函数来创建一个毫
米波雷达天线阵列,然后定义一个波形发射器和接收器。
接着,你
可以模拟目标的回波信号,并进行信号处理以检测目标。
另一个例程是模拟毫米波雷达系统的距离测量。
你可以使用MATLAB的Phased Array System Toolbox中的函数来生成毫米波信号,然后模拟信号在目标上的反射和接收。
接着,你可以通过信号
处理算法来估计目标的距离。
除了这些基本的例程之外,MATLAB还提供了许多其他与毫米波
雷达相关的示例代码,涵盖了从信号生成到目标检测的各个方面。
你可以在MATLAB的官方网站或者帮助文档中找到更多的例程和资源,以帮助你理解和模拟毫米波雷达系统。
总之,MATLAB提供了丰富的工具和资源,可以帮助你模拟和理解毫米波雷达系统。
通过使用Phased Array System Toolbox和相关的示例代码,你可以从多个角度全面地了解毫米波雷达系统的工作原理和实现方法。
希望这些信息对你有所帮助!。
巴克码—线性调频脉冲多普勒雷达matlab代码

巴克码—线性调频脉冲多普勒雷达matlab代码%% 雷达系统仿真 %%% 发射信号为13位巴克码和线性调频混合调制的信号,线性调频的中心频率为30MHz, % 调频带宽为4MHz,每一位码宽为10微秒,发射信号的帧周期为1毫秒 % 该雷达具有数字化正交解调、数字脉冲处理、固定目标对消、动目标检测(MTD)、 % 和恒虚警(CFAR)处理等功能close all;clear all;clc;%%%%%%%%%%%%%%% 产生雷达发射信号 %%%%%%%%%%%%% code=[1,1,1,1,1,-1,-1,1,1,-1,1,-1,1]; % 13位巴克码tao=10e-6; % 脉冲宽度10usfc=28e6; % 调频信号起始频率f0=30e6; % 调频信号中心频率fs=100e6; % 采样频率ts=1/fs; % 采样间隔B=4e6; % 调频信号调频带宽t_tao=0:1/fs:tao-1/fs; % 调制信号,对于线性调频来说,调制信号就是时间序列N=length(t_tao);k=B/fs*2*pi/max(t_tao); % 调制灵敏度,也就是线性调频的步进系数n=length(code);pha=0;s=zeros(1,n*N);for i=1:nif code(i)==1pha=pi;else pha = 0;ends(1,(i-1)*N+1:i*N)=cos(2*pi*fc*t_tao+k*cumsum(t_tao)+pha);endt=0:1/fs:n*tao-1/fs;figure,subplot(2,1,1),plot(t,s); xlabel('t(单位:S)'),title('混合调制信号(13为巴克码+线性调频)'); s_fft_result=abs(fft(s(1:N)));subplot(2,1,2),plot((0:fs/N:fs/2-fs/N),abs(s_fft_result(1:N/2)));xlabel('频率(单位:Hz)'),title('码内信号频谱');%%%%%%%%%%%%%%%%%%% 产生脉冲压缩系数 %%%%%%%%%%%%%%%% %--------------------- 正交解调 --------------------% N=tao/ts;n=0:N-1;s1=s(1:N);local_oscillator_i=cos(2*pi*f0/fs*n); % I路本振信号local_oscillator_q=sin(2*pi*f0/fs*n); % Q路本振信号fbb_i = local_oscillator_i.*s1; % I路解调fbb_q = local_oscillator_q.*s1; % Q路解调window=chebwin(51,40); % 50阶cheby窗的FIR低通滤波器[b,a]=fir1(50,2*B/fs,window);fbb_i=[fbb_i,zeros(1,25)]; % 因为该FIR滤波器有25个采样周期的延迟,为了保证% 所有有效信息全部通过滤波器,故在信号后补25个0fbb_q=[fbb_q,zeros(1,25)];fbb_i=filter(b,a,fbb_i);fbb_q=filter(b,a,fbb_q);fbb_i=fbb_i(26:end); % 截取有效信息fbb_q=fbb_q(26:end); % 截取有效信息fbb=fbb_i+j*fbb_q;%-------- 产生理想线性调频脉冲压缩匹配系数 ---------% D = B*tao;match_filter_1=ts*fliplr(conj(fbb))*sqrt(D)*2/tao;NFFT = 131126;%2^nextpow2(length(s));match_filter_1_fft=fft(match_filter_1,NFFT); % 第一次脉冲压缩处理匹配系数 figure;subplot(2,1,1),plot(real(match_filter_1_fft)),title('脉冲压缩系数(实部)'); subplot(2,1,2),plot(imag(match_filter_1_fft)),title('脉冲压缩系数(虚部)');N=length(s);n=0:N-1;local_oscillator_i=cos(2*pi*f0/fs*n); % I路本振信号local_oscillator_q=sin(2*pi*f0/fs*n); % Q路本振信号fbb_i = local_oscillator_i.*s; % I路解调fbwindow=chebwin(51,40); % 50阶cheby窗的FIR低通滤波器[b,a]=fir1(50,0.5,window);fbb_i=[fbb_i,zeros(1,25)]; % 因为该FIR滤波器有25个采样周期的延迟,为了保证% 所有有效信息全部通过滤波器,故在信号后补25个0fbb_q=[fbb_q,zeros(1,25)];fbb_i=filter(b,a,fbb_i);fbb_q=filter(b,a,fbb_q);fbb_i=fbb_i(26:end); % 截取有效信息fbb_q=fbb_q(26:end); % 截取有效信息signal=fbb_i+j*fbb_q;clear fbb_i;clear fbb_q;clear local_oscillator_i;clearlocal_oscillator_q;signal_fft=fft(signal,NFFT);pc_result_fft=signal_fft.*match_filter_1_fft;pc_result=ifft(pc_result_fft,NFFT); figure,plot((0:ts:length(signal)*ts-ts),pc_result(1:length(signal)));xlabel('t(单位:S)'),title('回波脉冲压缩处理结果');t=tao*length(code);match_filter_2=2*ts*fliplr(conj(pc_result))*2/t;match_filter_2_fft=fft(match_filter_2,NFFT); % 第二次脉冲压缩处理匹配系数figure;subplot(2,1,1),plot(real(match_filter_2_fft)),title('脉冲压缩系数(实部)');subplot(2,1,2),plot(imag(match_filter_2_fft)),title('脉冲压缩系数(虚部)');%%%%%%%%%%%%%%%%%%% 产生雷达回波 %%%%%%%%%%%%%%%%f_frame=1e3; % 雷达发射信号重复频率T_frame=1/f_frame;N_echo_frame=18;f_doppler=3.5e3; % 动目标的多普勒频率t_frame=0:ts:T_frame-ts;t_mobj=200e-6; % 动目标位置echo_mobj_pulse=[zeros(1,t_mobj/ts),s,zeros(1,(T_frame-t_mobj)/ts-length(s))];echo_mobj=repmat(echo_mobj_pulse,1,N_echo_frame);t_doppler=0:ts:N_echo_frame*T_frame-ts;s_doppler=cos(2*pi*f_doppler*t_doppler);s_echo_mobj=echo_mobj.*s_doppler;t_fobj=450e-6; % 固定目标位置echo_fobj_pulse=[zeros(1,t_fobj/ts),s,zeros(1,(T_frame-t_fobj)/ts-length(s))];echo_fobj=repmat(echo_fobj_pulse,1,N_echo_frame);t_clutter=700e-6; % 杂波位置t_clutter_pulse=39e-6;sigma=2; % 杂波瑞利分布参数sigmat1=0:ts:t_clutter_pulse-ts;u=rand(1,length(t1));echo_clutter=0.08*sqrt(2*log(1./u))*sigma; % 产生瑞利分布信号s_echo_clutter_pulse=[zeros(1,t_clutter/ts),echo_clutter,...zeros(1,(T_frame-t_clutter)/ts-length(echo_clutter))];s_echo_clutter=repmat(s_echo_clutter_pulse,1,N_echo_frame);s_noise=0.1*rand(1,N_echo_frame*T_frame/ts);s_echo=s_echo_mobj+echo_fobj+s_echo_clutter+s_noise;%--------------------- 正交解调 --------------------%N=N_echo_frame*T_frame/ts;n=0:N-1;local_oscillator_i=cos(2*pi*f0/fs*n); % I路本振信号local_oscillator_q=sin(2*pi*f0/fs*n); % Q路本振信号s_echo_i = local_oscillator_i.*s_echo; % I路解调s_echo_q = local_oscillator_q.*s_echo; % Q路解调window=chebwin(51,40); % 50阶cheby窗的FIR低通滤波器[b,a]=fir1(50,2*B/fs,window);s_echo_i=[s_echo_i,zeros(1,25)]; % 因为该FIR滤波器有25个采样周期的延迟 % 所有有效信息全部通过滤波器,故在信号后补25个s_echo_q=[s_echo_q,zeros(1,25)];s_echo_i=filter(b,a,s_echo_i);s_echo_q=filter(b,a,s_echo_q);s_echo_i=s_echo_i(26:end); % 截取有效信息s_echo_q=s_echo_q(26:end); % 截取有效信息s_echo_mf=s_echo_i+j*s_echo_q;%%%%%%%%%%%%%%%%%%%%% 脉冲压缩处理 %%%%%%%%%%%%%%%%%%s_pc_result = zeros(N_echo_frame,NFFT);for i=1:N_echo_frames_echo_fft_result=fft(s_echo_mf(1,(i-1)*T_frame/ts+1:i*T_frame/ts),NFFT);s_pc_fft_1=s_echo_fft_result.*match_filter_1_fft;s_pc_fft_2=s_pc_fft_1.*match_filter_2_fft;s_pc_result(i,:)=ifft(s_pc_fft_2,NFFT);ends_pc_result_1=s_pc_result';s_pc_result_1=reshape(s_pc_result_1,1,N_echo_frame*NFFT);figure,subplot(2,1,1),plot((0:ts:N_echo_frame*NFFT*ts-ts),real(s_pc_result_1));xlabel('t(单位:S)'),title('脉冲压缩处理后结果(实部)');subplot(2,1,2),plot((0:ts:N_echo_frame*NFFT*ts-ts),imag(s_pc_result_1)); xlabel('t(单位:S)'),title('脉冲压缩处理后结果(虚部)');%%%%%%%%%%%%%%%%%%%%% 固定杂波对消处理 %%%%%%%%%%%%%%%%%%S_MTI_result = zeros(N_echo_frame-2,NFFT);for i=1:N_echo_frame-2S_MTI_result(i,:)=s_pc_result(i,:)+s_pc_result(i+2,:)-2*s_pc_result(i+1,:);endS_MTI_result_1=S_MTI_result';S_MTI_result_1=reshape(S_MTI_result_1,1,(N_echo_frame-2)*NFFT); figure,subplot(2,1,1),plot((0:ts:(N_echo_frame-2)*NFFT*ts-ts),real(S_MTI_result_1));xlabel('t(单位:S)'),title('固定杂波对消后结果(实部)');subplot(2,1,2),plot((0:ts:(N_echo_frame-2)*NFFT*ts-ts),imag(S_MTI_result_1));xlabel('t(单位:S)'),title('固定杂波对消后结果(虚部)');clear S_MTI_result_1;%%%%%%%%%%%%%%%%%%%%% MTD处理和求模 %%%%%%%%%%%%%%%%%%S_MTD_result_1 = fft(S_MTI_result,N_echo_frame-2);S_MTD_result=abs(max(S_MTD_result_1));figure,plot((0:ts:NFFT*ts-ts),S_MTD_result); xlabel('t(单位:S)'),title('MTD处理后求模结果(信号最大通道)');%%%%%%%%%%%%%%%%%%%%% CFAR处理 %%%%%%%%%%%%%%%%%%cfar_result = zeros(1,NFFT);cfar_result(1,1)=S_MTD_result(1,1)/(sqrt(2)/pi*mean(S_MTD_result(1,2 :17)));% 第1点恒虚警处理的噪声均值由其后面的16点的噪声决定for i=2:16% 第2点到第16点恒虚警处理的噪声均值由其前面和后面16点的噪声共同决定noise_mean=sqrt(2)/pi*(mean(S_MTD_result(1,1:i-1))+mean(S_MTD_result(1,i+1:i+16)))/2;cfar_result(1,i)=S_MTD_result(1,i)/noise_mean; endfor i=17:NFFT-17% 正常的数据点的恒虚警处理的噪声均值由其前面和后面各16点的噪声中的大者决定noise_mean=sqrt(2)/pi*max(mean(S_MTD_result(1,i-16:i-1)),mean(S_MTD_result(1,i+1:i+16)));cfar_result(1,i)=S_MTD_result(1,i)/noise_mean; endfor i=NFFT-16:NFFT-1% 倒数第16点到倒数第2点恒虚警处理的噪声均值由其前面16点和后面的噪声共同决 noise_mean=sqrt(2)/pi*(mean(S_MTD_result(1,i-16:i-1))+mean(S_MTD_result(1,i+1:NFFT)))/2;cfar_result(1,i)=S_MTD_result(1,i)/noise_mean; endcfar_result(1,NFFT)=S_MTD_result(1,NFFT)/(sqrt(2)/pi*mean(S_MTD_resu lt(1,NFFT-16:NFFT-1)));figure,plot((0:ts:NFFT*ts-ts),cfar_result); xlabel('t(单位:S)'),title('采用恒虚警处理结果');。
【雷达通信】合成孔径雷达(SAR)的点目标仿真matlab源码

【雷达通信】合成孔径雷达(SAR)的点目标仿真matlab源码•*SAR原理简介*用一个小天线作为单个辐射单元,将此单元沿一直线不断移动,在不同位置上接收同一地物的回波信号并进行相关解调压缩处理。
一个小天线通过“运动”方式就合成一个等效“大天线”,这样可以得到较高的方位向分辨率,同时方位向分辨率与距离无关,这样SAR就可以安装在卫星平台上而可以获取较高分辨率的SAR图像。
图1 SAR成像原理示意图1、几个参重要参数为了更好的理解SAR和SAR图像,需要知道几个重要的参数。
•分辨率SAR图像分辨率包括距离向分辨率(Range Resolution)和方位向分辨率(Azimuth Resolution)。
图2 距离向和方位向示意图•距离向分辨率(Range Resolution)垂直飞行方向上的分辨率,也就是侧视方向上的分辨率。
距离向分辨率与雷达系统发射的脉冲信号相关,与脉冲持续时间成正比:Res( r) = c*τ/2其中c为光速,τ为脉冲持续时间。
•方位向分辨率(Azimuth Resolution)沿飞行方向上的分辨率,也称沿迹分辨率。
如下为推算过程:·真实波束宽度:β= λ/ D·真实分辨率:ΔL = β*R = Ls (合成孔径长度)·合成波束宽度βs = λ /(2* Ls) = D / (2* R)·合成分辨率ΔLs = βs* R = D / 2其中λ为波长,D为雷达孔径,R为天线与物体的距离。
从这个公式中可以看到,SAR系统使用小尺寸的天线也能得到高方位向分辨率,而且与斜距离无关(就是与遥感平台高度无关)。
图3 方位向分辨率示意图•极化方式雷达发射的能量脉冲的电场矢量,可以在垂直或水平面内被偏振。
无论哪个波长,雷达信号可以传送水平(H)或者垂直(V)电场矢量。
接收水平(H)或者垂直(V)或者两者的返回信号。
雷达遥感系统常用四种极化方式———HH、VV、HV、VH。
ddma mimo 雷达信号处理 matlab代码

标题:ddma mimo 雷达信号处理 matlab代码一、概述雷达技术是一种用于检测、跟踪和识别目标的重要技术手段。
而MIMO(multiple-input multiple-output)雷达系统则是一种利用多个发射天线和接收天线的雷达系统,能够有效提高雷达系统的性能。
在MIMO雷达系统中,DDMA(digital beamforming and diversitybining)技术被广泛应用,以提高雷达信号处理的效率和精度。
本文将介绍DDMA MIMO雷达信号处理的Matlab代码实现。
二、DDMA MIMO雷达信号处理原理DDMA技术通过数字波束形成和多样性组合,能够有效地抑制干扰、提高信噪比、增强目标探测和跟踪性能。
MIMO雷达系统中,可以通过多个发射天线和接收天线实现精确的波束形成和多样性组合,从而实现高分辨率的目标成像和跟踪。
DDMA MIMO雷达信号处理算法主要包括以下几个步骤:1. 信号接收:接收多通道雷达回波信号,并进行数字化处理;2. 数字波束形成:利用接收天线阵列的数据,通过波束形成算法得到波束指向;3. 多样性组合:利用多个接收通道的信息,进行多样性组合,提高信号质量;4. 目标探测和跟踪:利用波束形成和多样性组合后的信号,进行目标探测和跟踪。
三、Matlab代码实现在Matlab评台上,可以使用信号处理工具箱和多通道雷达信号处理工具箱实现DDMA MIMO雷达信号处理。
以下是一个简单的Matlab 代码实现示例:```matlab接收信号处理rxSignal = randn(4, 1000); 模拟4个接收通道的雷达信号数字波束形成steeringVector = exp(1i * pi * (0:3).' * sind(30)); 设置波束指向为30度beamformedSignal = steeringVector' * rxSignal;多样性组合diversityCombinedSignal = sum(beamformedSignal, 1);目标探测和跟踪略显示结果figure;subplot(2,1,1);plot(1:1000, real(rxSignal));title('Received Signal');xlabel('Sample Index');ylabel('Amplitude');subplot(2,1,2);plot(1:1000, real(diversityCombinedSignal));title('Diversity Combined Signal');xlabel('Sample Index');ylabel('Amplitude');```以上代码示例中,首先模拟了4个接收通道的雷达信号,然后利用波束指向和多样性组合得到了合成的信号,并进行了显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.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)=[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);%回波的采样点数=脉压系数长度=暂态点数目+1if rem(number,2)~=0 %rem求余number=number+1;end%把number变为偶数for i=-fix(number/2):fix(number/2)-1Chirp(i+fix(number/2)+1)=exp(j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%ex p(j*fi)*,产生复数矩阵Chirpendcoeff=conj(fliplr(Chirp));%把Chirp矩阵翻转并把复数共轭,产生脉压系数figure(1);%脉压系数的实部plot(real(Chirp));axis([0 90 -1.5 1.5]);title('脉压系数实部');%-------------------------产生目标回波串-----------------------------------------------------------------------------------------%%-------------------------产生前3个目标的回波串-------%SignalAll=zeros(1,TotalNumber);%所有脉冲的信号,先填0for k=1:TargetNumber-1 % 依次产生各个目标SignalTemp=zeros(1,SampleNumber);% 一个PRTSignalTemp(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排在一起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))*ex p(j*fi)*Chirp;%一个脉冲的1个目标(未加多普勒速度)Signal=zeros(1,TotalNumber);for i=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('目标信号的实部');grid on;zoom on;subplot(2,1,2);plot(imag(SignalAll));title('目标信号的虚部');grid on;zoom on;%====================================================================== ==============%% 产生系统噪声信号 %%====================================================================== ==============%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,加噪声之后的回波for i=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,1,2);plot(abs(pc_time0(1:TotalNumber+number-1)-pc_freq0(1:TotalNumber+number-1)),'r');title('时域和频域脉压的差别');pc_freq1=pc_freq0(number:TotalNumber+number-1);%去掉暂态点 number-1个,后填充点若干(8192-number+1-TotalNumber)% ================按照脉冲号、距离门号重排数据=================================%for i=1:PulseNumberpc(i,1:SampleNumber)=pc_freq1((i-1)*SampleNumber+1:i*SampleNumber);%每个PRT为一行,每行480个采样点的数据endfigure(6);plot(abs(pc(1,:)));title('频域脉压结果的幅度,没有暂态点');% ================MTI(动目标显示),对消静止目标和低速目标---可抑制杂波=================================%for i=1:PulseNumber-1 %滑动对消,少了一个脉冲mti(i,:)=pc(i+1,:)-pc(i,:);endfigure(7);mesh(abs(mti));title('MTI result');% ================MTD(动目标检测),区分不同速度的目标,有测速作用=================================%mtd=zeros(PulseNumber,SampleNumber);for i=1:SampleNumberbuff(1:PulseNumber)=pc(1:PulseNumber,i);buff_fft=fft(buff);mtd(1:PulseNumber,i)=buff_fft(1:PulseNumber);endfigure(8);mesh(abs(mtd));title('MTD result');%=======================================虚实矩阵转换========================================%coeff_fft_c=zeros(1,2*8192);for i=1:8192coeff_fft_c(2*i-1)=real(coeff_fft(i));coeff_fft_c(2*i)=imag(coeff_fft(i));endecho_c=zeros(1,2*TotalNumber);for i=1:TotalNumberecho_c(2*i-1)=real(Echo(i));echo_c(2*i)=imag(Echo(i));end%===========================以下是为DSP程序提供回波数据、脉压系数===============================%% fo=fopen('F:\my study\Visual_DSP_test\test_1\coeff_fft_c.dat','wt');%频域脉压系数% for i=1:2*8192% fprintf(fo,'%f,\r\n',coeff_fft_c(i));% end% fclose(fo);%% fo=fopen('F:\my study\Visual_DSP_test\test_1\echo_c.dat','wt');%16次回波的% for i=1:2*TotalNumber% fprintf(fo,'%f,\r\n',echo_c(i)); % end% fclose(fo);。