Raytraced Channel with Heterogeneous Conformal Array

58 Ansichten (letzte 30 Tage)
Dimitry Melnikov
Dimitry Melnikov am 6 Nov. 2024 um 18:30
Beantwortet: Suraj Kumar am 19 Nov. 2024 um 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);

Antworten (1)

Suraj Kumar
Suraj Kumar am 19 Nov. 2024 um 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!

Kategorien

Mehr zu Link-Level Simulation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by