В этом примере показано, как смоделировать модель канала мобильного спутника земли (LMS) с двумя состояниями путем генерации ряда состояния, его соответствующего ряда пробела и коэффициентов канала. В сценарии, включающем спутниковый терминал и мобильный терминал, сигнал, передаваемый через канал, не всегда имеет идеальный путь угла обзора, но испытывает явления, такие как эффект Доплера, затенение и многопутевое исчезновение. Соответственно моделирование эффектов таких явлений важно, чтобы правильно спроектировать сквозные линии связи, которые могут обработать и компенсировать эффекты канала. Пример принимает городской сценарий и использует несущую частоту 3,8 ГГц. Эта модель применима для частот в области значений 3 - 5 ГГц.
Модель канала LMS стремится симулировать конверт канала, который наблюдается в канале спутника к земле. Учитывая движущуюся природу терминалов, конверт канала испытывает изменения из-за перемещения передачи и приемных терминалов, блокирование из-за созданий и листвы, затенения, и многопутевой.
Этот пример демонстрирует такой канал при помощи полуцепи Маркова с двумя состояниями, где канал чередуется между хорошим и плохим состоянием. Хорошее состояние характеризуется или условиями угла обзора или частичными условиями затенения, тогда как плохое состояние характеризуется или серьезными условиями затенения или полным блокированием.
Следующая блок-схема показывает пошаговую процедуру, чтобы смоделировать канал:
В дополнение к сценарию и несущей частоте, заданной для этого примера, моделирование канала сделано путем подготовки сценария. Это требует определения следующих параметров:
Угол возвышения
Скорость наземного терминала
Время выборки канала
Ориентация азимута наземного терминала
Начальное состояние канала
Общая длительность симуляции
Настройте среду между спутниковым терминалом и мобильным терминалом на земле. Отобразите свойства среды.
cfg.CarrierFrequency = 3.8e9; % Carrier frequency in Hertz cfg.ElevationAngle = 45; % Elevation angle with respect to ground plane in degrees cfg.Velocity = 2; % Speed of movement of ground terminal in metres per second cfg.SampleTime = 0.0025; % Sampling interval in seconds cfg.AzimuthOrientation = 0; % Direction of movement of ground terminal in degrees
Присвойте подходящее начальное состояние для модели.
cfg.InitialState = "Bad"; cfg.TotalSimulationTime = 100; % Total duration of channel modeling in seconds disp (cfg)
CarrierFrequency: 3.8000e+09 ElevationAngle: 45 Velocity: 2 SampleTime: 0.0025 AzimuthOrientation: 0 InitialState: "Bad" TotalSimulationTime: 100
Получите соответствующие параметры LMS с помощью настройки, заданной в ITU-R Раздел рекомендации P.681-11 3,1 Annexure 2 [2]. Функциональный HelperGetLMSInputParams
проводит необходимую операцию.
[paramsGoodState,paramsBadState] = HelperGetLMSInputParams(cfg);
Инициализируйте генератор случайных чисел seed. Варьируйтесь seed, чтобы получить различную реализацию канала. Значением по умолчанию 73 является произвольное значение.
seed = 73; rng(seed);
Смоделируйте канал LMS с помощью настройки, заданной в структуре cfg
.
Если у вас есть данные LMS, можно обновить поля paramsGoodState
и paramsBadState
структуры, и затем передают структуры HelperModelLMSChannel
функция помощника.
[stateSeries,channelCoefficients] = HelperModelLMSChannel(cfg,paramsGoodState,paramsBadState);
Постройте ряд состояния и его соответствующий ряд пробела с помощью коэффициентов канала, сгенерированных в результате моделирования.
timeVector = 0:cfg.SampleTime:cfg.TotalSimulationTime; plot(timeVector,stateSeries) title(['State Series of Channel for Duration ' num2str(cfg.TotalSimulationTime) ' seconds']) axis([0 timeVector(end) -0.5 1.5]) xlabel('Time (in s)') ylabel('State')
Постройте ряд пробела, чтобы показать, как мгновенная степень конверта канала меняется в зависимости от времени.
figure(2) plot(timeVector,20*log10(abs(channelCoefficients))) title(['Space Series of Channel for Duration ' num2str(cfg.TotalSimulationTime) ' seconds']) xlabel('Time (in s)') ylabel('Path Gain (in dB)')
Этот пример использует три структуры: cfg
, paramsGoodState
, и paramsBadState
. paramsGoodState
и paramsBadState
структуры содержат параметры LMS, которые используются, чтобы смоделировать хорошие и плохие состояния, соответственно. cfg
структура содержит информацию, связанную с текущей настройкой. Можно изменить каждый параметр по мере необходимости в каждой из этих структур, и затем наблюдать, как ряд состояния и коэффициенты канала варьируются. Чтобы смоделировать канал для различных диапазонов частот, можно использовать любые данные, которые вы имеете или любая из таблиц данных, доступных в ITU-R Раздел рекомендации P.681-11 3,1 Annexure 2 [2]. Чтобы пропустить входной сигнал через канал, можно использовать выходные коэффициенты канала, channelCoefficients
.
Этот пример использует эти функции помощника:
HelperGetLMSInputParams.m: Получите параметры LMS для городского сценария
HelperGenerateLooTriplet.m: Сгенерируйте триплет Туалета для текущего состояния
HelperLooTimeSeriesGenerator.m: Сгенерируйте коэффициенты канала с помощью генератора временных рядов Туалета
HelperModelLMSChannel.m: Смоделируйте модель канала LMS
[1] 3GPP TR 38.811 V15.3.0 (2020-07). Исследование Нового радио (NR), чтобы поддержать неназемные сети (Релиз 15). Проект Партнерства третьего поколения; Сеть радиодоступа Technical Report Group. https://www.3gpp.org.
[2] Рекомендация P.681-11 (12/2019) ITU-R. "Данные о распространении потребовали для систем проекта на земле мобильной услуги спутниковой связи". Международный союз электросвязи; Сектор Радиосвязи. https://www.itu.int/pub/R-REC.