Внутренняя линия связи MIMO-OFDM Используя трассировку лучей

В этом примере показано, как выполнить трассировку лучей во внутренней среде и использовать результаты создать модель канала для симуляции уровня ссылки с методом MIMO-OFDM.

Введение

Трассировка лучей [1] стала популярным методом для анализа радиочастоты (RF), планирования сайта, моделирования канала и анализа уровня ссылки из-за тренда для современных систем связи, чтобы действовать на частотах RF в десятках области значений GHz. В отличие от стохастических моделей, метод трассировки лучей является 3-D средой и конкретными сайтами приемопередатчика и может иметь высокую чувствительность в окружающей среде. Без простой формулы, чтобы вычислить основанные на расстоянии потери на пути, метод трассировки лучей использует числовые симуляции и является обычно менее дорогостоящим, чем полевые измерения. Результаты трассировки лучей могут использоваться, чтобы создать многопутевые модели канала для систем связи. Например, основанная на трассировке лучей модель канала была задана в Разделе 8 из TR 38.901 [2] для 5G и в IEEE 802.11ay для WLAN [3].

Этот пример запускается с анализа трассировки лучей между одним ретранслятором и одним сайтом приемника в 3-D конференц-зале. Вычисленные лучи используются, чтобы создать детерминированную модель канала, которая специфична для этих двух сайтов. Модель канала используется в симуляции линии связи MIMO-OFDM. Эта схема характеризует линию связи.

Трассировка лучей выполняется во внутренней среде. Те же методы трассировки лучей могут быть применены, чтобы создать модели канала для внутренних или наружных сред. Для анализа трассировки лучей в наружной городской установке обратитесь к Городской Ссылке и Анализу покрытия Используя пример Трассировки лучей.

3-D внутренний сценарий

Задайте внутреннюю 3-D карту в формате STL для небольшого конференц-зала с одной таблицей и четырьмя стульями. Формат STL является одним из наиболее распространенных 3-D форматов карты и может часто преобразовываться от других 3-D форматов карты в разнообразии 3-D программного обеспечения.

mapFileName = "conferenceroom.stl";

Задайте несущую частоту на уровне 5,8 ГГц и вычислите длину волны

fc = 5.8e9;
lambda = physconst('lightspeed')/fc;

Передающая антенна является универсальной линейной матрицей (ULA) с 4 элементами, которая имеет дважды длины волны между элементами. Получить антенна 4x4 универсальный прямоугольный массив (URA), который имеет одну длину волны между элементами. Обе антенны заданы arrayConfig объект.

txArray = arrayConfig("Size",[4 1],'ElementSpacing',2*lambda);
rxArray = arrayConfig("Size",[4 4],'ElementSpacing',lambda);

Используйте функцию helperViewArray, чтобы визуализировать ULA и конфигурации URA, где антенные элементы пронумерованы для потоков ввода/вывода.

helperViewArray(txArray);

helperViewArray(rxArray);

Задайте ретранслятор близко к верхнему углу комнаты, которая может быть точкой доступа Wi-Fi. Задайте сайт приемника немного выше таблицы и перед стулом, чтобы представлять ноутбук или мобильное устройство.

tx = txsite("cartesian", ...
    "Antenna",txArray, ...
    "AntennaPosition",[-1.46; -1.42; 2.1], ...
    'TransmitterFrequency',5.8e9);

rx = rxsite("cartesian", ...
    "Antenna",rxArray, ...
    "AntennaPosition",[.3; .3; .85], ...
    "AntennaAngle",[0;90]);

Используйте siteviewer функция с файлом карты, заданным, чтобы просмотреть сцену в 3-D в Средстве просмотра Сайта. Используйте show функция, чтобы визуализировать передатчики и приемники.

siteviewer("SceneModel",mapFileName);
show(tx,'ShowAntennaHeight', false)
show(rx,'ShowAntennaHeight', false)

Панорамирование путем щелчка левой кнопкой, масштабируйте путем щелчка правой кнопкой или при помощи колесика прокрутки и вращайте визуализацию путем нажатия средней кнопки и перетаскивания или путем нажатия Ctrl и щелчка левой кнопкой и перетаскивания.

Трассировка лучей

Выполните анализ трассировки лучей между сайтами передатчика и приемника и возвратите comm.Ray объекты, с помощью стрельбы и возврата лучей (SBR) метод. Задайте поверхностный материал сцены как древесина и ищите лучи максимум с 2 отражениями. Метод SBR поддерживает до 10 порядков отражений.

pm = propagationModel("raytracing", ...
    "CoordinateSystem","cartesian", ...
    "Method","sbr", ...
    "AngularSeparation","low", ...
    "MaxNumReflections",2, ...
    "SurfaceMaterial","wood");

