%计算并画出SFW的合成HRR像
%该函数使用长度为步长两倍的逆傅里叶变化IFFT
function [hl] = hrr_profile(nscat,scat_range,scat_rcs,n,deltaf,prf,v,rnote,winid)
%nscat组成目标散射体的个数
%scat_range包含散射体距离的向量
%scat_rcs 包含散射体RCS的向量
%n步进数
%deltaf步进频率
%prf SFW的PRF
%v 目标速度
%rnote 像起始距离
%winid > 0为汉明窗 <0不加窗
%hl 距离像:是指目标散射中心在雷达视线上的投影,反映目标各散射中心间的径向位置关系,体现目标的部分结构特征,是雷达感知、识别目标的重要途径。
c = 3e8; %光速
num_pulses = n; %步进数
SNR_dB = 40;
nfft = 256; %IFFT点数
carrier_freq = 9.5e9; %载波频率
freq_step = deltaf; %步进频率
V = v; %雷达速度
PRI = 1./prf; %脉冲重复间隔
if (nfft>2*num_pulses)
num_pulses = nfft/2;
end
%初始化矩阵
Inphase = zeros((2*num_pulses),1);
Quadrature = zeros((2*num_pulses),1);
Inphase_tgt = zeros(num_pulses,1);
Quadrature_tgt = zeros(num_pulses,1);
IQ_freq_domain = zeros((2*num_pulses),1);
Weighted_I_freq_domain = zeros((num_pulses),1);
Weighted_Q_freq_domain = zeros((num_pulses),1);
Weighted_IQ_freq_domain = zeros((2*num_pulses),1);
Weighted_IQ_time_domain = zeros((2*num_pulses),1);
abs_Weighted_IQ_time_domain = zeros((2*num_pulses),1);
dB_abs_Weighted_IQ_time_domain = zeros((2*num_pulses),1);
taur = 2.*rnote/c; %起始时间延迟
for jscat = 1:nscat
ii = 0;
for i = 1:num_pulses
ii = ii + 1;
rec_freq = ((i-1)*freq_step); %fi
%实数分量 利用欧拉公式
Inphase_tgt(ii) = Inphase_tgt(ii) + sqrt(scat_rcs(jscat))*cos(-2*pi*rec_freq*(2.*scat_range(jscat)/c-2*(V/c)*((i-1)*PRI + taur/2 + 2*scat_range(jscat)/c)));
%虚部分量
Quadrature_tgt(ii) = Quadrature_tgt(ii) + sqrt(scat_rcs(jscat))*sin(-2*pi*rec_freq*(2.*scat_range(jscat)/c-2*(V/c)*((i-1)*PRI + taur/2 + 2*scat_range(jscat)/c)));
end
end
if (winid >= 0) %加汉明窗
window(1:num_pulses) = hamming(num_pulses);
else
window(1:num_pulses) = 1;
end
Inphase = Inphase_tgt;
Quadrature = Quadrature_tgt;
Weighted_I_freq_domain(1:num_pulses) = Inphase(1:num_pulses).*window';
Weighted_Q_freq_domain(1:num_pulses) = Quadrature(1:num_pulses).*window';
Weighted_IQ_freq_domain(1:num_pulses) = Weighted_I_freq_domain + Weighted_Q_freq_domain*j; %虚部和实部的合并
Weighted_IQ_freq_domain(num_pulses:2*num_pulses) = 0.+0.i;
Weighted_IQ_time_domain = (ifft(Weighted_IQ_freq_domain)); %换算时域上
abs_Weighted_IQ_time_domain = abs(Weighted_IQ_time_domain);
dB_abs_Weighted_IQ_time_domain = 20*log10(abs_Weighted_IQ_time_domain) + SNR_dB;
%计算未定义的范围窗口大小
Ru = c/2/deltaf;
hl = dB_abs_Weighted_IQ_time_domain;
numb = 2*num_pulses;
delx_meter = Ru/numb;
xmeter = 0:delx_meter:Ru-delx_meter;
plot(xmeter,dB_abs_Weighted_IQ_time_domain,'k');
xlabel('相对距离/m');
ylabel('一维距离像');
grid