How to calculate array factor of UNIFORM CIRCULAR ARRAY or CONCENTRIC CIRCULAR ARRAY?
이전 댓글 표시
How can I calculate the array factor of uniform circular array OR concentric circular array in matlab at az=0 ele=0?
% MATLAB Code from Sensor Array Analyzer App
% Generated by MATLAB 9.10 and Phased Array System Toolbox 4.5
% Generated on 22-Jul-2021 11:49:37
% Create a concentric array
close all
shift = 0;
l2=0
l4=1
% The multiplication factor for lambda units to meter conversion
radius = [0.5 1] * 0.0105263157894737;
n = [4 8];
if length(n) == 1
n = n*ones(1, length(radius));
end
Nelements = sum(n);
stop = cumsum(n);
start = stop - n + 1;
actual_pos = zeros(3, Nelements);
for idx = 1:length(n)
angles = (0:n(idx)-1)*360/n(idx);
angles = angles + shift;
shift = sum(angles(1:2))/2;
pos = [zeros(1, length(angles));cosd(angles);sind(angles)];
actual_pos(:, start(idx):stop(idx)) = pos*radius(idx);
end
elNormal = [ones(1,Nelements);zeros(1,Nelements)];
Array = phased.ConformalArray('ElementPosition', actual_pos, ...
'ElementNormal', elNormal,'Taper',[exp(i*l2*0) exp(i*l2*1.5707) exp(i*l2*3.1415) exp(i*l2*4.7123) exp(i*l4*0) exp(i*l4*0.7853) exp(i*l4*1.5707) exp(i*l4*2.356) exp(i*l4*3.1415) exp(i*l4*3.9269) exp(i*l4*4.7123) exp(i*l4*5.4977)]);
% Create an isotropic antenna element
Elem = phased.IsotropicAntennaElement;
Elem.FrequencyRange = [0 28500000000];
Array.Element = Elem;
% Assign Frequencies and Propagation Speed
Frequency = 28500000000;
PropagationSpeed = 300000000;
% Create Figure
% Plot Array Geometry
figure;
viewArray(Array,'ShowNormal',false,...
'ShowTaper',false,'ShowIndex','None');
% Calculate Steering Weights
Freq3D = 28500000000;
% Find the weights
w = ones(getNumElements(Array), length(Frequency));
% Plot 3d graph
format = 'polar';
figure;
pattern(Array, Freq3D , 'PropagationSpeed', PropagationSpeed,...
'Type','directivity', 'CoordinateSystem', format,'weights', w(:,1));
u=pattern(Array, Freq3D , 'PropagationSpeed', PropagationSpeed,...
'Type','directivity', 'CoordinateSystem', format,'weights', w(:,1));
% Find the weights
w = ones(getNumElements(Array), length(Frequency));
% Plot 2d elevation graph
format = 'polar';
cutAngle = 0;
figure;
pattern(Array, Frequency, cutAngle, -90:90, 'PropagationSpeed', PropagationSpeed,...
'Type', 'directivity', 'CoordinateSystem', format ,'weights', w);
format = 'rectangular';
cutAngle = 0;
figure;
pattern(Array, Frequency, cutAngle, -90:90, 'PropagationSpeed', PropagationSpeed,...
'Type', 'directivity', 'CoordinateSystem', format ,'weights', w);
We have inbuilt function arrayFactor(object,freq).
I don't know what is the object in my case?
According to me it's Array but it's not. Then what is it?
Thank you
댓글 수: 10
FARHA KHAN
2021년 12월 23일
According to the documentation of arrayFactor, it should be this:
object — Input antenna array
Input antenna array object, specified as an object.
It then provides an example:
r = rectangularArray; arrayFactor (r,70e6)
FARHA KHAN
2021년 12월 24일
FARHA KHAN
2021년 12월 24일
Rik
2021년 12월 24일
You don't need to use @ every comment. I will see it when I get round to it, an @ will not speed that up.
The most probable reason is that you don't have a new enough release and/or you don't have the appropriate toolbox installed.
FARHA KHAN
2021년 12월 24일
FARHA KHAN
2021년 12월 27일
Rik
2021년 12월 27일
Did you install the antenna toolbox as well? You should be able to verify this with the ver command.
FARHA KHAN
2021년 12월 27일
FARHA KHAN
2021년 12월 28일
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Array Geometries and Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
