方向图绘制函数程序解析:Matlab代码详解
% 以下为绘制方向图函数程序\nv = zeros(N*M, length(theta)*length(phi));\nfor ii = 1 : length(theta)\n for jj = 1 : length(phi)\n k = 2 * pi / lambda * [sin(theta(ii) * pi / 180) * cos(phi(jj) * pi / 180) + lambda / lambdag, sin(theta(ii) * pi / 180) * sin(phi(jj) * pi / 180) + lambda / lambdag, 0].';\n v(:,(ii-1)length(phi)+jj) = exp(1i * k.' * p); % x方向阵因子\n end\nend\nb = reshape(abs(v.' * M0(:)), length(theta), length(phi)) / sqrt(N * M); % 方向图\n\nB1 = max(abs(b(:))); % 获取在目标方向的最大值用于验证\nB = 20 * log10(abs(b)); % 方向图对数化--dB形式\n解释以上程序中每一句涵义内容:- 第一行定义了一个大小为NM x (length(theta)length(phi))的零矩阵v,用于存储每个方向上的阵因子值。\n- 第三行开始一个嵌套循环,循环变量ii用于遍历theta数组,循环变量jj用于遍历phi数组。\n- 第四行计算波矢k的数值,其中lambda表示波长,theta(ii)和phi(jj)分别表示当前方向的极角和方位角。\n- 第五行计算当前方向上的阵因子,并将其保存在v矩阵的相应列中。\n- 第九行将v矩阵展开为一维向量形式,并与M0矩阵做内积得到方向图b的幅值。\n- 第十行将方向图b进行归一化处理,除以sqrt(NM)。\n- 第十三行计算方向图b中的最大值B1,用于验证。\n- 第十四行将方向图B转换为对数形式(以dB为单位)。
原文地址: https://www.cveoy.top/t/topic/pviP 著作权归作者所有。请勿转载和采集!