0

我正在尝试在 MATLAB 中计算各向同性天线的阿基米德螺旋阵列的功率模式的 2D 极坐标图。这需要一个大小不同的 theta 和 phi 数组。

我正在使用的代码如下:

clear all
close all
clc
r=27000;  
phi=0:.02:2*pi;
theta=0:.02:pi/2;
px=r.*cos(phi);
py=r.*sin(phi);
wL=1;
k=(2*pi)/wL;
d=px.*sin(theta).*cos(phi)+py.*sin(theta).*sin(phi);
phase=0;
psi=k.*d+phase;

N=27;
PowPatt=(sin(N.*(psi./2))./(N.*sin(psi./2))).^2;
polar(psi,PowPatt)

自然我得到以下错误:

??? Error using ==> times
Matrix dimensions must agree.

Error in ==> powerpattern at 11
d=px.*sin(theta).*cos(phi)+py.*sin(theta).*sin(phi);

无论如何要更改我的代码以对 theta 和 phi 数组执行算术运算?谢谢你。

帕特里克

4

1 回答 1

1

代码本身不起作用,因为 theta 和 phi 的大小不同。它们需要具有相同的大小才能执行逐元素乘法".*"运算。或者,它们需要兼容的大小才能进行矩阵乘法"*"。你也没有,所以你的问题不在于代码,而在于你对天线阵列方程的解释。那里我们帮不了你。

我猜测数组方程打算让您在 phi 和 theta 的所有组合中进行置换,以便您可以对 phi 和 theta 的一个或多个维度求和。因此,您可能不得不引入for循环和/或sum()操作。因为我不知道你的天线阵列方程,所以我无能为力。你必须回去看看物理。一旦您更好地理解了阵列天线方程,您将能够更好地对其进行编码。

于 2014-11-23T16:51:00.490 回答