Raytraced Channel with Heterogeneous Conformal Array
60 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Suraj Kumar
le 19 Nov 2024 à 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 commentaires
Voir également
Catégories
En savoir plus sur Link-Level Simulation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!