资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MATLAB雷达数据处理:脉冲压缩,相干积累,MTI,CFAR详解2014-05-14 21:42:29|分类:雷达信号处理|标签:雷达数据仿真动目标检测脉压恒虚警率|字号订阅% Thanks to M. A. Richards for providing the code.clear, hold offformat compactJ = sqrt(-1);close all% Get root file name for reading resultsfile=input(Enter root file name for data file: ,s);eval(load ,file,.mat)fprintf(nPulse length = %g microsecondsn,T/1e-6)fprintf(Chirp bandwidth = %g Mhzn,W/1e6)fprintf(Sampling rate = %g Msamples/secn,fs/1e6)figureplot(1e6/fs)*(0:length(s)-1),real(s) imag(s)title(Real and Imaginary Parts of Chirp Pulse)xlabel(time (usec)ylabel(amplitude)gridPRI = 1/PRF;fprintf(nWe are simulating %g pulses at an RF of %g GHz,Np,fc/1e9)fprintf(nand a PRF of %g kHz, giving a PRI of %g usec.,PRF/1e3,PRI/1e-6)fprintf(nThe range window limits are %g to %g usec.n, . T_out(1)/1e-6,T_out(2)/1e-6)% Compute unambiguous Doppler interval in m/sec% Compute unambiguous range interval in metersvua = 3e8*PRF/(2*fc);rmin = 3e8*T_out(1)/2;rmax = 3e8*T_out(2)/2;rwin = rmax-rmin;rua = 3e8/2/PRF;fprintf(nThe unambiguous velocity interval is %g m/s.,vua)fprintf(nThe range window starts at %g km.,rmin/1e3)fprintf(nThe range window ends at %g km.,rmax/1e3)fprintf(nThe sampled range window is %g km long.,rwin/1e3)fprintf(nThe unambiguous range interval is %g km.nn,rua/1e3)% Convert range samples to absolute range units.My,Ny=size(y);range=(3e8/2)*(0:My-1)*(1/fs) + T_out(1)/1e3;% T_out(1) 是接收窗的起始时刻,即range从多远的距离开始观测pulse = (1:Ny);% Force oversize FFT, and compute doppler scale factorLfft = 2(nextpow2(Ny)+3); % Lfft是慢时间上FFT的点数doppler = (0:Lfft-1)/Lfft)-0.5)*vua; %此处的 doppler表征的是速度,不是fd = 2v / lambda这个定义式fprintf(nThe Doppler increment is %g Hz.,PRF/Lfft)fprintf(nThe velocity increment is %g m/s.,3e8*PRF/Lfft/2/fc)% Start with a few plots to examine the data% plot power of raw data in dBydB=db(abs(y)/max(max(abs(y),voltage);figuremesh(pulse,range,ydB)title(FAST-TIME/SLOW-TIME PLOT OF RAW DATA)ylabel(range (km)xlabel(pulse number)% Plot overlay of individual range tracesdisp( )disp( )disp(.plotting overlay of range traces)figureplot(range,db(y,voltage)title(OVERLAY OF RANGE TRACES)xlabel(distance (km)ylabel(amplitude (dB)grid% Noncoherently integrate the range traces and displaydisp(.plotting integrated range trace)figureplot(range,db(sum(abs(y).2),power) %看看功率的非相干积累title(NONCOHERENTLY INTEGRATED RANGE TRACE)xlabel(range bin)ylabel(power)grid% Doppler process and square-law detect the whole% unprocessed array and display mesh.% Use Hamming window throughout.disp(.computing raw range-Doppler map)% 下句效果和Y=fft(conj(y).*(hamming(Ny)*ones(1,My),Lfft,1); 一样。dim = 1 表示沿着列做fftY=fft(conj(y).*(hamming(Ny)*ones(1,My),Lfft); %y是20-by-337的,对y的慢时间维(按列)做Lfft点FFT,进行相干积累% Y= fftshift(Y.*conj(Y),1); 的效果与Y=git_rotate(Y.*conj(Y),Lfft/2); 完全相同,git_rotate是将矩阵的上下循环移位Y=git_rotate(Y.*conj(Y),Lfft/2); %note we take mag-squared of Y here also注意Y是做完相干积累后才取模平方的YdB=db(abs(Y),power);figuremesh(doppler,range,YdB)Since I used the DFT(K points) to perform the Doppler analysis, bin #0 (#1 in MATLAB indexing) corresponds to zero Doppler shift, while each successive bin represents an increment of PRF/K Hz.I used a modest DFT size of 256 to get adequate Doppler definition, the corresponding increment in velocity is (lambda*PRF/2/K)m/s per FFT bin.The DFT causes the target energy to concentrate along the frequency axis; a target signal that was a sinusoid across all 20 slow time samples and was lost among the noise and clutter is now an asinc function peaking at the appropriate Doppler shift. The asinc is still fairly “fat” simply because I have only 20 slow-time samples, which limits the Doppler resolution. The noise remains spread out across all of the range and velocity bins.The clutter is now a clearly evident concentration of energy around zero velocity, extending through all of the range bins.Note also that the four targets are now clearly visible.Each is in the form of a “hump” of energy extending across 1.5 km of range.This is because I have not yet done pulse compression.The signal from a target on a given pulse is just an echo of my transmitted pulse, which was 10ms long.This is equivalent to (c/2)(10ms) = 1.5 km.title(RANGE-DOPPLER PLOT OF UNPROCESSED DATA)ylabel(range (km)xlabel(velocity (m/s)levels=(max(YdB(:)+-1 -5 -10 -15 -20 -25 -30);figurecontour(doppler,range,YdB,levels)title(RANGE-DOPPLER CONTOUR PLOT OF UNPROCESSED DATA)ylabel(range (km)xlabel(velocity (m/s)grid% Now start processing the data .% Pulse compression first. Use time-domain Hamming weighting of the% impulse response for range sidelobe controlLs = length(s); % Ls = 120disp(.performing ma
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号