rays = raytrace(tx,rx,pm);

Извлечение вычисленные лучи от массива ячеек возвращается.

rays = rays{1,1};

Исследуйте результаты трассировки лучей путем рассмотрения количества отражений, расстояния распространения и значения потери на пути каждого луча. Существует 25 найденных лучей (один луч угла обзора, 6 лучей с одним отражением и 18 лучей с двумя отражениями).

[rays.NumInteractions]
ans = 1×25

     0     1     1     1     1     1     1     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2

[rays.PropagationDistance]
ans = 1×25

    2.7602    2.8118    2.8487    2.8626    3.2029    4.6513    4.6719    2.8988    2.9125    2.9481    3.2475    3.2916    3.3243    4.6821    4.7247    4.7331    4.7433    4.7936    4.9269    4.9464    5.9868    5.9868    6.7170    8.0161    8.0460

[rays.PathLoss]
ans = 1×25

   56.5350   72.1633   70.0647   72.3180   73.3102   76.4133   76.4508   81.5418   83.8254   81.5531   83.6891   83.7784   85.7801   85.8271   83.7662   86.0508   91.6822   91.7764   86.5438   86.5283   91.2898   91.2969   94.8444   96.4455   96.4796

Используйте plot функционируйте, чтобы построить лучи в 3-D сцене в Средстве просмотра Сайта. Каждый луч окрашен на основе его значения потери на пути. Нажмите на луч, чтобы просмотреть информацию о том луче.

plot(rays,'Colormap',jet,'ColorLimits',[50, 95])

Детерминированная модель канала от трассировки лучей

Создайте детерминированную многопутевую модель канала использование вышеупомянутых результатов трассировки лучей. Задайте мгновенную скорость приемника, чтобы отразить типичную низкую мобильность устройства во внутренней среде.

rtChan = comm.RayTracingChannel(rays,tx,rx);
rtChan.SampleRate = 300e6;
rtChan.ReceiverVirtualVelocity = [0.1; 0.1; 0]
rtChan = 
  comm.RayTracingChannel with properties:

                      SampleRate: 300000000
                 PropagationRays: [1×25 comm.Ray]
        MinimizePropagationDelay: true
                   TransmitArray: [1×1 arrayConfig]
    TransmitArrayOrientationAxes: [3×3 double]
                    ReceiveArray: [1×1 arrayConfig]
     ReceiveArrayOrientationAxes: [3×3 double]
         ReceiverVirtualVelocity: [3×1 double]
       NormalizeImpulseResponses: true
         NormalizeChannelOutputs: true
                ChannelFiltering: true

Используйте showProfile возразите функции, чтобы визуализировать профиль задержки степени (PDP), угол отъезда (AoD) и угол прибытия (AoA) лучей в канале. В визуализации PDP учел передачу и получает усиления диаграммы направленности антенной решетки в дополнение к потере на пути для каждого луча.

showProfile(rtChan);

Используйте info возразите функции, чтобы получить количество передачи и получить элементы.

rtChanInfo = info(rtChan)
rtChanInfo = struct with fields:
             CarrierFrequency: 5.8000e+09
             CoordinateSystem: 'Cartesian'
        TransmitArrayLocation: [3×1 double]
         ReceiveArrayLocation: [3×1 double]
          NumTransmitElements: 4
           NumReceiveElements: 16
           ChannelFilterDelay: 7
    ChannelFilterCoefficients: [25×21 double]
          NumSamplesProcessed: 0
                LastFrameTime: 0

numTx = rtChanInfo.NumTransmitElements;
numRx = rtChanInfo.NumReceiveElements;

Системные параметры

Сконфигурируйте линию связи, которая использует кодирование LDPC, 64-QAM и OFDM с 256 поднесущими. Задайте 4 кодовых комбинации LDPC на систему координат, которая приводит к 50 символам OFDM на систему координат.

% Create LDPC encoder and decoder configuration objects
cfgLDPCEnc = ldpcEncoderConfig(dvbs2ldpc(1/2));
cfgLDPCDec = ldpcDecoderConfig(cfgLDPCEnc);
numCodewordsPerFrame = 4;
codewordLen = cfgLDPCEnc.BlockLength;

% Parameters for QAM modulation per subcarrier
bitsPerCarrier = 6;
modOrder = 2^bitsPerCarrier;
codeRate = cfgLDPCEnc.CodeRate;

% Create OFDM modulator and demodulator objects 
fftLen = 256; 
cpLen = fftLen/4; 
numGuardBandCarriers = [9; 8];
pilotCarrierIdx = [19:10:119, 139:10:239]';
numDataCarriers = ...
    fftLen - sum(numGuardBandCarriers) - length(pilotCarrierIdx) - 1;
