I've worked through a lot of examples, it is easy to create a plot for a phased-antenna array, one which is scanned to several angles using the plotResponse function. I'm sure it is easy to do what I want, just not for me.... which is get the numbers plotted on the plot. They are directivity referenced, etc. Values from a 3D plot would be helpful too. this command line is used to retrieve the actual numbers which represent the pattern: "el_pat = abs(step(sArrayResponse,fmax,el_ang));" The step function seems to be the answer to all problems of the world, but if I want to put my own weights to point the main beam in a particular direction, meaning in for ea element/s for the phases and possibly amplitude, I have not figured out how I can get just the pattern numbers (angle-magnitude) out afterwards. I would also like the values output for a 3D plot as well. This code produces a pattern I want the actual numbers from: frequency = 3e9 propagationSpeed = physconst('lightspeed') h = phased.URA; h.ElementSpacing = [0.0408163265306122 0.0408163265306122]; h.Size = [8 16]; h.Lattice = 'Rectangular'; % The element is just a cosine element h.Element = ... phased.CosineAntennaElement('CosinePower',[2 2]); %Assign steering angles, frequencies and propagation speed steeringAngle = [0;30]; %Steering angle %Calculate Steering Weights w = zeros(getNumElements(h), length(frequency)); elementVector = phased.SteeringVector('SensorArray',h, ... 'PropagationSpeed', 300000000,... 'IncludeElementResponse',true);%SV steering vector %Find the weights and the strings for the legend for idx = 1:length(frequency) w(:, idx) = step(elementVector, frequency(idx), steeringAngle(:, idx)); end figure; plotResponse(h, frequency, propagationSpeed, 'Unit','dbi', ... 'Format', 'Line', 'RespCut', 'El', 'weights', w);
Kshitij Singh answered .
2025-11-20
el = -90:90; az = zeros(1,numel(el)); D = directivity(h,frequency,[az;el],'Weights',w);
plot(el,D)
myCurve = plotResponse(h, frequency, propagationSpeed, 'Unit','dbi', ...
'Format', 'Line', 'RespCut', 'El', 'weights', w);
el = get(myCurve,'XData');
D = get(myCurve,'YData');