Ëæ»úÐźŴ¦ÀíMATLAB·ÂÕæ±¨¸æ ÏÂÔØ±¾ÎÄ

st2=circshift(s,[0,delay_num2]);

st1=st1.*exp(1i*2*pi*fd1*t); %¼ÓÈë¶àÆÕÀÕÆµÒÆ1 st2=st2.*exp(1i*2*pi*fd2*t); %¼ÓÈë¶àÆÕÀÕÆµÒÆ2 L=100;

ht=fir1(L,B/(fs/2));

noise=randn(1,PulseNum*N)+1i*randn(1,PulseNum*N); noise=conv(ht,noise); noise=noise(L+1:end); %ÔëÉù SNR=10;

E_noise=sum(abs(noise).^2); E=E_noise*(10^(SNR/10)); Es=sum(abs(st1).^2);

A=sqrt(E/Es); %Ðźŷù¶È

% %SNR=10*log10(A^2/var(noise)/2) % A=sqrt(10^(SNR/10)*(var(noise)/2)); echo1=A*st1+noise; %µ¥Ä¿±ê»Ø²¨ echo2=echo1+4*A*st2;%˫Ŀ±ê»Ø²¨ figure(2); subplot(211); plot(real(echo1)); title('µ¥Ä¿±ê»Ø²¨'); subplot(212); plot(real(echo2)); title('˫Ŀ±ê»Ø²¨'); %% »Ø²¨Âöѹ

h=fliplr(s(1:round(T/Ts))); %ʱÓò·´×ª m1=conv(h,echo1); m2=conv(h,echo2); m1=[m1,0]; %¾í»ýºóÊý¾Ý²¹Î»

m2=[m2,0]; %¾í»ýºóÊý¾Ý²¹Î»

tmy=linspace(0,(PulseNum+1)*T,N+PulseNum*N); m1_dB=20*log10(abs(m1)/max(abs(m1))); m2_dB=20*log10(abs(m2)/max(abs(m2))); figure(3); subplot(211); plot(tmy,real(m1)); title('µ¥Ä¿±êÂöѹͼ'); subplot(212); plot(tmy,real(m2)); title('˫Ŀ±êÂöѹͼ'); for i=1:(PulseNum+1) for k=1:N

my1(i,k)=m1((i-1)*N+k); end

end

for i=1:(PulseNum+1) for k=1:N

my2(i,k)=m2((i-1)*N+k); end end

td=0:Ts:T-Ts; x=td*c/2;

y=1:(PulseNum+1); [X,Y]=meshgrid(x,y); figure(4); subplot(211); mesh(X,Y,real(my1)); title('µ¥Ä¿±êµÄ¾àÀëÃÅÖØÅÅ'); subplot(212); mesh(X,Y,real(my2)); title('˫Ŀ±êµÄ¾àÀëÃÅÖØÅÅ'); %% ÖØÅźó½øÐÐFFT£¨²»¼Ó´°£© Nfft=512; for i=1:N

st_fft1(1:Nfft,i)=abs(fft(my1(:,i),Nfft)); st_fft1(1:Nfft,i)=fftshift(st_fft1(1:Nfft,i)); end for i=1:N

st_fft2(1:Nfft,i)=abs(fft(my2(:,i),Nfft)); st_fft2(1:Nfft,i)=fftshift(st_fft2(1:Nfft,i)); end

fsd=fm; %ÖØÅźó¶ÔÁнøÐÐfft£¬Ã¿¸öÂö³åÖÜÆÚֻȡ1¸öµã y=(-fsd/2:fsd/Nfft:(fsd/2-fsd/Nfft))*c/2/fc; [X,Y]=meshgrid(x,y); figure(5); subplot(211);

mesh(X,Y,20*log10(st_fft1)); title('µ¥Ä¿±êÖØÅźóµÄFFT(²»¼Ó´°)'); xlabel('¾àÀë/m'); ylabel('ËÙ¶Èm/s'); subplot(212);

mesh(X,Y,20*log10(st_fft2)); title('˫Ŀ±êÖØÅźóµÄFFT(²»¼Ó´°)'); xlabel('¾àÀë/m');

ylabel('ËÙ¶Èm/s');

D1=st_fft1(1:Nfft,round(2*R1/c/Ts)); %% ÖØÅźó½øÐÐFFT£¨¼Ó´°£© w=hamming(PulseNum+1);

for i=1:N

st_fft1(1:Nfft,i)=abs(fft(my1(:,i).*w,Nfft)); st_fft1(1:Nfft,i)=fftshift(st_fft1(1:Nfft,i)); end for i=1:N

st_fft2(1:Nfft,i)=abs(fft(my2(:,i).*w,Nfft)); st_fft2(1:Nfft,i)=fftshift(st_fft2(1:Nfft,i)); end figure(6); subplot(211);

mesh(X,Y,20*log10(st_fft1)); title('µ¥Ä¿±êÖØÅźóµÄFFT(¼Ó´°)'); xlabel('¾àÀë/m'); ylabel('ËÙ¶Èm/s'); subplot(212);

mesh(X,Y,20*log10(st_fft2)); title('˫Ŀ±êÖØÅźóµÄFFT(¼Ó´°)'); xlabel('¾àÀë/m');

ylabel('ËÙ¶Èm/s');

D2=st_fft1(1:Nfft,round(2*R1/c/Ts));

%% µ¥Ä¿±êËÙ¶ÈÊÓͼ

y=(-fsd/2:fsd/Nfft:(fsd/2-fsd/Nfft))*c/2/fc; figure(7);

plot(y,20*log10(D1)); xlabel('ËÙ¶Èm/s'); ylabel('·ù¶È/dB');

title('µ¥Ä¿±êMTDµÄËÙ¶ÈÊÓͼ£¨²»¼Ó´°£©'); %% ¶àÆÕÀÕÃô¸ÐÏÖÏó

m=linspace(0,2,20);

n=[78.70,77.51,76.85,75.42,74.46,72.46,70.00,65.85,58.19,48.30,59.02,61.94,64.10,64.22,64.18,63.35,62.00,59.46,59.17,48.06]; figure(8); plot(m,n)

xlabel('¶àÆÕÀÕÆµÂÊ/fr±¶Êý'); ylabel('Ö÷°ê·åÖµ/dB'); title('¶àÆÕÀÕÃô¸ÐÏÖÏó');