function [Radar_sub2,data_cen2,r_cen2] = mul_i2(Num,Radar_sub1,r_cen1,data_cen1)
%Num是级数,Radar_sub表示子孔径中心坐标,r_cen表示子孔径中心到子区域中心长度,data_cen表示中心线上采样点的回波值
%本函数实现FBP算法的上一级导出下一级新子孔径中心、新中心线长度、新子区域中心线上采样点回波值
subgroup = 2;
nan = 128;
imag_w = 12.8;
imag_l = 12.8;
delta = 0.1;
Radar_sub2 = zeros(nan/(subgroup.^Num),2);
Radar_sub2(:,1) = -10;
for i = 1:nan/(subgroup.^Num)
Radar_temp = 0;
for j = 1:subgroup
Radar_temp = Radar_sub1((i-1)*subgroup+j,2)+Radar_temp;
end
Radar_sub2(i,2) = Radar_temp/subgroup;
end %得到所有子孔径的中点坐标
D1 = imag_w/(subgroup.^(Num-1));
D2 = imag_w/(subgroup.^Num);
Num_cen = floor(D2*2/delta); %本级中心线上采样点数
data_cen2 = zeros(Num_cen,nan/(subgroup.^Num));
for i1 = 1:nan/(subgroup.^Num) %本级孔径的下标
for ii = 1:imag_w/D1 %上一级的子区域数
for jj = 1:imag_l/D1
for sub_i = 1:2 %本级将上一级的每个子成像区域分成2*2
for sub_j = 1:2
x_cen = (2*ii+sub_i-3)*D2+D2/2; %相对与整个成像区域的子区域中心点
y_cen = (2*jj+sub_j-3)*D2+D2/2;
r_cen2(2*ii+sub_i-2,2*jj+sub_j-2,i1) = sqrt((x_cen-Radar_sub2(i1,1)).^2+(y_cen-Radar_sub2(i1,2)).^2); %中心线
ro = r_cen2(2*ii+sub_i-2,2*jj+sub_j-2,i1)-D2+delta:delta:r_cen2(2*ii+sub_i-2,2*jj+sub_j-2,i1)+D2; %每个采样点极坐标,投影斜矩
Dk = (y_cen-Radar_sub2(i1,2))/(x_cen-Radar_sub2(i1,1));
sita = atan(Dk); %投影视角
cx = ro*cos(sita)+Radar_sub2(i1,1);
cy = ro*sin(sita)+Radar_sub2(i1,2); %极坐标转直角坐标
for m = 1:Num_cen
r1 = sqrt((cx(m)-Radar_sub1((i1-1)*subgroup+1,1)).^2+(cy(m)-Radar_sub1((i1-1)*subgroup+1,2)).^2);
r2 = sqrt((cx(m)-Radar_sub1((i1-1)*subgroup+2,1)).^2+(cy(m)-Radar_sub1((i1-1)*subgroup+2,2)).^2);
tk1 = round((r1 - r_cen1(ii,jj,(i1-1)*subgroup+1)+D1)/delta)+1;
tk2 = round((r2 - r_cen1(ii,jj,(i1-1)*subgroup+2)+D1)/delta)+1;
if tk1<=0
tk1 = 1;
elseif tk1 > 2*Num_cen
tk1 = 2*Num_cen;
end
if tk2<=0
tk2 = 1;
elseif tk2 > 2*Num_cen
tk2 = 2*Num_cen;
end
data_cen2(m,i1,2*ii+sub_i-2,2*jj+sub_j-2) = data_cen1(tk1,(i1-1)*subgroup+1,ii,jj) + data_cen1(tk2,(i1-1)*subgroup+2,ii,jj);
end
end
end
end
end
end
end
%
% function [Radar_sub] = Radar_set(Num,m,Radar)
%
% if Num >0
% for i = 1:nan/(subgroup.^Num)
% Radar_temp = 0;
% for j = 1:subgroup
% Radar_temp = Radar_set(Num-1,(i-1)*subgroup+j,Radar)+Radar_temp;
% end
% Num = Num -1;
% Radar_sub(i,2) = Radar_temp/subgroup;
% else
% Radar_sub(i,2) =
% end
% end %得到所有子孔径的中点坐标
% end
评论1