您的位置:首页 > 编程语言 > MATLAB

SAR雷达Yamaguchi四分量分解MATLAB代码(注释部分为极化角优化)

2017-04-12 14:07 239 查看
function yamachuchi_matrix = yamaguchi_test(T,OA)
%对于给定的T矩阵做yamaguchi分解,返回结果是个各个散射的能量是一个row X col X 4的矩阵
%P_s(单词散射),P_d(二面角),P_v(体散射),P_c(旋状体)

row=size(T.T11,1);
col=size(T.T11,2);
i=sqrt(-1);
yamachuchi_matrix = zeros(row,col,4);
for p=1:col
for q=1:row

tmp(1,1) = T.T11(q,p);
tmp(1,2) = T.T12_real(q,p)+i*T.T12_imag(q,p);
tmp(1,3) = T.T13_real(q,p)+i*T.T13_imag(q,p);
tmp(2,1) = conj(tmp(1,2));
tmp(2,2) = T.T22(q,p);
tmp(2,3) = T.T23_real(q,p)+i*T.T23_imag(q,p);
tmp(3,1) = conj(tmp(1,3));
tmp(3,2) = conj(tmp(2,3));
tmp(3,3) = T.T33(q,p);

P_c = abs(2*imag(tmp(2,3))/i);
alfa = tmp(1,3)*cos(2*OA(q,p))/real(tmp(2,3));
P_d = ((1+abs(alfa)^2)*real(tmp(2,3)))/(cos(2*OA(q,p))*sin(2*OA(q,p)));
P_v = 3*(tmp(3,3)-(P_d*(sin(2*OA(q,p)))^2)/(1+abs(alfa)^2)- P_c/2);
beta = (tmp(1,2)-(P_d*alfa*cos(2*OA(q,p)))/(1+abs(alfa)^2))/(tmp(1,1)-P_v/3-(P_d*abs(alfa)^2)/(1+abs(alfa)^2));
P_s = (1+abs(beta)^2)*(tmp(1,1)-P_v/3-(P_d*abs(alfa)^2)/(1+abs(beta)^2));

yamachuchi_matrix(q,p,1) = abs(P_s);
yamachuchi_matrix(q,p,2) = abs(P_d);
yamachuchi_matrix(q,p,3) = abs(P_v);
yamachuchi_matrix(q,p,4) = abs(P_c);

end
end

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: