Одновременная симуляция нескольких исчезающих каналов с WINNER II моделей канала

В этом примере показано, как настроить систему с несколькими базовыми станциями (BS), несколько мобильные станции (MS) и несколько нисходящих каналов MIMO от одного сектора BS до одного MS. Необходимо загрузить и установить ПОБЕДИТЕЛЯ II Моделей Канала для Дополнения Communications Toolbox™, чтобы запустить этот пример. Каждая ссылка присвоена со сценарием распространения и условием. Исчезающие коэффициенты канала для всех ссылок сгенерированы одновременно. Импульсный сигнал передается через исчезающий канал для каждой ссылки. Полученные импульсные и частотные характеристики построены для выбранных ссылок.

Проверяйте на установку пакета поддержки

Проверяйте, установлен ли 'ПОБЕДИТЕЛЬ II Моделей Канала для Communications Toolbox' пакет поддержки.

commSupportPackageCheck('CST_WINNER2');

Материально-технические ресурсы антенной решетки

В WINNER II моделей канала каждый BS состоит из одного или нескольких секторов, и каждый сектор BS и MS присвоены с антенной решеткой. Мы должны сначала установить набор массивов, которые доступны для секторов BS и MS, чтобы использовать, который мы вызываем материально-технические ресурсы антенной решетки.

В этом примере все доступные антенные решетки являются универсальным круговым массивом (UCA). В материально-технических ресурсах существует четыре различных UCAs:

  • 16 элементов с радиусом 30 см

  • 12 элементов с радиусом 30 см

  • 8 элементов с радиусом 30 см

  • 4 элемента с радиусом 5 см

Каждый антенный элемент в UCAs является всенаправленным.

s = rng(21); % For repeatability

AA(1) = winner2.AntennaArray('UCA',16,0.3);
AA(2) = winner2.AntennaArray('UCA',12,0.3);
AA(3) = winner2.AntennaArray('UCA',8,0.3);
AA(4) = winner2.AntennaArray('UCA',4,0.05);

Сконфигурируйте системное размещение

На 300 300 (метрах) карта, мы настроим 3 BS, 5 мс и 6 ссылок. Первый BS имеет один сектор, который оборудован UCA с 16 элементами. Второй BS также имеет один сектор, который оборудован UCA с 12 элементами. Третий BS имеет три сектора, которые оборудованы UCA с 8 элементами каждый. Каждый MS присвоен с UCA с 4 элементами.

BSIdx    = {1; 2; [3 3 3]}; % Index in antenna array inventory vector
MSIdx    = [4 4 4 4 4];     % Index in antenna array inventory vector
numLinks = 6;               % Number of links
range    = 300;             % Layout range (meters)
cfgLayout = winner2.layoutparset(MSIdx,BSIdx,numLinks,AA,range);

Шесть ссылок моделируются в системе. Первый BS соединяет с первой и второй Г-Жой Зэ вторые подключения BS к третьей мс. Для третьего BS, его первых подключений сектора к третьей и четвертой Г-ЖЕ, его вторые подключения сектора к пятой мс и ее третьему сектору не соединяются ни с каким MS. С точки зрения MS каждый из них соединяется с одним BS за исключением третьего, который соединяется и со вторым и с третьим BSS. Каждая ссылка присвоена с одним сценарием распространения, выбранным из B4 (вне помещения к внутреннему), C2 (Городская макроячейка) и C4 (Городской макрос вне помещения к внутреннему). Не угол обзора (NLOS) моделируется для каждой ссылки.

cfgLayout.Pairing = [1 1 2 3 3 4; 6 7 8 8 9 10];  % Index in cfgLayout.Stations
cfgLayout.ScenarioVector = [6 6 13 13 11 11];     % 6 for B4, 11 for C2 and 13 for C4
cfgLayout.PropagConditionVector = [0 0 0 0 0 0];  % 0 for NLOS

Три BSS расположены равными интервалами между 0 и 300 на оси X и имеют ту же позицию по оси Y. Положения MS присвоены гарантировать, что их расстояния до связанного BSS находятся в допустимых областях значений потери на пути для соответствующих сценариев. А именно, области значений для B4, C2 и сценариев C4 [3, 1000], [50, 5000] и [50, 5000] метры, соответственно. По умолчанию каждый сектор BS 32 метра высотой, и MS 1,5 метра высотой. Каждый MS случайным образом присвоен со скоростью, которая не превышает 0,5 м/с ни в одном из этих X, Y и направлений Z.

% Number of BS sectors and MSs in the system
numBSSect = sum(cfgLayout.NofSect);
numMS = length(MSIdx);

