3dB beamwidth from matrix
显示 更早的评论
I have a matrix H(360x180) containing the energy levels in dB. I have the following 3D-beampattern plotted from H:
How can I find the 3dB beamwidth (in degrees across elevation & azimuth) of the mainlobe?
采纳的回答
更多回答(1 个)
Bjorn Gustavsson
2012-2-2
You could use contourc:
C = contourc(X,Y,H,[-3 -3]);
where you get the 3-dB curve from the C array that is built thisly:
C = [level1 x1 x2 x3 ... level2 x2 x2 x3 ...;
pairs1 y1 y2 y3 ... pairs2 y2 y2 y3 ...]
HTH
7 个评论
zozo
2012-2-2
Bjorn Gustavsson
2012-2-2
OK, the C-array contains each contour curve. The format is as above, level1 means the iso-value of that contour (-3 in your case, compare to the elevation of a topographic map if you will), pairs1 is an integer denoting the number of (x,y) pairs there is in this contour-curve. So to plot contour-curve1 you should do something like this:
plot(C(1,2:(1+C(2,1))),C(2,2:(1+C(2,1))))
after doing this for the all contour-curves you'll have your 3-dB level.
According to your plot it looked as if the 3-dB line was not all that simple, so I thought you had to do it this way. From there you have to decide how to determine the 3-dB beam-width.
HTH
zozo
2012-2-3
Bjorn Gustavsson
2012-2-3
Have you tried my suggestions?
zozo
2012-2-4
Bjorn Gustavsson
2012-2-4
Zozo, I think you got me wrong.
Even the main lobe might not be nice-n-elliptical. If you try my suggestion you will see if it is, or if it is more irregular, and if you have side-lobes with more than -3 dB gain.
THEN, you can judge if it is just to take any 2 points on opposing sides of the beam-centre or if you have to be more clever - like for example check the dot-product of the line-of-sight vectors between "all" unique combinations to find the one with largest beam-width, the average beam-width and whatnot.
HTH.
Mohammad Khishe
2012-9-21
类别
在 帮助中心 和 File Exchange 中查找有关 Detection 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!