В этом примере показано, как настроить систему с несколькими базовыми станциями (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');
Существуют параметры многоуровневой модели, которые могут быть настроены в структуре, созданной 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 Системных объектов канала. Если объект создается, можно вызвать его 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: [1x6 double]
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');
Когда третьи и четвертые ссылки соединяются с тем же 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)));
rng(s); % Restore RNG
Пример показывает, как сконфигурировать WINNER, II исчезающих Системных объектов канала, чтобы смоделировать систему с несколькими ссылками MIMO от BSS до исследования Г-Жи Фертэр включают модификации в поля cfgLayout
и cfgWim
смоделировать различные антенные решетки как универсальные линейные матрицы (ULA), местоположения BS/MS и соединения, сценарии распространения и условия, и так далее.
Поскольку третьи и четвертые ссылки соединяются с тем же MS, можно объединить полученные сигналы от обеих ссылок путем возмещения выборок соответственно с учетом задержек фильтра канала на двух ссылках.
ПОБЕДИТЕЛЬ IST II, "WINNER II моделей канала", D1.1.2, сентябрь 2007.