% Set up positions for BS sectors. Same position for the third, fourth and
% fifth sectors as they belong to one BS.
cfgLayout.Stations(1).Pos(1:2) = [50;  150];
cfgLayout.Stations(2).Pos(1:2) = [150; 150];
cfgLayout.Stations(3).Pos(1:2) = [250; 150];
cfgLayout.Stations(4).Pos(1:2) = [250; 150];
cfgLayout.Stations(5).Pos(1:2) = [250; 150];

% Set up MS positions
cfgLayout.Stations(6).Pos(1:2)  = [10;  180];  % 50m from 1st BS
cfgLayout.Stations(7).Pos(1:2)  = [60;  50];   % 111.8m from 1st BS
cfgLayout.Stations(8).Pos(1:2)  = [194; 117];  % 55m and 65m from 2nd and 3rd BSs respectively
cfgLayout.Stations(9).Pos(1:2)  = [260; 270];  % 120.4m from 3rd BS
cfgLayout.Stations(10).Pos(1:2) = [295; 90];   % 75m from 3rd BS

% Randomly draw MS velocity
for i = numBSSect + (1:numMS)
    cfgLayout.Stations(i).Velocity = rand(3,1) - 0.5;
end

Чтобы проиллюстрировать системную настройку, мы строим BSS, Г-ЖУ и ссылки между ними на 2D карте. В графике каждый сектор BS представлен кругом, каждый MS представлен крестом, и каждая ссылка представлена прямой линией между соответствующим BS и MS. Когда третий BS имеет три сектора, только три круга показывают на карте.

% Get all BS sector and MS positions
BSPos = cell2mat({cfgLayout.Stations(1:numBSSect).Pos});
MSPos = cell2mat({cfgLayout.Stations(numBSSect+1:end).Pos});

scrsz = get(groot,'ScreenSize');
figSize = min(scrsz([3,4]))/2.3;
figure('Position',[scrsz(3)*.5-figSize/2,scrsz(4)*.7-figSize/2,figSize,figSize]);
hold on; grid on;
hBS = plot(BSPos(1,:),BSPos(2,:),'or');   % Plot BS
hMS = plot(MSPos(1,:),MSPos(2,:),'xb');   % Plot MS
for linkIdx = 1:numLinks  % Plot links
    pairStn = cfgLayout.Pairing(:,linkIdx);
    pairPos = cell2mat({cfgLayout.Stations(pairStn).Pos});
    plot(pairPos(1,:),pairPos(2,:),'-b');
end
xlim([0 300]); ylim([0 300]);
xlabel('X Position (meters)'); ylabel('Y Position (meters)')
legend([hBS, hMS],'BS','MS','location','northwest');

Figure contains an axes object. The axes object contains 8 objects of type line. These objects represent BS, MS.

Сконфигурируйте параметры модели

Существуют параметры многоуровневой модели, которые могут быть настроены в структуре, созданной winner2.wimparset функция. В этом примере центральная частота составляет 5,25 ГГц. Потеря на пути и исчезновение затенения моделируются для каждой ссылки. Чтобы поддержать полосу пропускания до 100 МГц, два самых сильных кластера каждой ссылки разделены на 3 подкластера каждый, которые на расстоянии в 5 нс. Все ссылки производятся на различных уровнях, которые зависят от скорости Г-Жи Бекоз, которую третьи и четвертые ссылки соединяют с тем же MS, они совместно используют ту же частоту дискретизации.

frameLen = 1600; % Number of samples to be generated

cfgWim = winner2.wimparset;
cfgWim.NumTimeSamples      = frameLen;
cfgWim.IntraClusterDsUsed  = 'yes';
cfgWim.CenterFrequency     = 5.25e9;
cfgWim.UniformTimeSampling = 'no';
cfgWim.ShadowingModelUsed  = 'yes';
cfgWim.PathLossModelUsed   = 'yes';
cfgWim.RandomSeed          = 31415926;  % For repeatability

Создайте WINNER II систем канала Object™

Мы теперь можем использовать модель и настройки размещения, чтобы создать WINNER II Системных объектов канала. Если объект создается, можно вызвать его info метод, чтобы просмотреть некоторые выведенные системные параметры. Например, в info метод возвращается, NumBSElements, NumMSElements и NumPaths поля указывают на количество элементов массива в секторах BS, количество элементов массива в Г-ЖЕ и количество путей для каждой ссылки. SampleRate поле также показывает частоту дискретизации для каждой ссылки.

