使用Cramer-Rao和Athley边界分析到达角阵列的质量(Matlab代码实现)

           目录

1 概述

2 运行结果

3 参考文献

‍4 Matlab代码


1 概述

此代码用于使用Cramer-Rao和Athley边界分析到达角阵列的质量。

2 运行结果

使用Cramer-Rao和Athley边界分析到达角阵列的质量(Matlab代码实现)_第1张图片

 

3 参考文献

[1]王凯欣. 仿射相位恢复的Cramer-Rao下界及算法研究[D].华北水利水电大学,2022.DOI:10.27144/d.cnki.ghbsc.2022.000667.

‍4 Matlab代码

主函数部分代码:

clear;
rng(1);

descriptor = 'CubeExample';

lam = 2;  % wavelength
TrueAzEl = [30,45];
TruePol = [0; 0];    % vertical pol

% Cube Geometry.  Build one face then replicate by displacement and 
% rotation.

L = 5;
npface = 5;   % elements per face

Rproto = L* [rand(2,npface)-0.5; zeros(1,npface)];
Eulproto = [360*rand(1,npface); zeros(2,npface)];

% top--just raise it up

RTop = Rproto + [0;0;L]*ones(1,npface);
EulTop = Eulproto;

% +X face

QgX = euler2Q(0,-90,0);
RXp = QgX*RTop + L/2*[-1;0;1]*ones(1,npface);

EulXp = 0*EulTop;
for i = 1:npface
    Qpi = euler2Q(Eulproto(1,i),Eulproto(2,i),Eulproto(3,i));
    [az,el,roll] = Q2euler(QgX * Qpi);
    EulXp(:,i) = [az; el; roll];
end

% -X face

QgX = euler2Q(0,90,0);
RXm = QgX*RTop + L/2*[1;0;1]*ones(1,npface);

EulXm = 0*EulTop;
for i = 1:npface
    Qpi = euler2Q(Eulproto(1,i),Eulproto(2,i),Eulproto(3,i));
    [az,el,roll] = Q2euler(QgX * Qpi);
    EulXm(:,i) = [az; el; roll];
end

% +Y face

QgY = euler2Q(0,0,-90);
RYp = QgY*RTop + L/2*[0;-1;1]*ones(1,npface);

EulYp = 0*EulTop;
for i = 1:npface
    Qpi = euler2Q(Eulproto(1,i),Eulproto(2,i),Eulproto(3,i));
    [az,el,roll] = Q2euler(QgY * Qpi);
    EulYp(:,i) = [az; el; roll];
end

% -Y face

QgY = euler2Q(0,0,90);
RYm = QgY*RTop + L/2*[0;1;1]*ones(1,npface);

EulYm = 0*EulTop;
for i = 1:npface
    Qpi = euler2Q(Eulproto(1,i),Eulproto(2,i),Eulproto(3,i));
    [az,el,roll] = Q2euler(QgY * Qpi);
    EulYm(:,i) = [az; el; roll];
end

你可能感兴趣的:(优化算法,matlab,开发语言)