基本雷达信号处理流程一、脉冲压缩窄带(或某些中等带宽)的匹配滤波:相关处理,用FFT数字化执行,即快速卷积处理,可以在基带实现(脉冲压缩)快速卷积,频域的匹配滤波脉宽越小,带宽越宽,距离分辨率越高;脉宽越大,带宽越窄,雷达能量越小,探测距离越近;D=BT(时宽带宽积);脉压流程:频域:回波谱和参考函数共轭相乘时域:相关即输入信号的FFT乘上参考信号FFT的共轭再逆FFT;Sc=ifft(fft(Sb).*conj(fft(S)));Task1f0=10e9;%载频tp=10e-6;%脉冲宽度B=10e6;%信号带宽fs=100e6;%采样率R0=3000;%目标初始距离N=4096;c=3e8;tau=2*R0/c;beita=B/tp;t=(0:N-1)/fs;Sb=rectpuls(t-tp/2-tau,tp).*exp(j*pi*beita*(t-tp/2-tau).^2).*exp(-2j* pi*f0*tau);%回波信号S=rectpuls(t-tp/2,tp).*exp(i*pi*beita*(t-tp/2).^2);%发射信号(参考信号)x 10x 10x 10So=ifft(fft(Sb).*conj(fft(S)));%脉压 figure(7);plot(t*c/2,db(abs(So)/max(So)))%归一化dB grid on-400-350-300-250-200-150-100-500二、去斜处理(宽带的匹配滤波)去斜处理“有源相关”,通常用来处理极大带宽的LFM波形(如果直接采样的话因为频带很宽所以在高频的时候需要的采样率就很大,采样点数就很多,所以要经过去斜处理)Stretch方法是针对线性调频信号而提出的,其方法是将输入信号与参考信号(经适当延迟的本振信号,延迟量通常由窄带信号测距结果估计出)混频,则每一个散射点就对应一个混频后的单频分量,对混频输出的信号进行DFT处理,即可获得目标的距离像,对参考信号的要求是应具有与输入信号相同的调频斜率。
去斜处理流程:输入信号输出信号参考信号混频过程为回波信号在时域与参考信号的共轭相乘混频后得到一个瞬时频率和目标距离成正比的单频信号,对其进行频谱分析即可得到目标的距离像;去斜处理一般情况下可降低信号带宽;%%%%%%%%%%%%%%%%%%%%%%%% 去斜处理仿真程序 %%%%%%%%%%%%%%%%%%%%%%%%% clc;clear all;close all;B=10e6;%带宽10MHztp=10e-6;%脉宽10usk=B/tp;%LFM系数fs=50e6;R0=3e3;R1=2000;R2=3500;R=5000;c=3e8;f0=60e6;N=round(2*R/c*fs);fft_N=2^nextpow2(N);t=linspace(0,2*R/c,N);%%%%%%%%%%%%%%%%%%%%%%%%%% 参考信号 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sref=exp(2i*pi*f0*t).*exp(1i*pi*k*t.^2);0.511.522.533.5x 10-5-101仿真时间/t 幅度参考信号实部0.511.522.533.5x 10-5-101仿真时间/t 幅度参考信号虚部-2.5-2-1.5-1-0.500.511.522.5x 107050100频率f/Hz幅度参考信号频谱%%%%%%%%%%%%%%%%%%%%%%%%%%% 回波信号 %%%%%%%%%%%%%%%%%%%%%%%%%%%% Sb0=exp(1j*pi*k*(t-2*R0/c).^2).*exp(2j*pi*f0*(t-2*R0/c)); Sb1=exp(1j*pi*k*(t-2*R1/c).^2).*exp(2j*pi*f0*(t-2*R1/c)); Sb2=exp(1j*pi*k*(t-2*R2/c).^2).*exp(2j*pi*f0*(t-2*R2/c)); Sb=Sb0+Sb1+Sb2;x 10-5-101仿真时间t/s 幅度回波信号1实部x 10-5-101仿真时间t/s 幅度回波信号2实部x 10-5-101仿真时间t/s幅度回波信号3实部x 10-5-3-2-1123时间 t/s幅度%%%%%%%%%%%%%%%%%%%%%%%%%%% 混频信号 %%%%%%%%%%%%%%%%%%%%%%%%%%%% SSb=Sref.*conj(Sb);%去斜后时域信号 spectrum=fft(SSb,fft_N);%去斜后频域信号 f=fs*(0:fft_N-1)/fft_N-fs/2;%从-fs/2到fs/2 f=f*c*tp/2/B;%瞬时频率对应的距离 sf=exp(-j*pi/k*f.^2);%滤波器传输函数SSb=spectrum.*sf;%从频域去距离扭曲,实现了压缩和去RVP figure;SSb=fftshift(SSb);SSb1=ifft(SSb);%消除了距离扭曲和RVP 的时域信号 subplot(211);plot(f,db(abs(SSb)/max(SSb))) xlabel('距离/m'); grid on subplot(212); plot(f,abs(SSb)) xlabel('距离/m'); grid on-80-60-40-200距离/m0500100015002000距离/m三、加窗信号的截取产生了能量泄漏,而用FFT 算法计算频谱又产生了栅栏效应,在FFT 分析中为了减少或消除频谱能量泄漏及栅栏效应可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称窗。
%%%%%%%%%%%%%%%%%%%%%%%% 窄带加窗处理 %%%%%%%%%%%%%%%%%%%%%%%%clc;clear all ;close all ;f0=10e9;%载频 B=10e6;%信号带宽 tp=10e-6;%脉冲宽度 fs=100e6;%采样频率 k=B/tp;%LFM 系数,线性调频率 R0=3000;%初始距离c=3e8;%光速 R=6000; tau=2*R0/c; N=round(2*R/c*fs); fft_N=2^nextpow2(N); t=(0:fft_N-1)/fs;s=rectpuls(t-tp/2,tp).*exp(j*pi*k*(t-tp/2).^2); %% 发射信号 spectrum_s=fft(s,fft_N);%参考信号频谱 spectrum_s=fftshift(spectrum_s);sb=rectpuls(t-tp/2-tau,tp).*exp(j*pi*k*(t-tp/2-tau).^2).*exp(-2j*pi*f 0*tau); %% 回波信号 %% 时域加窗sm=hamming(round(tp*fs))'.*s(1:round(tp*fs));%参考信号加窗 %% 频域加窗%找频谱的-4dB 压缩点,窗函数严格与该压缩点之间的频谱对应hamming1=[zeros(1855,1)',hamming(387)',zeros(1854,1)']; spectrum_sm=hamming1.*spectrum_s; %% 脉压fft_ssb=ifft(fft(sb).*conj(fft(s)));fft_smsb=ifft(fft(sb).*conj(fft(sm,length(sb)))); fft_spsb=ifft(fft(sb).*conj(fftshift(spectrum_sm)));x 107-90-80-70-60-50-40-30-20-100频率 f/Hz幅度 /d B归一化发射信号频谱50100150幅度x 1050100150频率 f/Hz幅度x 10750100150频率 f/Hz幅度x 10750100150频率 f/Hz幅度-400-350-300-250-200-150-100-500距离 /m幅度 /d b-400-350-300-250-200-150-100-500距离 /m幅度 /d b窄带频域加窗与否对比图%%%%%%%%%%%%%%%%%%%%%%%%%%% 去斜加窗处理 %%%%%%%%%%%%%%%%%%%%%%%%%%%% B=10e6;%带宽10MHz tp=10e-6;%脉宽10us u=B/tp;%LFM 系数 fs=50e6;%fs>=2*B/tp*tau R0=3000;%初始距离 R=4500;%距离波门 c=3e8; f0=60e6;%载频N=round(2*R/c*fs); fft_N=2^nextpow2(N); t=linspace(0,2*R/c,N); f=fs*(0:fft_N-1)/fft_N-fs/2;%从-fs/2到fs/2%%%%%%%%%%%%%%%%%%%%%%%%%% 参考信号 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sref=exp(1i*pi*u*t.^2);%%%%%%%%%%%%%%%%%%%%%%%%%%%% 回波信号 %%%%%%%%%%%%%%%%%%%%%%%%%%%% Sb=rectpuls(t-2*R0/c,tp).*exp(1j*pi*u*(t-2*R0/c).^2);%%%%%%%%%%%%%%%%%%%%%%%%%%%% 混频信号 %%%%%%%%%%%%%%%%%%%%%%%%%%%% ssb=Sref.*conj(Sb); %% 加窗% w = hamming(502)';% hamming=[zeros(749,1)',w-min(w),zeros(249,1)']; % hamming=abs(hamming)/max(hamming);hamming=[zeros(749,1)',hamming(502)',zeros(249,1)']; ssb0=hamming.*ssb;spectrum_ssb0=fft(ssb0,fft_N); %一维距离像 spectrum_ssb=fft(ssb,fft_N); f=f*c*tp/2/B;%瞬时频率对应的距离figure; %%图6plot(f,db(abs(fftshift(spectrum_ssb))/max(fftshift(spectrum_ssb)))) hold onplot(f,db(abs(fftshift(spectrum_ssb0))/max(fftshift(spectrum_ssb0))),'r') hold off-140-120-100-80-60-40-20频率 f/Hz归一化幅度 /d b去斜加窗与否对比图-4000-3000-2000-100001000200030004000-150-100-50距离/m归一化幅度 /d b消除了RVP 和距离扭曲的混频信号-4000-3000-2000-1000010002000300040000200400600距离/m幅度消除了RVP 和距离扭曲的混频信号二、检测1、脉冲多普勒(PD 处理)多普勒效应:fd=2v/c*f0,v 为镜像速度;慢时间维上的采样点做FFT 可以测出目标的速度; 使用复信号:频率正负可测量目标速度的方向; clc;clear all ;close all ; f0=10e9;%载频tp=10e-6;%脉冲宽度 B=10e6;%带宽fs=100e6;%采样频率 R0=3000;%初始距离 c=3e8;%光速R=4500;%距离波门gate=R+tp*c/2;%距离波门加脉宽对应距离 N=round(2*gate/c*fs);%波门内采样点个数 fft_N=2^nextpow2(N); t=0:1/fs:tp;%信号长度echo_t=linspace(0,2*gate/c,N);%波门长度 tau=2*R0/c; k=B/tp;%调频系数Tr=100e-6;%脉冲重复周期CPI=64;%总脉冲个数v=60;%目标速度,朝向雷达%发射信号s=exp(i*pi*k*t.^2);%回波信号for m=1:CPIsb(m,:)=rectpuls((echo_t-2*(R0-(m-1)*v*Tr)/c-tp/2)/(tp)).*exp(1i*pi*k *(echo_t-2*(R0-(m-1)*v*Tr)/c).^2-1i*pi*2*f0*round(2*R0/c*fs)+1i*2*pi* (2*f0*v/c)*(m-1)*Tr)+sqrt(0.1)*(randn(1,N)+1i*randn(1,N));end%脉压fft_n=2^nextpow2(length(t)+N-1);fft_s=fft(s,fft_n);for m=1:1:CPIfft_sb(m,:)=fft(sb(m,:),fft_n);fft_ssb(m,:)=ifft(fft_sb(m,:).*conj(fft_s));z(m,:)=abs(fft_ssb(m,(1:N)));z1(m,:)=z(m,:)/max(z(m,:));z1(m,:)=20*log10(z1(m,:));[maxval,maxpo]=max(z1(m,:));end%FFTfor fm=1:Ndop(:,fm)=fft(fft_ssb(:,fm));a_dop(:,fm)=fftshift(abs(dop(:,fm)));end%求极大值对应的坐标[maxva,max_v]=max(a_dop(:,maxpo));%PD测速fd=(max_v-33)/CPI/Tr;v_pd=fd*c/2/f0%测速范围fd_max=1/Tr/2;v_max=fd_max*c/2/f0%测速精度det_fd=1/Tr/64;det_v=det_fd*c/2/f0figure;mesh(echo_t*c/2,linspace(-75,75,64),a_dop);axis tight;xlabel('距离:m');ylabel('速度:m/s');title('二维距离-多普勒平面');v_pd =60.9375 v_max =75 det_v =2.34382、形心法测距测速%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 形心法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc;clear all;close allf0=10e9;%载频tp=10e-6;%脉冲宽度B=10e6;%带宽fs=100e6;%采样频率R0=3000;%初始距离c=3e8;%光速N=4096; %此为培训期间数据,实际情况可以根据波门和信号宽度求出Nt=(0:N-1)/fs;snr=20;tau=2*R0/c;k=B/tp;%调频系数Tr=100e-6;%脉冲重复周期CPI=64;%总脉冲个数v=60;%目标速度,朝向雷达sigmaf=1^2/(10^(snr/10));s=rectpuls(t-tp/2,tp).*exp(j*pi*k*(t-tp/2).^2);%发射信号% figure;% plot(t,real(s))% xlabel('时间 /s');% ylabel('幅度');% title('发射信号实部');% grid onfor m=1:CPItaum=2*(R0-m*Tr*v)/c;sb=rectpuls(t-taum-tp/2).*exp(j*pi*k*(t-taum-tp/2).^2).*exp(-2j*pi*f0 *taum);%回波信号sb_noise=sb+sqrt(sigmaf/2)*(randn(1,N)+1i*randn(1,N));%加噪声的回波信号fft_ssb=ifft(fft(sb).*conj(fft(s)));%脉压处理fft_ssb_snr=ifft(fft(sb_noise).*conj(fft(s)));Group(m,1:N)=fft_ssb;Group_snr(m,1:N)=fft_ssb_snr;endfigure;imagesc(t*c/2,1:CPI,abs(fft_ssb))figure;imagesc(t*c/2,1:CPI,abs(fft_ssb_snr))for n=1:NGroup2=fft(Group(1:CPI,n));%纵向做FFTGroup2_2=fftshift(abs(Group2));Group3(n,1:CPI)=Group2_2;endfor n1=1:NGroup2_snr=fft(Group_snr(1:CPI,n1));%纵向做FFTGroup2_2_snr=fftshift(abs(Group2_snr));Group3_snr(n1,1:CPI)=Group2_2_snr;endfigure;mesh(abs(Group3))figure;mesh(abs(Group3_snr))[line,row]=find(abs(Group3)==max(max(abs(Group3))));[line_snr,row_snr]=find(abs(Group3_snr)==max(max(abs(Group3_snr)))); Range=t*c/2;PRF=1/Tr;fd=(-CPI/2:CPI/2-1)*PRF/CPI;v=fd*c/2/f0;for Ra=line-3:line+3amp=abs(Group3(Ra,row));C(Ra)=amp*Range(Ra);D(Ra)=sum(amp);endsum(C)/sum(D)for V=row-3:row+3index=abs(Group3(line,V));E(V)=index*v(V);F(V)=sum(index);endsum(E)/sum(F)for Ra_snr=line_snr-3:line_snr+3amp_snr=abs(Group3_snr(Ra_snr,row_snr));C_snr(Ra_snr)=amp_snr*Range(Ra_snr);D_snr(Ra_snr)=sum(amp_snr);endsum(C_snr)/sum(D_snr)for V_snr=row_snr-3:row_snr+3index_snr=abs(Group3_snr(line_snr,V_snr));E_snr(V_snr)=index_snr*v(V_snr);F_snr(V_snr)=sum(index_snr);endsum(E_snr)/sum(F_snr)结果:ans =3.0000e+003ans =60.3560ans =3.0000e+003ans =60.35333、信号检测结果:mean_noise =0.0010 + 0.0079ivar_noise = 1.0123pf1 =1.0000e-003010002000300040005000600070008000900010000点数模值高斯白噪声取模值后的波形以及检测门限024681012141618200.10.20.30.40.50.60.70.80.91SNR/dB 检测概率检测概率相对于SNR 曲线4、单脉冲测角仿真单脉冲跟踪雷达是通过比较来自两个或多个同时波束的信号获得目标角位置信息的一种雷达;目前常用的单脉冲测角方法主要有幅度和差单脉冲测角和相位和差单脉冲测角。