WINNERChan = comm.WINNER2Channel(cfgWim,cfgLayout);
chanInfo = info(WINNERChan)
chanInfo = struct with fields:
               NumLinks: 6
          NumBSElements: [16 16 12 8 8 8]
          NumMSElements: [4 4 4 4 4 4]
               NumPaths: [16 16 16 16 24 24]
             SampleRate: [3.0636e+07 3.5303e+07 2.7559e+07 2.7559e+07 ... ]
     ChannelFilterDelay: [7 7 7 7 7 7]
    NumSamplesProcessed: 0

Импульсный сигнал процесса для каждой ссылки

Мы передаем импульсный сигнал через каждую ссылку и наблюдаем импульсные и частотные характеристики в MS. Для этого мы должны создать импульсный сигнал для каждой ссылки и агрегировать их в массив ячеек. Это достигается при помощи NumBSElements поле info метод возвращается и cellfun функция. Импульсный массив ячеек сигнала должен быть обработан объектом канала.

txSig = cellfun(@(x) [ones(1,x);zeros(frameLen-1,x)], ...
    num2cell(chanInfo.NumBSElements)','UniformOutput',false);

rxSig = WINNERChan(txSig); % Pass impulse signal through each link

Графический вывод полученного сигнала в Г-ЖЕ дает общее представление о том, как импульсные и частотные характеристики исчезающего канала ищут каждую ссылку. Из этих 4 антенн в каждом MS только построен полученный сигнал в первой антенне. То, что ссылки производятся на различных уровнях, получено в графике импульсной характеристики. Для каждой ссылки первые несколько выборок от задержки фильтра канала построены в отрицательной оси времени, если таковые имеются.

figure('Position',[scrsz(3)*.3-figSize/2,scrsz(4)*.25-figSize/2,figSize,figSize]);
hold on;
for linkIdx = 1:numLinks
    delay = chanInfo.ChannelFilterDelay(linkIdx);
    stem(((0:(frameLen-1))-delay)/chanInfo.SampleRate(linkIdx), ...
        abs(rxSig{linkIdx}(:,1)));
end
maxX = max((cell2mat(cellfun(@(x) find(abs(x) < 1e-8,1,'first'), ...
    rxSig.','UniformOutput',false)) - chanInfo.ChannelFilterDelay)./ ...
    chanInfo.SampleRate);
minX = -max(chanInfo.ChannelFilterDelay./chanInfo.SampleRate);
xlim([minX, maxX]);
xlabel('Time (s)'); ylabel('Magnitude');
legend('Link 1','Link 2','Link 3','Link 4','Link 5','Link 6');
title('Impulse Response at First Receive Antenna');

Figure contains an axes object. The axes object with title Impulse Response at First Receive Antenna contains 6 objects of type stem. These objects represent Link 1, Link 2, Link 3, Link 4, Link 5, Link 6.

Когда третьи и четвертые ссылки соединяются с тем же MS и следовательно имеют ту же частоту дискретизации, мы строим их вместе использование Спектра Системный объект Анализатора. Две ссылки имеют 16 путей каждый и демонстрируют значительную селективность частоты.

SA = dsp.SpectrumAnalyzer( ...
    'Name',         'Frequency response', ...
    'SpectrumType', 'Power density', ...
    'SampleRate',   chanInfo.SampleRate(3), ...
    'Position',     [scrsz(3)*.7-figSize/2,scrsz(4)*.25-figSize/2,figSize,figSize], ...
    'Title',        'Frequency Response', ...
    'ShowLegend',   true, ...
    'ChannelNames', {'Link 3','Link 4'});

SA(cell2mat(cellfun(@(x) x(:,1),rxSig(3:4,1)','UniformOutput',false)));

Figure Frequency response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object with title Frequency Response contains 2 objects of type line. These objects represent Link 3, Link 4.

rng(s); % Restore RNG

Дальнейшее исследование

Пример показывает, как сконфигурировать WINNER, II исчезающих Системных объектов канала, чтобы смоделировать систему с несколькими ссылками MIMO от BSS до исследования Г-Жи Фертэр включают модификации в поля cfgLayout и cfgWim смоделировать различные антенные решетки как универсальные линейные матрицы (ULA), местоположения BS/MS и соединения, сценарии распространения и условия, и так далее.

Поскольку третьи и четвертые ссылки соединяются с тем же MS, можно объединить полученные сигналы от обеих ссылок путем возмещения выборок соответственно с учетом задержек фильтра канала на двух ссылках.

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

  1. ПОБЕДИТЕЛЬ IST II, "WINNER II моделей канала", D1.1.2, сентябрь 2007.