В этом примере вычисляются и сравниваются передающие и приемные коллекторы для базовой полуволновой дипольной антенной решетки. Решетчатый коллектор является фундаментальным свойством антенных решеток, как в конфигурациях передачи, так и приема. Многообразия передачи и приема теоретически одинаковы из-за теоремы о взаимности. Этот пример подтверждает это равенство, обеспечивая важную проверку вычислений, выполняемых антенной Toolbox™.
Определите переменные, необходимые для вычисления магистралей передачи и приема антенны. Частота для анализа составляет 300 МГц, что приводит к длине волны в свободном пространстве приблизительно 1. Определите углы сдвига для азимута и отметки. Эти переменные будут использоваться для вычисления положений в дальнем поле антенны, в котором вычисляются электрическое и магнитное поля.
fc = 3e8;
lambda = physconst('lightspeed')/fc;
R = 100*lambda;
M = 4;
ZL = [];
phi = 5:5:175;
psi = 0:5:80;
nphi = length(phi);
npsi = length(psi);
np = nphi*npsi;
PHI = kron(ones(1,npsi),pi/180*phi);
PSI = kron(pi/180*psi,ones(1,nphi));По переменным азимута и угла места вычисляют точки на сфере радиусом и единичные векторы.
antennapos = [[-(M-1)/2:(M-1)/2]*lambda/2;zeros(2,M)]'; x = R*cos(PSI).*cos(PHI); y = R*cos(PSI).*sin(PHI); z = R*sin(PSI); Points = [x;y;z]; h = [-sin(PHI);cos(PHI);zeros(size(PHI))]; v = [-cos(PHI).*sin(PSI);-sin(PHI).*sin(PSI);cos(PSI)]; u = [cos(PHI).*cos(PSI);sin(PHI).*cos(PSI);sin(PSI)];
Создайте полуволновую дипольную антенну, расположенную вертикально вдоль оси Z. Этот элемент используется для построения конформного массива диполей, расположенных в линейной конфигурации с интервалом в половину длины волны между элементами.
d = dipole('Length',lambda/2,'Width',lambda/200); elem = [d,d,d,d]; dA = conformalArray('Element',elem,'ElementPosition',antennapos); figure; show(dA)

Используйте поля EHfields для вычисления векторов электрического и магнитного полей в режиме передачи для массива. Расчет поля на частоте 300 МГц производится в точках наблюдения, указанных на сфере дальнего поля, и с учетом вклада вертикальной поляризации явно, так как дипольная ориентация является вертикальной. Анализ проводится таким образом, что возбуждаемый элемент имеет нагрузку последовательно с источником напряжения, а все остальные элементы, не находящиеся под возбуждением, не имеют никакого внутреннего импеданса.
nomLoad = lumpedElement('Impedance',ZL); actLoad = lumpedElement('Impedance',50); for i=[1,1:M] % setup loads for m=1:M dA.Element(m).Load = nomLoad; end dA.Element(i).Load = actLoad; % setup active element ampTaper = zeros(1,M); ampTaper(i) = 1; dA.AmplitudeTaper = ampTaper; [E,H] = EHfields(dA,fc,Points); Etx(i,:) = sum(E.*v); end
Для вычисления принимающего коллектора рассмотрим плоскую волну, падающую на матрицу с той же поляризацией электрического поля, но противоположную по направлению режиму передачи. Используйте объект planeWaveExcitation и функцию feedCurrent для вычисления тока, проходящего через питающие каналы в ответ на волну плоскости столкновения.
nomLoad = lumpedElement('Impedance',ZL); for m=1:M dA.Element(m).Load = nomLoad; end for n = 1:np dirVec = -u(:,n); polVec = v(:,n); p = planeWaveExcitation('Element',dA,'Direction',dirVec,'Polarization',polVec); Erx(:,n) = feedCurrent(p,fc).'; end
Вычислите нормализованную ошибку между коллекторами передачи и приема для каждого элемента массива. Изменить форму ошибки для построения графика в зависимости от углов азимута и отметки соответственно
for i=1:M a(i) = Erx(i,:)/Etx(i,:); err(i,:) = abs(Erx(i,:)-a(i)*Etx(i,:)); mse = sqrt(mean(abs(a(i)*Etx(i,:)).*abs(Erx(i,:)))); err(i,:) = err(i,:)/mse; Etx(i,:) = a(i)*Etx(i,:); end ETX = reshape(Etx,M,nphi,npsi); ERX = reshape(Erx,M,nphi,npsi);
for i = 1:M ETXmag(i,:,:) = abs(squeeze(ETX(i,:,:)))'; ETXphase(i,:,:) = 180/pi*angle(squeeze(ETX(i,:,:)))'; ERXmag(i,:,:) = abs(squeeze(ERX(i,:,:)))'; ERXphase(i,:,:) = 180/pi*angle(squeeze(ERX(i,:,:)))'; end ERR = 20*log10(reshape(mean(err),nphi,npsi));
Передающие и приемные коллекторы показывают большую степень сходства в амплитудных и фазовых графиках. Это подтверждается графиком ошибок с максимальной погрешностью приблизительно -40 дБ по размаху углов азимута и отметки.
for i=1:M figure; subplot(221) imagesc(phi,psi,squeeze(ETXmag(i,:,:))); colorbar colormap('jet') xlabel('Azimuth [deg]','LineWidth',6); ylabel('Elevation [deg]','LineWidth',6); title(['Tx magnitude pattern, ant ',num2str(i)],'FontSize',10) subplot(222) imagesc(phi,psi,squeeze(ETXphase(i,:,:))); colorbar colormap('jet') xlabel('Azimuth [deg]','LineWidth',6); ylabel('Elevation [deg]','LineWidth',6); title(['Tx phase pattern, ant ',num2str(i)],'FontSize',10) subplot(223) imagesc(phi,psi,squeeze(ERXmag(i,:,:))); colorbar colormap('jet') xlabel('Azimuth [deg]','LineWidth',6); ylabel('Elevation [deg]','LineWidth',6); title(['Rx magnitude pattern, ant ',num2str(i)],'FontSize',10); subplot(224) imagesc(phi,psi,squeeze(ERXphase(i,:,:))); colorbar colormap('jet') xlabel('Azimuth [deg]','LineWidth',6); ylabel('Elevation [deg]','LineWidth',6); title(['Rx phase pattern, ant ',num2str(i)],'FontSize',10); end




figure; imagesc(phi,psi,ERR'); colorbar colormap('jet') xlabel('Azimuth [deg]','LineWidth',6); ylabel('Elevation [deg]','LineWidth',6); title('Normalized error','FontSize',10)

Этот пример был разработан в сотрудничестве с профессором Бенджамином Фридландером в Калифорнийском университете в Санта-Крусе.
Планирование a 5G Фиксированная связь беспроводного доступа по ландшафту | Субчипы в большом конечном массиве для формирования гибридных лучей