numOFDMSymbols = ...
    numCodewordsPerFrame * codewordLen / ...
    bitsPerCarrier / numDataCarriers / numTx;
ofdmMod = comm.OFDMModulator( ...
    "FFTLength",fftLen, ....
    "NumGuardBandCarriers",numGuardBandCarriers, ...
    "InsertDCNull",true, ...
    "PilotInputPort",true, ...
    "PilotCarrierIndices",pilotCarrierIdx, ...
    "CyclicPrefixLength",cpLen, ...
    "NumSymbols",numOFDMSymbols, ...
    "NumTransmitAntennas",numTx);
ofdmDemod = comm.OFDMDemodulator(ofdmMod);
ofdmDemod.NumReceiveAntennas = numRx;

Создайте объект вычисления коэффициента ошибок вычислить частоту ошибок по битам (BER).

errRate = comm.ErrorRate;

Присвойте значение Eb/No и получите значение ОСШ на него для AWGN.

EbNo = 30;                               % in dB
bitsPerSymbol = bitsPerCarrier*codeRate;
snr = 10^(EbNo/10) * bitsPerSymbol;      % Linear

Соедините симуляцию

Функция helperIndoorRayTracingWaveformGen генерирует форму волны, состоящую из одной системы координат в ретрансляторе путем выполнения этих следующих шагов:

  1. Закодируйте случайным образом сгенерированные биты LDPC

  2. Модулируйте закодированные биты 64-QAM

  3. Примените модуляцию OFDM, чтобы преобразовать сигналы от частотного диапазона до временного интервала

rng(100); % Set RNG for repeatability
[txWave,srcBits] = ...
    helperIndoorRayTracingWaveformGen( ...
    numCodewordsPerFrame,cfgLDPCEnc,modOrder,ofdmMod);

Передайте форму волны через модель канала трассировки лучей и добавьте белый шум. С учетом задержки фильтрации канала добавьте дополнительный пустой символ OFDM в конец формы волны.

chanIn = [txWave; zeros(fftLen + cpLen,numTx)];
[chanOut,CIR] = rtChan(chanIn);
rxWave = awgn(chanOut,snr,numTx/numRx,'linear');

helperIndoorRayTracingRxProcessing функция декодирует поврежденную каналом форму волны на сайте приемника путем выполнения этих следующих шагов:

  1. Совершенная оценка канала с помощью импульсной характеристики канала (CIR) выход и канал фильтрует коэффициенты от объекта канала info метод.

  2. Демодуляция OFDM, чтобы возвратить сигналы в частотный диапазон

  3. Эквализация символа на каждой поднесущей

  4. Мягкая 64-QAM демодуляция, чтобы получить LLR

  5. Декодирование LDPC

[decBits, eqSym] = ...
    helperIndoorRayTracingRxProcessing(rxWave,CIR, ...
    rtChanInfo,cfgLDPCDec,modOrder,ofdmDemod,snr);

Вычислите BER:

ber = errRate(srcBits,double(decBits));
disp(ber(1));
    0.0140

Чтобы построить кривую BER против области значений значений EbNo, используйте функцию helperIndoorRayTracingSimulationLoop, чтобы повторить вышеупомянутую одну обработку системы координат максимум для 300 систем координат в каждом значении EbNo.

EbNoRange = 27:36;
helperIndoorRayTracingSimulationLoop( ...
    cfgLDPCEnc,cfgLDPCDec,ofdmMod,ofdmDemod,rtChan,errRate, ...
    modOrder,numCodewordsPerFrame,EbNoRange);

Заключение и дальнейшее исследование

То В этом примере показано, как создать детерминированную модель канала, использующую трассировку лучей, приводит к внутреннему конференц-залу. Симуляции уровня ссылки с помощью LDPC и методов MIMO-OFDM выполнялись для модели канала, и результаты BER были построены.

Дальнейшее исследование включает, но не ограничивает:

  • Различные 3-D карты и/или поверхностные материалы

  • Различные положения сайта передатчика и/или приемника

  • Различная передача и/или получает технические требования антенной решетки

  • Различная передача и/или получает ориентации антенной решетки

  • Более высокое количество отражений для метода трассировки лучей SBR

  • Передайте и/или получите beamforming

Приложение

Этот пример использует следующие функции помощника:

Выбранная библиография

[1] Цз. Юнь и М. Ф. Искандер, “Трассировка лучей для радио-моделирования распространения: Принципы и приложения”, IEEE доступ, издание 3, стр 1089-1100, июль 2015.

[2] 3GPP TR 38.901. Исследование модели канала для частот от 0,5 до 100 ГГц. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[3] Малцев, A., и др. Модели Канала для 802.11ay. IEEE 802.11-15/1150r9, март 2017.

Смотрите также

Функции

Объекты

Похожие темы