我试图在MATLAB中计算阿基米德螺旋各向同性天线阵列的功率模式的二维极坐标图。这需要具有不同大小的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数组执行算术运算? 谢谢。
帕特里克
答案 0 :(得分:1)
代码本身不起作用,因为theta和phi的大小不同。它们需要具有相同的大小才能执行元素乘法".*"
操作。或者,它们需要是兼容的大小才能进行矩阵式乘法"*"
。你也没有,所以你的问题不是代码,而是你对天线阵方程的解释。我们无法帮助您。
我猜测数组方程式可以让你在phi和theta的所有组合中进行置换,这样你就可以在phi和theta的一个或多个维度上求和。因此,您可能不得不引入for
循环和/或sum()
操作。由于我不知道你的天线阵方程,我无能为力。你必须回去看看物理学。一旦更好地理解了阵列天线方程,您就能够更好地编码它们。