Raytraced Channel with Heterogeneous Conformal Array
60 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dimitry Melnikov
el 6 de Nov. de 2024 a las 18:30
Respondida: Suraj Kumar
el 19 de Nov. de 2024 a las 11:25
I'm trying to simulate a raytraced MIMO channel, where the elements on each array have different patterns.
I found this answer that's pretty similar to what I'm looking for, but the phased.HeterogeneousConformalArray doesn't seem to be compatible with the Communications toolbox -- which looks like it's expecting an array of uniform elements (between arrayConfig, phased.CustomAntennaElement, phased.ConformalArray, etc.).
Is there a way to efficiently raytrace a channel with arrays holding unique elements (such as a phased.CustomAntennaElement generated from known calculated/measured magnitude & phase patterns)? Or is the only option to use raytrace, radiator, and collector on each ray?
Here's a snippet of what I'm trying to do (but fails due to working with a non-homogeneous array):
% Physical constant
fc = 5.8e9;
% Generate RX Array with arbitrary elements
rx_elem = {design(monopole, fc), design(helix, fc), design(fractalCarpet, fc), design(cloverleaf, fc)};
rx_pos = [0, 0, 0, 0; 1, 2, 3, 4; 0, 0, 0, 0];
rxArray = phased.HeterogeneousConformalArray(...
"ElementSet", rx_elem,...
"ElementPosition", rx_pos,...
"ElementIndices", [1, 2, 3, 4]);
% Generate TX Array with one element
txArray = arrayConfig("Size",[1 numSTAant]);
% Set up the TX & RX:
tx = txsite("cartesian", ...
"Antenna",txArray, ...
"AntennaPosition", [10; 0; 0], ...
'TransmitterFrequency',fc);
rx = rxsite("cartesian", ...
"AntennaPosition", [0; 0; 0], ...
"Antenna",rxArray);
% Start up the Ray Tracing Model:
pm = propagationModel("raytracing", ...
"CoordinateSystem","cartesian", ...
"Method","sbr", ...
"AngularSeparation","low", ...
"SurfaceMaterial","plasterboard");
rays = raytrace(tx,rx,pm);
%% Generate the Raytraced Communication Channel
rtChan = comm.RayTracingChannel(rays,tx,rx);
0 comentarios
Respuestas (1)
Suraj Kumar
el 19 de Nov. de 2024 a las 11:25
Hi Dimitry,
To simulate a raytraced MIMO channel with arrays that have unique elements, you need to ensure that the elements are correctly set up and that the ray tracing can handle the heterogeneous nature of your arrays.
You can use phased.CustomAntennaElement to define custom radiation pattern explicitly.Please refer to the following code snippet :
customElem = phased.CustomAntennaElement('FrequencyVector', [fc], ...
'MagnitudePattern', patternMagnitude, ...
'PhasePattern', patternPhase);
You can replace the "patternMagnitude" and "patternPhase" with the data and adjust the "FrequencyVector" and add other parameters as required .
To learn more about custom antenna element, please refer to the following documentation:
Hope this helps!
0 comentarios
Ver también
Categorías
Más información sobre Link-Level Simulation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!