В этом примере показано, как использовать трассировку лучей для анализа ссылок связи и зон покрытия в городском окружении. В рамках примера:
Импорт и визуализация данных о 3-D созданиях в Средство Просмотра
Задайте сайт передатчика и модель распространения трассировки лучей, соответствующую 5G городскому сценарию
Анализируйте ссылку в условиях, не связанных с линией видимости
Визуализируйте покрытие с помощью метода трассировки лучей съемочного и прыгающего лучей (SBR) с различным количеством отражений и запущенных лучей
Оптимизируйте не линию зрительная ссылка с помощью рулевого управления и Phased Array System Toolbox™
Импорт файла OpenStreetMap (.osm), соответствующего Canary Wharf в Лондоне, Великобритания. Файл был загружен из https://www.openstreetmap.org, что обеспечивает доступ к картографическим данным, полученным по всему миру. Данные лицензированы под лицензией Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/. Информация о созданиях, содержащаяся в файле OpenStreetMap, импортируется и визуализируется в Средство просмотра сайта.
viewer = siteviewer("Buildings","canarywharf.osm","Basemap","topographic");
Задайте сайт передатчика, чтобы смоделировать сценарий небольшой камеры в плотном городском окружении. Узел передатчика представляет базовую станцию, которая размещена на шесте, обслуживающем окружающую зону, которая включает в себя соседний парк. Передатчик использует изотропную антенну по умолчанию и работает на несущей частоте 28 ГГц с уровнем степени 5 Вт.
tx = txsite("Name","Small cell transmitter", ... "Latitude",51.50375, ... "Longitude",-0.01843, ... "AntennaHeight",10, ... "TransmitterPower",5, ... "TransmitterFrequency",28e9); show(tx)
Создайте модель распространения трассировки лучей с помощью метода съёмки и прыгающего луча (SBR). Модель распространения SBR использует анализ трассировки лучей для вычисления путей распространения и их соответствующих потерь пути. Потери пути вычисляются из потерь свободного пространства, потерь отражения из-за материала и потерь поляризации антенны.
Установите максимальное количество отражений равным 0 в порядок, чтобы ограничить начальный анализ только путями распространения линии визирования. Установите типы материалов создания и местности, чтобы смоделировать идеальное отражение.
rtpm = propagationModel("raytracing", ... "Method","sbr", ... "MaxNumReflections",0, ... "BuildingsMaterial","perfect-reflector", ... "TerrainMaterial","perfect-reflector");
Просмотрите соответствующую карту покрытия для максимальной области значений 250 метров от базовой станции. Карта покрытия показывает мощность приемника для приемника в каждом месте земли, но не вычисляется для верхних частей или сторон создания.
coverage(tx,rtpm, ... "SignalStrengths",-120:-5, ... "MaxRange",250, ... "Resolution",3, ... "Transparency",0.6)
Карта покрытия для распространения линии визирования показывает затенение из-за препятствий. Определите сайт приемника, чтобы смоделировать мобильный приемник в затрудненном месте. Постройте график линии видимости, чтобы показать препятствующий путь от передатчика к приемнику.
rx = rxsite("Name","Small cell receiver", ... "Latitude",51.50216, ... "Longitude",-0.01769, ... "AntennaHeight",1); los(tx,rx)
Скорректируйте модель распространения трассировки лучей, включив в нее пути с одним отражением, и постройте график лучей. Результат показывает распространение сигнала вдоль пути с одним отражением. Путь не заканчивается точно в узле приемника, потому что метод трассировки лучей SBR вычисляет приблизительные пути. Выберите нанесенный на график путь, чтобы просмотреть соответствующие характеристики распространения, которые включают мощность приемника, изменение фазы, расстояние и углы отправления и прибытия.
rtpm.MaxNumReflections = 1; clearMap(viewer) raytrace(tx,rx,rtpm)
Вычислите мощность приемника с помощью модели распространения, которая ранее была сконфигурирована, чтобы смоделировать идеальное отражение. Затем присвойте более реалистичный вид материала и повторно вычислите мощность приемника. Обновление лучей, показанных в Средство Просмотра. Использование реалистичного отражения материала приводит к потере степени примерно на 8 дБ по сравнению с идеальным отражением.
ss = sigstrength(rx,tx,rtpm); disp("Received power using perfect reflection: " + ss + " dBm")
Received power using perfect reflection: -70.3924 dBm
rtpm.BuildingsMaterial = "concrete"; rtpm.TerrainMaterial = "concrete"; raytrace(tx,rx,rtpm) ss = sigstrength(rx,tx,rtpm); disp("Received power using concrete materials: " + ss + " dBm")
Received power using concrete materials: -78.9591 dBm
Добавление ухудшений погоды к модели распространения и повторное вычисление мощности приемника результатов в еще 1,5 дБ потерь.
rtPlusWeather = rtpm + propagationModel("gas") + propagationModel("rain"); raytrace(tx,rx,rtPlusWeather) ss = sigstrength(rx,tx,rtPlusWeather); disp("Received power including weather loss: " + ss + " dBm")
Received power including weather loss: -80.4766 dBm
Используйте сконфигурированную модель распространения и повторно сгенерируйте карту покрытия, включая пути с одним отражением и ухудшения погоды. Код для повторной генерации результатов покрытия включается, но комментируется. Результаты, получаемые при запуске кода, загружаются из файла, чтобы сэкономить несколько минут времени расчета в презентации примера. Получившаяся карта покрытия показывает мощность приемника в области вокруг приемника без линии участка, проанализированного выше.
clearMap(viewer) % Load coverage results and plot. Coverage results were generated using % commented coverage call below, which takes a couple of minutes to complete. show(tx) coverageResults = load("coverageResults.mat"); contour(coverageResults.propDataSingleRef, ... "Type","power", ... "Transparency",0.6) % coverage(tx,rtPlusWeather, ... % "SignalStrengths",-120:-5, ... % "MaxRange", 250, ... % "Resolution",2, ... % "Transparency",0.6);
Разверните анализ «точка-точка», чтобы включить пути с двумя отражениями и выбрать меньшее угловое разделение между запущенными лучами для метода SBR. Визуализация показывает два кластера путей распространения, и общая мощность приемника увеличивается приблизительно на 3 дБ по сравнению с путями с одним отражением.
rtPlusWeather.PropagationModels(1).MaxNumReflections = 2; rtPlusWeather.PropagationModels(1).AngularSeparation = "low"; ss = sigstrength(rx, tx, rtPlusWeather); disp("Received power with two-reflection paths: " + ss + " dBm")
Received power with two-reflection paths: -77.1445 dBm
clearMap(viewer) raytrace(tx,rx,rtPlusWeather)
Визуализируйте предварительно вычисленную карту покрытия, которая включает два пути отражения и ухудшения погоды, как определено комбинированной моделью распространения выше. Результирующая карта покрытия показывает мощность приемника в большей области, чем карта покрытия с одноотражающими путями выше. Заметьте, что некоторые области остаются там, где не появляется сигнал.
clearMap(viewer) % Use pre-loaded coverage results to plot. Coverage results were generated % using commented coverage call below, which may take half hour or so to % complete depending on the computer hardware. show(tx) contour(coverageResults.propDataDoubleRef, ... "Type","power", ... "Transparency",0.6) % coverage(tx,rtPlusWeather, ... % "SignalStrengths",-120:-5, ... % "MaxRange", 250, ... % "Resolution",2, ... % "Transparency",0.6);
Учитывайте больше путей распространения и генерируйте более точную карту покрытия, увеличивая максимальное количество отражений для анализа трассировки лучей до 4. Снова визуализируйте предварительно вычисленную карту покрытия, которая показывает почти полное покрытие для области вокруг площадки передатчика.
rtPlusWeather.PropagationModels(1).MaxNumReflections = 4; clearMap(viewer) % Use pre-loaded coverage results to plot. Coverage results were generated using % commented coverage call below, which may take one hour or so to % complete depending on the computer hardware. show(tx) contour(coverageResults.propDataFourRef, ... "Type","power", ... "Transparency",0.6) % coverage(tx,rtPlusWeather, ... % "SignalStrengths",-120:-5, ... % "MaxRange", 250, ... % "Resolution",2, ... % "Transparency",0.6);
Многие современные коммуникационные системы используют методы, чтобы управлять антенной передатчика, чтобы достичь оптимального качества ссылки. Этот раздел использует Toolbox™ Phased Array System, чтобы оптимально управлять лучом, чтобы максимизировать мощность приемника для нелинейной ссылки зрения.
Определите пользовательскую антенну из Report ITU-R M.2412 [1] для оценки 5G радиотехнологий. Создайте равномерный прямоугольный массив 8 на 8 из шаблона элемента, заданного в разделе 8.5 отчета, укажите ее на юг и просмотрите диаграмму направленности излучения.
tx.Antenna = helperM2412PhasedArray(tx.TransmitterFrequency);
tx.AntennaAngle = -90;
clearMap(viewer)
show(rx)
pattern(tx,"Transparency",0.6)
hide(tx)
Функции raytrace
с выходом для доступа к вычисленным лучам. Возвращенный comm.Ray
объекты включают как геометрические, так и связанные с распространением характеристики каждого луча.
rtPlusWeather.PropagationModels(1).MaxNumReflections = 1; ray = raytrace(tx,rx,rtPlusWeather); disp(ray{1})
Ray with properties: PathSpecification: 'Locations' CoordinateSystem: 'Geographic' TransmitterLocation: [3×1 double] ReceiverLocation: [3×1 double] LineOfSight: 0 ReflectionLocations: [3×1 double] Frequency: 2.8000e+10 PathLossSource: 'Custom' PathLoss: 117.4546 PhaseShift: 3.8184 Read-only properties: PropagationDelay: 6.6489e-07 PropagationDistance: 199.3293 AngleOfDeparture: [2×1 double] AngleOfArrival: [2×1 double] NumReflections: 1
Получите угол отхода для пути с одним отражением и приложите этот угол, чтобы направить антенну в оптимальном направлении, чтобы достичь более высокой мощности приемника. Азимут угла отхода смещен азимутом угла физического антенны, чтобы преобразовать его в азимут вектора управления, заданный в локальной системе координат антенны фазированной решетки.
aod = ray{1}.AngleOfDeparture;
steeringaz = wrapTo180(aod(1)-tx.AntennaAngle(1));
steeringVector = phased.SteeringVector("SensorArray",tx.Antenna);
sv = steeringVector(tx.TransmitterFrequency,[steeringaz;aod(2)]);
tx.Antenna.Taper = conj(sv);
Постройте график диаграммы направленности излучения, чтобы показать энергию антенны, направленную вдоль пути распространения. Новая мощность приемника увеличивается примерно на 20 дБ. Увеличенная мощность приемника соответствует пиковому усилению антенны.
pattern(tx,"Transparency",0.6) raytrace(tx,rx,rtPlusWeather); hide(tx) ss = sigstrength(rx, tx, rtPlusWeather); disp("Received power with beam steering: " + ss + " dBm")
Received power with beam steering: -57.5126 dBm
Этот пример использовал трассировку лучей для анализа ссылки и покрытия в городском окружении. Анализ показывает:
Как использовать анализ трассировки лучей для предсказания уровня сигнала для линий ссылок, не являющихся линиями видимости, где существуют отраженные пути распространения
Анализ с реалистичными материалами оказывает значительное влияние на вычисленные потери пути и мощность приемника
Анализ с большим количеством отражений приводит к увеличению времени расчета, но выявляет дополнительные области распространения сигнала
Использование направленной антенны с рулевым управлением лучом значительно увеличивает мощность приемника для приемников, даже если они находятся в местоположениях, не линии видимости
Этот пример проанализировал мощность приемника и пути для ссылок и покрытия. Чтобы увидеть, как использовать трассировку лучей для конфигурации модели канала для симуляции уровня канала, смотрите пример Indoor MIMO-OFDM Communication Link с использованием Ray Tracing (Communications Toolbox).
[1] Отчет по M.2412 МСЭ-Р «Руководство по оценке технологий радиоинтерфейсов для IMT-2020,» 2017. https://www.itu.int/pub/R-REP-M.2412
3D реконструкция диаграммы направленности излучения из 2D ортогональных срезов