Plotting the beamwidth from a matrix

17 次查看(过去 30 天)
Hi everyone, i have this given matrix (Elevation, azimuth & gain) in the attachment. How can i plot the 3db-beamwidth of this antenna pattern ? I just want to see the pattern and want to calculate the 3db-beamwidth. Thank you so much.
  3 个评论
Chibuzo Nnonyelu
Chibuzo Nnonyelu 2017-2-23
To calculate beamwidth, you need to have an idea of the mainlobe. In which direction does your mainlobe point in?

请先登录,再进行评论。

采纳的回答

Youssef  Khmou
Youssef Khmou 2014-9-5
Another way to compute the beamwidth is to plot the azimuth and Gain :
Data=load('data_ABS_antenna_CASMA.mat');
X=Data.ABS_antenna_gain;
Gain=X(:,3);
Azimuth=X(:,2);
[index,c]=find(Gain>=max(Gain)-3);
figure; plot(Azimuth(index),Gain(index),'*')
figure; plot(Azimuth,Gain,'*')
The beamwidth is 20° .

更多回答(2 个)

Star Strider
Star Strider 2014-9-5
Seeing the pattern is relatively easy, at least with the data available:
Ant = load('data_ABS_antenna_CASMA.mat');
Az = Ant.ABS_antenna_gain(:,1);
El = Ant.ABS_antenna_gain(:,2);
Gn = Ant.ABS_antenna_gain(:,3);
[X,Y,Z] = sph2cart(Az, El, Gn);
figure(1)
scatter3(X,Y,Z, '.')
grid on
The challenging part would be 3dB beamwidth, and interpolating it as a surface it you want to do that. Is ‘gain’ in dB now? What would you want to plot to look like (examples are helpful).
Before I tackle that, though, I suggest you see if one of the File Exchange contributions on antenna radiation pattern does what you want.

Youssef  Khmou
Youssef Khmou 2014-9-5
编辑:Youssef Khmou 2014-9-5
Here is the proposed solution, i suggest that you use the polar coordinates as the following :
Data=load('data_ABS_antenna_CASMA.mat');
X=Data.ABS_antenna_gain;
[x,y,z]=pol2cart(X(:,1),X(:,2),X(:,3));
plot3(x,y,z,'.','MarkerSize',2)
grid on
xlabel('X');
ylabel('Y');
zlabel('Gain [dB]');
The corresponding figure is attached below :
As the vector z is in decibel, you can search for the indexes of z that are above max(z)-3dB :
[index,value]=find(z>=max(z)-3)
Next you plot the matrix with corresponding indexes :
figure; plot3(x(index),y(index),z(index),'.')
grid on
xlabel('X');
ylabel('Y');
zlabel('Gain 3dB');
The result is in the second figure :
The beam width is in the square of 20^2 units of surface, you can deduce the angular value .
  2 个评论
Aftab Ahmed Khan
Aftab Ahmed Khan 2014-9-5
Hi Youssef, Thank you for the detailed reply. What do you mean by saying, that beam width is the square of 20^2 units of surface ? Can you explain to me ? Thanks once again.
Youssef  Khmou
Youssef Khmou 2014-9-5
in terms of Cartesian coordinates i mean. The final result is part of the ellipsoid , using the x,y, and z values you can calculate the theta beam width .

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Antennas and Electromagnetic Propagation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by