$ clc clear close all tic set(0,'defaultfigurecolor','w') %% ***************************²ÎÊýÉèÖÃ**************************** %% % ÐźŲÎÊý c = 3 * 1e+8; % ¹âËÙ fc = 2 * 1e+9; % ÔØ²¨ÆµÂÊ lambda = c / fc; % À״ﲨ³¤ Tr = 5 * 1e-6; % ÐźųÖÐøÊ±¼ä Br = 30 * 1e+6; % Ðźŵ÷Ƶ´ø¿í Kr = Br / Tr; % µ÷ƵбÂÊ
alpha_os = 4.0; % ¹ý²ÉÑùÂÊ Fr = alpha_os * Br; % ¿ìʱ¼ä²ÉÑùƵÂÊ Nr = round( Fr * Tr ); % ¿ìʱ¼ä²ÉÑùµãÊý
disp(['ÀíÂÛ¾àÀë·Ö±æÂÊΪ£º', num2str( c / ( 2 * Br ) ), 'm']); disp(['ÀíÂÛ²â»æ´ø´ø¿íΪ£º', num2str( c / ( 2 * Br ) * Nr ), 'm']); disp('--------------------------------'); % Ä¿±ê²ÎÊý position_target = [ 2997, 3000, 3050 ]; % Ä¿±êÏà¶ÔÀ×´ïµÄб¾à sigma_target = [ 1, 1, 1 ]; % Ä¿±êµÄºóÏòÉ¢ÉäϵÊý num_target = length( position_target ); % Ä¿±êÊýÁ¿ disp(['Ä¿±êAµÄʵ¼Ê¾àÀëΪ£º', num2str( position_target(1) ), 'm']); disp(['Ä¿±êBµÄʵ¼Ê¾àÀëΪ£º', num2str( position_target(2) ), 'm']); disp(['Ä¿±êCµÄʵ¼Ê¾àÀëΪ£º', num2str( position_target(3) ), 'm']); disp('--------------------------------'); % ²â¾à²ÎÊý Rmin = 1000; Rmax = 7000; Rwid = Rmax - Rmin; % ×î´ó²â¾à³¤¶È Twid = 2 * Rwid / c; % »Ø²¨´°µÄ³¤¶È Nwid = round( Fr * Twid ); % »Ø²¨ÐźŵIJÉÑùµãÊý %% ***************************²â¾à·ÖÎö**************************** %% % ·¢ÉäÐźŠt_tau_1 = linspace( 0, Nr-1, Nr ) / Nr * Tr; sot = ( t_tau_1 <= Tr ) .* exp( 1j * pi * Kr * ( t_tau_1 - Tr/2 ).^2 ); % »Ø²¨ÐźŠt_tau_2 = linspace( 2*Rmin/c, 2*Rmax/c, Nwid );
srt_r = zeros( 1, Nwid ); for i = 1 : num_target t_tau_3 = t_tau_2 - 2 * position_target(i) / c; wr = abs( t_tau_3 ) <= Tr/2; srt_target_r = sigma_target(i) * wr .* exp( 1j * pi * Kr * t_tau_3.^2 ) *... exp( -1j * 4*pi * fc * position_target(i) / c ); srt_r = srt_r + srt_target_r; end
figure subplot(311) plot( t_tau_1*1e+6, real(sot), 'b' );hold on;xlabel('ʱ¼ä/\mus');ylabel('·ù¶È'); plot( t_tau_2*1e+6, real(srt_r), 'r' );hold on;xlabel('ʱ¼ä/\mus');ylabel('·ù¶È');title('·¢ÉäÐźÅ&»Ø²¨ÐźÅ'); grid on;axis([0, 50, -4, 4]);
% Æ¥ÅäÂ˲¨ Nfft = 2^nextpow2( 2 * Nwid - 1 ); Srf_r = fft( srt_r, Nfft );
Hrf_2 = conj( fft( sot, Nfft ) );
Yrf_r = Srf_r .* Hrf_2; yrt_r = fftshift( ifft( Yrf_r ) );
% ²¹Æë³¤¶È N0 = round( Nfft/2 - Nr/2 ); yrt_r_1 = yrt_r( N0 : N0 + Nwid - 1 ); % ¹éÒ»»¯ yrt_r_2 = 20 * log10( abs( yrt_r_1 ) ./ max( abs( yrt_r_1 ) ) + eps);
% SNR_n = 13; % signal = awgn( yrt_r_1, SNR_n, 'measured' );
% ¾àÀë²âÁ¿ R_tau = t_tau_2*c/2;
R_peaks = findpeaks( yrt_r_2 ); R_peaks = sort( R_peaks, 'descend' ); R_dect_1 = R_tau( yrt_r_2 == R_peaks(1) ); R_dect_2 = R_tau( yrt_r_2 == R_peaks(2) ); R_dect_3 = R_tau( yrt_r_2 == R_peaks(3) ); R_dect = [ R_dect_1, R_dect_2, R_dect_3 ]; R_dect = sort( R_dect, 'ascend' ); disp(['Ä¿±êAµÄ²âÁ¿¾àÀëΪ£º', num2str( R_dect(1)), 'm']); disp(['Ä¿±êBµÄ²âÁ¿¾àÀëΪ£º', num2str( R_dect(2)), 'm']); disp(['Ä¿±êCµÄ²âÁ¿¾àÀëΪ£º', num2str( R_dect(3)), 'm']); disp('--------------------------------');
subplot(312) plot( R_tau, abs(yrt_r_1) );xlabel('¾àÀë/m');ylabel('·ù¶È');title('À×´ï»Ø²¨¾¹ýÂö³åѹËõ'); grid on;axis([0, 7500, 0, 800]); subplot(313) plot( R_tau, yrt_r_2 );xlabel('¾àÀë/m');ylabel('·ù¶È/dB');title('À×´ï»Ø²¨¾¹ýÂö³åѹËõ'); grid on;axis([0, 7500, -40, 1]); % ¾Ö²¿·Å´ó figure subplot(211) plot( R_tau, abs(yrt_r_1) );xlabel('¾àÀë/m');ylabel('·ù¶È');title('À×´ï»Ø²¨¾¹ýÂö³åѹËõ'); grid on;axis([2900, 3100, 250, 800]); subplot(212) plot( R_tau, yrt_r_2 );xlabel('¾àÀë/m');ylabel('·ù¶È/dB');title('À×´ï»Ø²¨¾¹ýÂö³åѹËõ'); grid on;axis([2900, 3100, -20, 1]);
%% -------------------------------------------------------------- %% toc
|