В этом примере показано, как использовать трассировку лучей, чтобы анализировать линию связи в городской среде. Данные о созданиях импортированы в Средство просмотра Сайта из файла OpenStreetMap, соответствующего Гонконгу. Передатчик и сайты получателя помещаются в город, и трассировка лучей используется, чтобы построить несколько путей к распространению. Результаты трассировки лучей зарегистрированы от Средства просмотра Сайта и используются, чтобы задать модель канала для фильтрации сигнала.
Импортируйте OpenStreetMap (.osm) файл, соответствующий Гонконгу. Файл был загружен с https://www.openstreetmap.org, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Информация о созданиях, содержавшая в файле OpenStreetMap, импортируется и визуализируется в Средстве просмотра Сайта.
viewer = siteviewer("Buildings","hongkong.osm");
Масштабируйте и вращайте карту, чтобы просмотреть создания и ландшафт.
Задайте сайты передатчика и получателя, чтобы смоделировать маленький сценарий ячейки в плотной городской среде. Ретранслятор представляет базовую станцию, которая помещается в полюс около дороги, и сайт получателя помещается вдоль дороги. Передатчик действует в несущей частоте 28 ГГц с 5 Вт степени. Сайты передатчика и получателя используют изотропную антенну по умолчанию, которая исходит однородно во всех направлениях.
tx = txsite("Name","Small cell transmitter", ... "Latitude",22.2789, ... "Longitude",114.1625, ... "AntennaHeight",10, ... "TransmitterPower",5, ... "TransmitterFrequency",28e9); rx = rxsite("Name","Small cell receiver", ... "Latitude",22.2799, ... "Longitude",114.1617, ... "AntennaHeight",1);
Постройте пути к распространению между сайтами передатчика и получателя, включая пути максимум с двумя отражениями. Пути к распространению вычисляются с помощью анализа трассировки лучей, который полагает, что создания и геометрия ландшафта вокруг сайтов определяют угол обзора или отраженные пути. Каждый путь может быть выбран, чтобы просмотреть соответствующие характеристики распространения, включая потерю пути, фазовый переход, расстояние и углы отъезда и прибытия.
raytrace(tx,rx,"NumReflections",[0 1 2], ... "Type","pathloss", ... "ColorLimits",[80 130])
Потеря пути и расстояние от каждого пути к распространению зарегистрированы от Средства просмотра Сайта. Эти семь путей с передатчика на получатель приводят к многопутевому каналу. Усиления пути и задержки канала выведены из результатов трассировки лучей. График импульсной характеристики канала показывает, что пути прибывают в четыре кластера.
% Record ray tracing results, which must be obtained by selecting each path % in Site Viewer and reading the values from the infobox. Below, the values % are sorted according to corresponding path distance. pathDists = [139.24 139.38 249.01 339.57 339.81 340.68 356.98]; % Unit: meter pathLosses = [104.3 104.3 109.3 112 112 112 112.4]; % Unit: dB pathPhases = [3.93 5.95 1.46 2.73 5.67 3.27 5.83]; % Unit: radians % Derive the complex gain and time of arrival for each path pathGains = 10.^((-1*pathLosses)/20) .* exp(1i*pathPhases); pathToA = pathDists/physconst("lightspeed"); % Unit: second % Plot channel impulse response stem(pathToA-min(pathToA), abs(pathGains), 'filled'); grid on; title('Channel Impulse Response'); xlabel('Delay (s)'); ylabel('Magnitude');
Сигнал передан через канал и построен в схеме созвездия. Для того, чтобы смоделировать эффекты получателя в движении, мгновенная скорость задана, который производит Доплеровский сдвиг частоты. Полученный сигнал высоко искажен из-за значительной интерференции межсимвола (ISI), вызванный многопутевым каналом на широкополосном сигнале 5G.
% Define instantaneous receiver speed and derive Doppler shift rxSpeed = 2; % Unit: m/s fd = rxSpeed * tx.TransmitterFrequency / physconst("lightspeed"); % Set the sampling rate, frame length and constellation size Rs = 122.88e6; % Corresponds to 5G signal rate frmLen = 30720; M = 64; constDiagram = comm.ConstellationDiagram( ... "XLimits",[-15 15], ... "YLimits",[-15 15], ... "ReferenceConstellation",qammod(0:M-1, M)); % Randomly generate 64-QAM signals to be passed through the channel. % Perform channel filtering and observe the channel-impaired signal in % the constellation diagram. The path gains are normalized in order to % preserve the average input signal power. data = randi([0 M-1], frmLen, 1); txSig = qammod(data, M); rxSig = helperRayTracingChannelModel(Rs, pathToA, txSig, pathGains/norm(pathGains), fd); constDiagram(rxSig);
Предыдущий анализ трассировки лучей выполнялся между сайтом передатчика и получателя с видимостью угла обзора. Теперь добавьте два новых сайта, которые не имеют видимости угла обзора. Лос график показывает точки преграды между сайтами.
rx2 = rxsite("Latitude",22.279755,"Longitude",114.161308); rx3 = rxsite("Latitude",22.280087,"Longitude",114.160709); rxs = [rx rx2 rx3]; los(tx,rxs)
Несмотря на то, что никакой угол обзора не существует, анализ трассировки лучей может показать потенциальные пути к распространению для линии связи. Для этого сценария используйте количество по умолчанию отражений, чтобы ограничить пути к распространению к углу обзора или пути одно возврата, и график получил степень вдоль каждого пути.
Анализ трассировки лучей показывает, что отраженный путь к распространению достигает одного из новых сайтов получателя, но не другого. Полученная степень вдоль отраженного пути является-76.6 dBm.
% Show isotropic radiation pattern. Other antenna patterns can be used % in conjunction with Antenna Toolbox or Phased Array System Toolbox. pattern(tx,"Size",25) % Plot propagation paths raytrace(tx,rxs,"ColorLimits",[-100 -40])