2D MIMO virtual antenna array with different tx and rx antennas
11 views (last 30 days)
Show older comments
Hi All!
I am trying to build up an antenna object, which consists of 3 TX and 4 RX antennas, which would eventually end up as a 2D 12 element virtual antenna array. The TX and RX antennas would have different design, therefore I need to import different characteristics for TX and RX.
My plan is to check and optimize the virtual antenna array pattern, however, I cannot combine the TX and RX array as a virtual array.
I can also combine the TX and RX patterns, but as far as I know, that is just the magnitude, and not the phase. I want to make sure, that the TX and RX phase pattern is properly taken into account.
Here is the code I have so far (the antennas are not real, just a simulated patch and vivaldi antenna data, I won't even use vivaldi antenna in the future). All the filepath and sensor positions info is deleted.
Many thanks in advance!
clear all;
clc;
%% Parameters
Freq = 62e9;
c = 3e8;
Lambda = c/Freq;
Phi = [0:2:360];
Theta = [0:2:180];
%% Create TX array
% Add Patch element
PatchMagPat = readmatrix('VVV.csv');
PatchPhasePat = readmatrix('WWW.csv');
PatchMag = reshape(PatchMagPat(:, 3), length(Phi), length(Theta))';
PatchPhase = reshape(PatchPhasePat(:, 3), length(Phi), length(Theta))';
AntElem_Patch = phased.CustomAntennaElement('PatternCoordinateSystem','phi-theta','PhiAngles',Phi,'ThetaAngles',Theta, ...
'MagnitudePattern',PatchMag,'PhasePattern',PatchPhase);
txarray = phased.ConformalArray('Element',AntElem_Patch,...
'ElementPosition','???');
txradiator = phased.Radiator('Sensor',txarray,'OperatingFrequency',Freq,...
'PropagationSpeed',c);
%% Create RX array
% Add Vivaldi element
VivaldiMagPat = readmatrix('XXX.csv');
VivaldiPhasePat = readmatrix('YYY.csv');
VivaldiMag = reshape(VivaldiMagPat(:, 3), length(Phi), length(Theta))';
VivaldiPhase = reshape(VivaldiPhasePat(:, 3), length(Phi), length(Theta))';
AntElem_Vivaldi = phased.CustomAntennaElement('PatternCoordinateSystem','phi-theta','PhiAngles',Phi,'ThetaAngles',Theta, ...
'MagnitudePattern',VivaldiMag,'PhasePattern',VivaldiPhase);
rxarray = phased.ConformalArray('Element',AntElem_Patch,...
'ElementPosition','???');
rxcollector = phased.Collector('Sensor',rxarray,'OperatingFrequency',Freq,...
'PropagationSpeed',c);
0 Comments
Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!