Этот пример показывает, как настроить систему с несколькими базовыми станциями (BS), несколько мобильные станции (MS) и несколько нисходящих каналов MIMO от одного сектора BS до одного MS, с помощью ПОБЕДИТЕЛЯ II Моделей Канала для Communications Toolbox™, который требуется запустить этот пример. Каждая ссылка присвоена со сценарием распространения и условием. Исчезающие коэффициенты канала для всех ссылок сгенерированы одновременно. Импульсный сигнал передается через исчезающий канал для каждой ссылки. Полученный импульс и частотные характеристики построены для выбранных ссылок.
В 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); % Pass impulse signal through each link rxSig = WINNERChan(txSig);
Графический вывод полученного сигнала в Г-ЖЕ дает общее представление о том, как импульс исчезающего канала и частотные характеристики ищут каждую ссылку. Из этих 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.