# 2D beamforming simulation

11 views (last 30 days)
Anandu S on 21 Sep 2019
Commented: Anandu S on 24 Sep 2019
How to design an antenna with the below mentioned specifications
darova on 21 Sep 2019
What have you tried already? DO you have any attempts?
Anandu S on 21 Sep 2019
Edited: Anandu S on 21 Sep 2019
yah I did.
f=4e9;
theta1=-180:180;
phi1=-90:90;
[theta phi]=meshgrid(theta1,phi1);
theta3dB=30;
Am=21;
antennaElement = phased.CustomAntennaElement(...
'AzimuthAngles',theta1, ...
'ElevationAngles',phi1, ...
'PhasePattern',phasepattern);
fe = figure;
pattern(antennaElement,f);
and I got a pattern and I'm not sure whether this is correct or not!.The pattern shouldn't be a function of the elevation angle but does act in that way.

Honglei Chen on 23 Sep 2019
First of all, I don't think elevation is changing. This plot is in spherical coordinates, so the surface is curved, but the colormap shows that the value is constant along elevation dimension.
I see you are modeling the 5G antenna, I beleive there is an equation for azimuth direction too. Once you get this two, you can combine the two to form the 3D pattern of the antenna and set it in CustomAntennaElement.
HTH
Anandu S on 24 Sep 2019
I've already done the 3D pattern. I'am trying to compare the cdf of sinrs of 2D and 3D beamforming. The sinr map for 2D beamforming that I got is not the expected one. https://ieeexplore.ieee.org/document/7492925/authors#authors I'm actullay following this paper
clc;
clear all;
close all;
%centre cell
centreCell=txsite('Name','MathWorks Glasgow', ...
'Latitude',55.862787,...
'Longitude',-4.258523);
cellNumber=19;
cellDistances=zeros(1,cellNumber);
cellAngles = zeros(1,cellNumber);
isd=750;
%distances and angles for first ring of cells
cellDistances(2:7) = isd;
cellAngles(2:7) = 30:60:360;
%distances and angles for second ring of cells
cellDistances(8:13) = 2*isd*cosd(30);
cellAngles(8:13) = 0:60:300;
%distances and angles for second ring of cells
cellDistances(14:19) = 2*isd;
cellAngles(14:19) = 30:60:360;
%%
cellAngles= cellAngles.*(pi./180);
[x,y]=pol2cart(cellAngles,cellDistances);
scatter(x,y);
%%
numSectors = cellNumber*3;
sectLats = zeros(1,numSectors);
sectLons = zeros(1,numSectors);
sectNames = strings(1,numSectors);
sectAngles = zeros(1,numSectors);
SectorAngles = [30 150 270];
sectIn=1;
for cellIn = 1:cellNumber
% Compute site location using distance and angle from center site
[cellLat,cellLon] = location(centreCell, cellDistances(cellIn), cellAngles(cellIn));
% Assign values for each cell
for SectorAngle = SectorAngles
sectNames(sectIn) = "sect " + sectIn;
sectLats(sectIn) = cellLat;
sectLons(sectIn) = cellLon;
sectAngles(sectIn) = SectorAngle;
sectIn = sectIn + 1;
end
end
f=6e9;
%f=850e6;
antHeight=50;
txPowerdB=44;
txPower=10.^((txPowerdB-30)./10);
txs=txsite('Name',sectNames, ...
'Latitude',sectLats, ...
'Longitude',sectLons, ...
'AntennaAngle',sectAngles, ...
'AntennaHeight',antHeight, ...
'TransmitterFrequency',f, ...
'TransmitterPower',txPower);
%viewer=siteviewer;
show(txs);
%viewer.Basemap='openstreetmap';
theta1=-180:180;
phi1=-90:90;
[theta phi]=meshgrid(theta1,phi1);
phi3dB=10;
theta3dB=70;
phi_tilt=-20;
Am=30;
%AvdB=-min(12.*((phi-phi_tilt)./phi3dB).^2,Am);
antennaElement = phased.CustomAntennaElement(...
'AzimuthAngles',theta1, ...
'ElevationAngles',phi1, ...
'PhasePattern',phasepattern);
fe = figure;
pattern(antennaElement,f);
for tx=txs
tx.Antenna=antennaElement;
end
bw = 20e6; % 20 MHz bandwidth
rxNoiseFigure = 7; % dB
rxNoisePower = -174 + 10*log10(bw) + rxNoiseFigure;
rxGain = 0; % dBi
rxAntennaHeight = 1.5; % m
% Display SINR map
if isvalid(fe)
close(fe)
end
sinr(txs,'freespace', ...
'MaxRange',isd, ...
'Resolution',isd/20)
I should get a sinr map like this