В этом примере показов, как восстановить 3D диаграмму направленности излучения с помощью функции patternFromSlices. 3D диаграмма направленности излучения является очень важным инструментом для анализа, характеристики, проекта, планирования и приложений антенны. Этот пример покажет реконструкцию 3-D излучения от 2 ортогональных срезов. Будет рассмотрена реконструкция шаблона для всенаправленной и направленной антенны.
Задайте всенаправленную антенну, такую как диполь с определенной частотой и необходимым углом повышения и азимута.
ant = dipole; freq = 70e6; ele = -90:5:90; azi = -180:1:180;
Срез расположен вдоль вертикального направления с помощью функции patternElevation. Здесь мы можем дать другие данные о шаблоне 2-D также.
vertSlice = patternElevation(ant,freq,0,'Elevation',ele);
theta = 90 - ele;
Два ортогональных среза также могут быть визуализированы.
figure; patternElevation(ant,freq,0,'Elevation',ele); figure; patternAzimuth(ant,freq,0,'Azimuth',azi);
Для всенаправленной антенны мы можем восстановить шаблон 3-D, используя только vertSlice. Когда предоставлены только данные повышения шаблона, функция принимает всенаправленность антенны с симметрией вокруг оси z (то есть азимутальную симметрию).
patternFromSlices(vertSlice,theta);
Реконструкция с использованием обеих точек данных vertSlice & hSlice также может быть выполнена для вышеописанного случая. Восстановленный шаблон не будет меняться. Таким образом, для любой всенаправленной антенны может быть восстановлен шаблон 3-D с достаточным количеством точек данных от ортогональных срезов вдоль theta. Восстановленная диаграмма направленности излучения выглядит как 3-D диаграммы направленности излучения которая может быть получена с помощью функции pattern.
Отбрасывание точек данных во время восстановления шаблона происходит 3-D когда обе точки данных охватывают 360 степени в 2-D плоскости. Поскольку алгоритму нужен максимальный диапазон 360 степеней в одной плоскости и диапазон 180 степеней в другой плоскости, дополнительные точки данных отбрасываются.
vertSlice = patternElevation(ant,freq); theta = 90 - (-180:1:180);
Размерность pat3-D не будет равна длине (phi) * length (theta) в этом случае. Размер thetaout также варьируется от размера theta размерности. Кроме того, данные thetaout покажут значения, для которых точки данных были рассмотрены во время реконструкции.
[pat3D,thetaout]=patternFromSlices(vertSlice,theta); dim_theta = size(thetaout); disp(dim_theta);
1 181
3-D диаграмма направленности излучения не будет затронуто отбросом данных, так как вдоль обеих ортогональных плоскостей будет достаточно точек данных для восстановления 3-D шаблона. Этот результат будет таким же, как результат восстановленного выше 3-D диаграммы направленности излучения.
patternFromSlices(vertSlice,theta);
Задайте направленную антенну, такую как спираль с определенной частотой и значениями для углов повышения и азимута.
ant_dir = helix('Tilt',90,'TiltAxis',[0 1 0]); freq = 2e9; ele = -90:5:90; azi = -180:5:180;
Срез вдоль вертикального направления с помощью функции patternElevation.
vertSlice = patternElevation(ant_dir,freq,0,'Elevation',ele);
theta = 90 - ele;
Срез вдоль горизонтального направления с помощью функции patternAzimuth.
horizSlice = patternAzimuth(ant_dir,freq,0,'Azimuth',azi);
phi = azi ;
Два ортогональных среза также могут быть визуализированы.
figure; patternElevation(ant_dir,freq,0,'Elevation',ele); figure; patternAzimuth(ant_dir,freq,0,'Azimuth',azi);
Для направленного шаблона антенны должен быть предусмотрен как горизонтальный, так и вертикальный срез для точной реконструкции шаблона. Два отдельных алгоритма реализованы для реконструкции шаблона и рассмотрят оба ниже.
«Классический» алгоритм суммирования является методом по умолчанию. Этот алгоритм может использоваться для почти совершенной реконструкции всенаправленных антенн, чем для направленной антенны.
patternFromSlices(vertSlice,theta,horizSlice,phi);
В этом алгоритме параметр нормализации может быть изменен, чтобы получить различные результаты для восстановленного шаблона о предполагаемой направленности/усилении
patternFromSlices(vertSlice,theta,horizSlice,phi,'Method','CrossWeighted');
Первоначально 3-D диаграмму направленности излучения, используя функцию шаблона для спирали
figure; pattern(ant_dir,freq);
0
Из сравнения вышеописанного 3-D диаграммы направленности излучения с помощью функции шаблона и восстановленного 3-D диаграммы направленности ясно, что передняя плоскость 3-D диаграммы направленности хорошо восстановлена по сравнению с задней плоскостью. Кроме того, когда реконструкция, выполненная с использованием CrossWeighted метода, более точна, то метод суммирования для этого случая.
Производители антенн обычно предоставляют детали антенн, которые они подают вместе с двумя ортогональными срезами диаграммы направленности излучения. Шаблон данных доступен в различных форматах. Одним из таких форматов, который поддерживается в Antenna Toolbox, является формат файла MSI (расширение .msi или .pln). Используйте функцию msiread, чтобы считать данные в рабочую область.
[Horizontal,Vertical,Optional] = msiread('Test_file_demo.pln');
if strcmpi(Optional.gain.unit,'dBd') Horizontal.Magnitude = Horizontal.Magnitude + 2; Vertical.Magnitude = Vertical.Magnitude + 2; end
Визуализируйте вертикальные и горизонтальные данные усиления на интерактивном 2-D полярном графике.
figure P = polarpattern(Vertical.Elevation, Vertical.Magnitude); P.TitleTop = 'MSI Planet file data'; createLabels(P,'az=0#deg'); figure Pel = polarpattern(Horizontal.Azimuth, Horizontal.Magnitude); Pel.TitleTop = 'MSI Planet file data'; createLabels(Pel,'el=0#deg');
Извлеките данные величины среза шаблона из двух структур output, а также данные азимута и угла возвышения. Обратите внимание, что данные угла должны быть скорректированы в соответствии с соглашением phi-theta. Азимутальные углы отображаются на phi, но угол возвышения корректируется на 90 степени, чтобы соответствовать theta.
vertSlice = Vertical.Magnitude; theta = 90-Vertical.Elevation; horizSlice = Horizontal.Magnitude; phi = Horizontal.Azimuth; patternFromSlices(vertSlice,theta,horizSlice,phi,'Method','CrossWeighted');