Recreating embedded antenna pattern from isolated element and S-parameter matrix

조회 수: 9 (최근 30일)
Joao
Joao 2024년 8월 5일
답변: Ronit 2024년 9월 16일
My objective is to calculate the active element pattern of the central element in a rectangular array. According to Eq. (17) in David M. Pozar's paper, "A Relation Between the Active Input Impedance and the Active Element Pattern of a Phased Array," this equation provides the embedded pattern of the mth antenna. While I believe I have correctly implemented this function, the results are not as expected. If anyone has experience with similar calculations, I would appreciate any insights or feedback on why there is a discrepancy between complexEmbPattern and complexEmbPattern_.
The conversion from phi/ theta to elevation/azimuth has been done according to Matlab's: Antenna Toolbox Coordinate System - MATLAB & Simulink (mathworks.com)
Thank you in advance for your assistance!
Physical Constants:
freq = 30e9;
c = physconst('lightspeed');
lambda = c/freq;
wn = 2*pi/lambda;
azimuth = -180:5:180;
elevation = -90:5:90;
Isolated Element:
element = dipole;
element.Length = 0.47*lambda;
element.Width = cylinder2strip(0.191e-3);
figure;
show(element);
isoEfieldPattern = pattern(element, freq, azimuth, elevation, ...
'Type', 'efield');
isoPhasePattern = pattern(element, freq, azimuth, elevation, ...
'Type', 'phase', ...
'Polarization', 'V');
complexIsoPattern = isoEfieldPattern.*exp(1j*deg2rad(isoPhasePattern));
Embedded Element Pattern:
N = 3;
M = 3;
K = M*N;
a = 0.5*lambda;
b = 0.5*lambda;
array = rectangularArray;
array.Element = element;
array.Element.Tilt = 90;
array.Element.TiltAxis = 'Y';
array.Size = [N M];
array.ColumnSpacing = a;
array.RowSpacing = b;
array.Tilt = 90;
array.TiltAxis = 'Y';
figure;
show(array);
ElemIndex = (prod(array.Size) - 1)/2 + 1;
Zinf = 76 + 1i*31;
embEfieldPattern = pattern(array, freq, azimuth, elevation, ...
'ElementNumber', ElemIndex, ...
'Termination', real(Zinf), ...
'Type', 'efield');
embPhasePattern = pattern(array, freq, azimuth, elevation, ...
'ElementNumber', ElemIndex, ...
'Termination', real(Zinf), ...
'Type', 'phase', ...
'Polarization', 'V');
complexEmbPattern = embEfieldPattern.*exp(1j*deg2rad(embPhasePattern));
Sparam = sparameters(array, freq, real(Zinf)).Parameters;
complexEmbPattern_ = ones(size(elevation,2),size(azimuth,2));
m = ElemIndex;
for az = 1:length(azimuth)
for el = 1:length(elevation)
u = wn*a*cosd(elevation(el))*sind(azimuth(az));
v = wn*b*sind(elevation(el));
i_m = mod(m - 1, M) + 1;
j_m = floor((m - 1)/M) + 1;
sum = 0;
for n = 1:K
i_n = mod(n - 1, M) + 1;
j_n = floor((n - 1)/M) + 1;
sum = sum + Sparam(n, m)*exp(1i*((i_n - 1)*u + (j_n - 1)*v));
end
complexEmbPattern_(el, az) = complexIsoPattern(el, az)*(exp(1i*((i_m - 1)*u + (j_m - 1)*v)) + sum);
end
end

답변 (1개)

Ronit
Ronit 2024년 9월 16일
Hello Joao,
To troubleshoot the discrepancy between complexEmbPattern and complexEmbPattern_, please consider the following suggestions:
  1. Coordinate System: Ensure that the conversion from "azimuth/elevation" to the coordinate system and the indexing for the "azimuth" and "elevation" arrays are implemented correctly.
  2. Phase Calculation: The "deg2rad" function is correct but ensure that all phase-related calculations consistently use radians.
  3. Test with Simplified Scenarios: Try reducing the array size (e.g., 2x2) and spacing to simplify calculations and observe if the issue persists. Compare "complexEmbPattern" and "complexEmbPattern_" for specific angles to pinpoint where they diverge.
  4. Debugging: Use MATLAB's debugging tools, such as breakpoints and the command window, to step through the code and inspect variable values in real-time.
If these steps do not resolve the issue, consider sharing specific values or outputs where the patterns differ significantly. This can help in diagnosing the problem further. Additionally, reviewing the MATLAB documentation on Phased Aarray System Toolbox might provide more insights into handling phased array calculations.
Please find the documentation link for Phased Aarray System Toolbox: https://www.mathworks.com/help/phased/index.html
I hope it helps with your query!

카테고리

Help CenterFile Exchange에서 Get Started with Antenna Toolbox에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by