lte3DChannel

Пропустите сигнал через 3-D MIMO, исчезающий канал

Описание

lte3DChannel Система object™ пропускает входной сигнал через мультивход/мультивыход уровня ссылки TR 36.873 (MIMO), исчезающий канал, чтобы получить поврежденный каналом сигнал. Объект реализует выполняющие шаги обработки канала, заданные в TR 36.873 [1], Раздел 7.3:

  • Шаг 7: Добавление луча возместило углы

  • Шаг 8: Связь лучей

  • Шаг 9: Генерация отношений степени перекрестной поляризации (XPRs)

  • Шаг 10: Рисование случайных начальных фаз

  • Шаг 11: Генерация коэффициентов канала для каждого кластера

Отфильтровать входной сигнал с помощью уровня ссылки MIMO TR 36.873, исчезающий канал:

  1. Создайте lte3DChannel объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

lte3d = lte3DChannel создает уровень ссылки системный объект TR 36.873 MIMO.

пример

lte3d = lte3DChannel(Name,Value) создает объект с набором свойств при помощи одной или нескольких пар "имя-значение". Заключите имя свойства в кавычках, сопровождаемых заданным значением. Незаданные свойства берут значения по умолчанию.

Пример: lte3d = lte3DChannel('PathDelays',2e-6,'HasLOSCluster',true,'KFactorFirstCluster',12) создает объект канала с задержкой пути 2 микросекунд, кластер LOS профиля задержки включил, и K-фактор 12 дБ для первого кластера профиля задержки.

пример

lte3d = lte3DChannel.makeCDL(DelayProfile) создает объект с заданным профилем задержки CDL от Раздела TR 38.901 [2] 7.7.1 и распространение задержки 30 нс.

пример

lte3d = lte3DChannel.makeCDL(DelayProfile,DelaySpread) создает объект с заданным профилем задержки CDL и распространением задержки.

lte3d = lte3DChannel.makeCDL(DelayProfile,DelaySpread,KFactor) создает объект с заданным профилем задержки CDL, распространением задержки и масштабированием K-фактора.

Входные параметры

развернуть все

Задержите профиль в виде одного из 'CDL-A', 'CDL-B', 'CDL-C', 'CDL-D', или 'CDL-E'.

Распространение задержки в нс в виде числового скаляра.

Типы данных: double

K-фактор, масштабирующийся в виде числового скаляра. Масштабирование k-фактора применяется только, когда вы задаете DelayProfile как 'CDL-D' или 'CDL-E'.

Типы данных: double

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Дискретный путь задерживается в секундах в виде числового скаляра или вектора-строки. AveragePathGains и PathDelays должен иметь тот же размер.

Типы данных: double

Средний путь получает в дБ в виде числового скаляра или вектора-строки. AveragePathGains и PathDelays должен иметь тот же размер.

Типы данных: double

Азимут угла падения в градусах в виде числового скаляра или вектора-строки. Векторные элементы задают углы для каждого кластера.

Типы данных: double

Азимут исходного угла в градусах в виде числового скаляра или вектора-строки. Векторные элементы задают углы для каждого кластера.

Типы данных: double

Зенит угла падения в градусах в виде числового скаляра или вектора-строки. Векторные элементы задают углы для каждого кластера.

Типы данных: double

Зенит исходного угла в градусах в виде числового скаляра или вектора-строки. Векторные элементы задают углы для каждого кластера.

Типы данных: double

Кластер угла обзора (LOS) задержки профилирует в виде false или true. PathDelays, AveragePathGains, AnglesAoA, AnglesAoD, AnglesZoA и свойства AnglesZoD задают профиль задержки. Чтобы включить кластер LOS профиля задержки, установите HasLOSCluster к true.

Типы данных: логический

K-фактор первого кластера задержки профилирует в дБ в виде числового скаляра.

Зависимости

Чтобы включить это свойство, установите HasLOSCluster на true.

Типы данных: double

Кластерно-мудрые среднеквадратичные (RMS) угловые распространения, в градусах, для масштабирования луча возмещают углы в кластере. Задайте это свойство как вектор-строку из формы [C AoD C AoA C ZoD C ZoA], где:

  • C AoD является кластерно-мудрым распространением азимута RMS исходных углов в кластере

  • C AoA является кластерно-мудрым распространением азимута RMS углов падения в кластере

  • C ZoD является кластерно-мудрым распространением зенита RMS исходных углов в кластере

  • C ZoA является кластерно-мудрым распространением зенита RMS углов падения в кластере

Типы данных: double

Отношение степени перекрестной поляризации, в дБ в виде числового скаляра.

Зависимости

Чтобы включить это свойство, установите HasLOSCluster на true.

Типы данных: double

Несущая частота в Гц в виде числового скаляра.

Типы данных: double

Максимальный эффект Доплера в Гц в виде неотрицательного числового скаляра. Это свойство применяется ко всем путям к каналу. Когда максимальный эффект Доплера установлен в 0, канал остается статическим для целого входа. Чтобы сгенерировать новую реализацию канала, сбросьте объект путем вызова reset функция.

Типы данных: double

Направление пользовательского терминала (UT) перемещения в градусах в виде двухэлементного вектор-столбца. Векторные элементы задают азимут и компоненты вертикального изменения: [azimuth; elevation].

Типы данных: double

Частота дискретизации входного сигнала в Гц в виде положительного числового скаляра.

Типы данных: double

Передайте характеристики антенной решетки в виде структуры, которая содержит следующие поля:

Поле параметраЗначенияОписание
Size

[2 2 2] (значение по умолчанию),

вектор-строка

Размер антенной решетки в виде вектора-строки из формы [M N P].

  • M и N являются количеством строк и столбцов в антенной решетке, соответственно.

  • P является количеством поляризации (1 или 2).

Элементы антенной решетки сопоставлены с входными каналами формы волны (столбцы) в порядке, что трехмерный массив размера M N P линейно индексируется через первую размерность к последнему.

Например, антенная решетка размера [4 8 2] имеет первый M = 4 канала, сопоставленные с первым столбцом первого угла поляризации. Следующие M = 4 антенны сопоставлены со следующим столбцом и так далее. После этого шаблона первый M×N = 32 канала сопоставлены с первым углом поляризации полной антенной решетки. Точно так же остающиеся 32 канала сопоставлены со вторым углом поляризации полной антенной решетки.

Для антенной решетки с несколькими панелями задайте размер как вектор-строку из формы [M N P Mg Ын], где Мг и Ын являются количеством панелей строки и столбца массивов, соответственно.

Элементы антенной решетки сопоставлены мудрые панелью с каналами формы волны в порядке, что 5-D массив размера M N P Mg Ыном линейно индексируется через первую размерность к последнему. Последующие наборы M×N×P = 64 канала сопоставлены с последовательными панелями, беря строки панели сначала, затем столбцы панели.

ElementSpacing

[0.5 0.5] (значение по умолчанию),

вектор-строка

Интервал элемента в длинах волн в виде вектора-строки из формы [λv λh], представляя вертикальный и горизонтальный интервал элемента.

Для антенной решетки с несколькими панелями задайте интервал как вектор-строку из формы [λv λh dgv dgh], где dgv и dgh являются вертикальным и горизонтальным интервалом панели, соответственно.

PolarizationAngles

[45 -45] (значение по умолчанию),

вектор-строка

Углы поляризации в градусах в виде вектора-строки из формы [θ ρ]. Углы поляризации применяются только, когда количество поляризации равняется 2.

Orientation

[0; 0; 0] (значение по умолчанию),

вектор-столбец

Механическая ориентация массива, в градусах в виде вектор-столбца формы [α; β; γ] описание подшипника, downtilt, и наклона. Значение по умолчанию указывает, что поперечное направление массива указывает на положительную ось X.
Element

'36.873' (значение по умолчанию),

'isotropic'

Диаграмма направленности элемента антенны. Смотрите TR 36.873 [1], Раздел 7.1.1.

PolarizationModel

'Model-2' (значение по умолчанию),

'Model-1'

Модель, которая определяет полевые шаблоны излучения на основе заданного шаблона степени излучения. Смотрите TR 36.873 [1], Раздел 7.1.1.

Типы данных: struct

Получите характеристики антенной решетки в виде структуры, которая содержит следующие поля:

Поле параметраЗначенияОписание
Size

[2 2 2] (значение по умолчанию),

вектор-строка

Размер антенной решетки в виде вектора-строки из формы [M N P].

  • M и N являются количеством строк и столбцов в антенной решетке.

  • P является количеством поляризации (1 или 2).

Элементы антенной решетки сопоставлены с входными каналами формы волны (столбцы) в порядке, что трехмерный массив размера M N P линейно индексируется через первую размерность к последнему.

Например, антенная решетка размера [4 8 2] имеет первый M = 4 канала, сопоставленные с первым столбцом первого угла поляризации. Следующие M = 4 антенны сопоставлены со следующим столбцом и так далее. После этого шаблона первый M×N = 32 канала сопоставлены с первым углом поляризации полной антенной решетки. Точно так же остающиеся 32 канала сопоставлены со вторым углом поляризации полной антенной решетки.

Для антенной решетки с несколькими панелями можно задать размер как вектор-строку из формы [M N P Mg Ын], где Мг и Ын являются количеством панелей строки и столбца массивов, соответственно.

Элементы антенной решетки сопоставлены мудрые панелью с каналами формы волны в порядке, что 5-D массив размера M N P Mg Ыном линейно индексируется через первую размерность к последнему. Последующие наборы M×N×P = 64 канала сопоставлены с последовательными панелями, беря строки панели сначала, затем столбцы панели.

ElementSpacing

[0.5 0.5] (значение по умолчанию),

вектор-строка

Интервал элемента в длинах волн в виде вектор-строка из формы [λv λh] представление вертикального и горизонтального интервала элемента, соответственно.

Для антенной решетки с несколькими панелями можно задать интервал как вектор-строку из формы [λv λh dgv dgh], где dgv и dgh являются вертикальным и горизонтальным интервалом панели, соответственно.

PolarizationAngles

[0 90] (значение по умолчанию),

вектор-строка

Углы поляризации в градусах в виде вектора-строки из формы [θ ρ]. Углы поляризации применяются только, когда количество поляризации равняется 2.

Orientation

[0; 0; 0] (значение по умолчанию),

вектор-столбец

Механическая ориентация массива, в градусах в виде вектор-столбца формы [α; β; γ] описание подшипника, downtilt, и наклона, соответственно. Значение по умолчанию указывает, что поперечное направление массива указывает на положительную ось X.
Element

'isotropic' (значение по умолчанию),

'36.873'

Диаграмма направленности элемента антенны. Смотрите TR 36.873 [1], Раздел 7.1.1.

PolarizationModel

'Model-2' (значение по умолчанию),

'Model-1'

Модель, которая определяет полевые шаблоны излучения на основе заданного шаблона степени излучения. Смотрите TR 36.873 [1], Раздел 7.1.1.

Типы данных: structure

Количество выборок времени на половину длины волны в виде числового скаляра. SampleDensity и MaximumDopplerShift свойства управляют содействующим уровнем выборки генерации, Fcg:

Fcg = MaximumDopplerShift × 2 × SampleDensity.

Установка SampleDensity к Inf присвоения Fcg значение SampleRate свойство.

Типы данных: double

Нормируйте усиления пути в виде true или false. Используйте это свойство нормировать процессы исчезновения. Когда это свойство установлено в true, общая степень усилений пути, усредняемых в зависимости от времени, составляет 0 дБ. Когда это свойство установлено в false, усиления пути не нормированы. AveragePathGains свойство задает средние степени усилений пути.

Типы данных: логический

Время начала исчезающего процесса в секундах в виде числового скаляра.

Настраиваемый: да

Типы данных: double

Количество самых сильных кластеров, чтобы разделить в подкластеры в виде числового скаляра. Смотрите TR 36.873 [1], Раздел 7.3, Шаг 11.

Типы данных: double

Кластерное распространение задержки в секундах в виде неотрицательного скаляра. Используйте это свойство задать перемещение задержки между подкластерами для разделения кластеров в подкластеры. Смотрите TR 36.873 [1], Раздел 7.3, Шаг 11.

Зависимости

Чтобы включить это свойство, установите NumStrongestClusters к значению, больше, чем нуль.

Типы данных: double

Источник потока случайных чисел в виде одного из следующего:

  • 'mt19937ar with seed' — Объект использует mt19937ar алгоритм в нормально распределенной генерации случайных чисел. Вызов reset функционируйте сбрасывает фильтры и повторно инициализирует поток случайных чисел к значению Seed свойство.

  • 'Global stream' — Объект использует текущий глобальный поток случайных чисел в нормально распределенной генерации случайных чисел. Вызов reset функционируйте сбрасывает только фильтры.

Начальный seed mt19937ar потока случайных чисел в виде неотрицательного числового скаляра.

Зависимости

Чтобы включить это свойство, установите RandomStream к 'mt19937ar with seed'. При вызове reset функция, seed повторно инициализирует mt19937ar поток случайных чисел.

Типы данных: double

Отфильтруйте входной сигнал в виде true или false. Когда это свойство установлено в false, объект не берет входного сигнала, и усилениями пути и шагами расчета являются единственные выходные параметры. В этом случае, NumTimeSamples свойство управляет длительностью реализации процесса исчезновения на уровне выборки, данном SampleRate свойство.

Типы данных: логический

Количество выборок времени в виде положительного целого числа. Используйте это свойство установить длительность реализации процесса исчезновения.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите ChannelFiltering к false.

Типы данных: double

Нормируйте канал, выходные параметры количеством получают антенны в виде true или false.

Зависимости

Чтобы включить это свойство, установите ChannelFiltering к true.

Типы данных: double

Использование

Описание

пример

signalOut = lte3d(signalIn) пропускает входной сигнал через уровень ссылки MIMO TR 36.873, исчезающий Системный объект канала lte3d и возвращает поврежденный каналом сигнал.

[signalOut,pathGains] = lte3d(signalIn) также возвращает усиления пути к каналу MIMO базового процесса исчезновения.

пример

[signalOut,pathGains,sampleTimes] = lte3d(signalIn) также возвращает шаги расчета снимков состояния канала pathGains (первые элементы измерения).

pathGains = lte3d() возвращает только усиления пути. В этом случае, NumTimeSamples свойство определяет длительность процесса исчезновения. Объект действует как источник усилений пути, не фильтруя входной сигнал.

Чтобы использовать этот синтаксис, необходимо установить ChannelFiltering свойство lte3d к false.

[pathGains,sampleTimes] = lte3d() также возвращает шаги расчета. Объект действует как источник усилений пути и шагов расчета, не фильтруя входной сигнал.

Чтобы использовать этот синтаксис, необходимо установить ChannelFiltering свойство lte3d к false.

Входные параметры

развернуть все

Входной сигнал в виде комплексного скаляра, вектора или N матрица S-by-NT, где:

  • N S является количеством выборок.

  • N T является количеством антенн передачи.

Типы данных: single | double
Поддержка комплексного числа: Да

Выходные аргументы

развернуть все

Выходной сигнал, возвращенный как комплексный скаляр, вектор или N матрица S-by-NR, где:

  • N S является количеством выборок.

  • N R является количеством, получают антенны.

Тип данных выходного сигнала имеет ту же точность как тип данных входного сигнала.

Типы данных: single | double
Поддержка комплексного числа: Да

Усиления пути к каналу MIMO процесса исчезновения, возвращенного как CS N NP NT NR, объединяют матрицу, где:

  • CS N является количеством снимков состояния канала, которыми управляет SampleDensity свойство.

  • N P является количеством путей, данных размером PathDelays свойство.

  • N T является количеством антенн передачи.

  • N R является количеством, получают антенны.

Тип данных усилений пути имеет ту же точность как тип данных входного сигнала.

Типы данных: single | double
Поддержка комплексного числа: Да

Шаги расчета снимков состояния канала, возвращенных как N CS-1 вектор-столбец, где CS N является количеством снимков состояния канала, которыми управляет SampleDensity свойство.

Типы данных: double

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

getPathFilters Получите импульсную характеристику фильтра пути для 3-D MIMO, исчезающего канал
infoПолучите характеристическую информацию о 3-D MIMO, исчезающем канал
stepЗапустите алгоритм Системного объекта
cloneСоздайте объект дублированной системы
isLockedОпределите, используется ли Системный объект
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Передайте форму волны LTE через 3-D канал с профилем задержки CDL-D от Раздела TR 38.901 7.7.1.

Задайте конфигурационную структуру формы волны передачи, инициализированную к ссылочному каналу измерения (RMC) R.50, TDD (10 МГц, QPSK, R=1/3, 1 слой, 8 портов CSI-RS), и один подкадр.

rmc = lteRMCDL('R.50','TDD');
rmc.TotSubframes = 1;
data = [1; 0; 0; 1];
[txWaveform,~,txInfo] = lteRMCDLTool(rmc,data);

Задайте конфигурационную структуру канала с помощью lte3DChannel Системный объект. Используйте профиль задержки CDL-D от Раздела TR 38.901 7.7.1, распространения задержки 10 нс и скорости UT 15 км/ч:

v = 15.0;                    % UT velocity in km/h
fc = 4e9;                    % carrier frequency in Hz
c = physconst('lightspeed'); % speed of light in m/s
fd = (v*1000/3600)/c*fc;     % UT max Doppler frequency in Hz
 
lte3d = lte3DChannel.makeCDL('CDL-D',10e-9);
lte3d.CarrierFrequency = fc;
lte3d.MaximumDopplerShift = fd;
lte3d.SampleRate = txInfo.SamplingRate;

Сконфигурируйте массив передачи как [M N P] = [2 2 2], представляя антенную решетку 2 на 2 (M=2, N=2) и углы поляризации P=2. Сконфигурируйте получить антенную решетку как [M N P] = [1 1 2], представляя одну пару перекрестных поляризованных соразмещенных антенн.

lte3d.TransmitAntennaArray.Size = [2 2 2];
lte3d.ReceiveAntennaArray.Size = [1 1 2]; 

Вызовите 3-D объект канала на входной форме волны.

rxWaveform = lte3d(txWaveform);

Постройте канал выход и снимки состояния усиления пути для различных демонстрационных значений плотности при использовании lte3DChannel Системный объект.

Сконфигурируйте 3-D канал для операции SISO, и задержка профилируют CDL-B от Раздела TR 38.901 7.7.1. Установите максимальный эффект Доплера на 300 Гц и уровень выборки канала к 10 кГц.

lte3d = lte3DChannel.makeCDL('CDL-B');
lte3d.MaximumDopplerShift = 300.0;
lte3d.SampleRate = 10e3;
lte3d.Seed = 19;

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

lte3d.TransmitAntennaArray.Size = [1 1 1];
lte3d.ReceiveAntennaArray.Size = [1 1 1];

Создайте входную форму волны с продолжительностью 40 выборок.

T = 40; 
in = ones(T,1); 

Постройте переходной процесс канала (отображенный как линии) и соответствующие снимки состояния усиления пути (отображенные круги) для различных значений SampleDensity свойство. Демонстрационное свойство плотности управляет, как часто снимки состояния канала взяты относительно Доплеровской частоты.

  • Когда SampleDensity = Inf, снимок состояния канала взят для каждой входной выборки.

  • Когда SampleDensity = X, снимок состояния канала взят на уровне Fcs = 2*X*MaximumDopplerShift.

lte3DChannel объект применяется, снимки состояния канала к входной форме волны посредством нулевого порядка содержат интерполяцию. Объект берет дополнительный снимок состояния вне конца входа. Некоторые выборки окончательного результата используют это дополнительное значение, чтобы минимизировать ошибку интерполяции. Выход канала содержит переходный процесс (и задержка) из-за фильтров, которые реализуют задержки пути.

s = [Inf 5 2]; % sample densities
  
legends = {};
figure; hold on;
SR = lte3d.SampleRate;

for i = 1:length(s)
      
    % call channel with chosen sample density
    release(lte3d); lte3d.SampleDensity = s(i);
    [out,pathgains,sampletimes] = lte3d(in);
    chInfo = info(lte3d); tau = chInfo.ChannelFilterDelay;
      
    % plot channel output against time
    t = lte3d.InitialTime + ((0:(T-1)) - tau).' / SR;
    h = plot(t,abs(out),'o-'); h.MarkerSize = 2; h.LineWidth = 1.5;
    desc = ['Sample Density=' num2str(s(i))];
    legends = [legends ['Output, ' desc]];
    disp([desc ', Ncs=' num2str(length(sampletimes))]);
      
    % plot path gains against sample times
    h2 = plot(sampletimes - tau/SR,abs(sum(pathgains,2)),'o');
    h2.Color = h.Color; h2.MarkerFaceColor = h.Color;
    legends = [legends ['Path Gains, ' desc]];
      
end
Sample Density=Inf, Ncs=40
Sample Density=5, Ncs=13
Sample Density=2, Ncs=6
xlabel('Time (s)');
title('Channel Output and Path Gains versus Sample Density');
ylabel('Channel Magnitude');
legend(legends,'Location','NorthWest'); 

Отобразите спектр формы волны LTE форма волны модуляции OFDM, через которую проходят 40 2 канал с помощью lte3DChannel Системный объект.

Создайте сетку ресурса для 40 антенн.

enb.NDLRB = 25;
enb.CyclicPrefix = 'Normal';
grid = lteDLResourceGrid(enb,40);
Fill the grid with QPSK symbols and perform LTE OFDM modulation.
grid(:) = lteSymbolModulate(randi([0 1],numel(grid)*2,1),'QPSK');
[txWaveform,txInfo] = lteOFDMModulate(enb,grid);

Создайте lte3DChannel Системный объект с определенными свойствами.

lte3d = lte3DChannel('PathDelays',[0 500e-9], ...
    'AveragePathGains',[-13.4 3.0], ...
    'AnglesAoD',[-178.1 -4.2], ...
    'AnglesAoA',[51.3 -152.7], ...
    'AnglesZoD',[50.2 93.2], ...
    'AnglesZoA',[125.4 91.3], ...
    'NumStrongestClusters',1, ...
    'SampleRate',txInfo.SamplingRate);

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

lte3d.TransmitAntennaArray.Size = [10 2 2];
lte3d.ReceiveAntennaArray.Size = [1 1 2];

Элементы антенной решетки сопоставлены с каналами формы волны (столбцы), использующие линейную индексацию TransmitAntennaArray.Size или ReceiveAntennaArray.Size через первую размерность к последнему. Смотрите TransmitAntennaArray или ReceiveAntennaArray свойства lte3DChannel Системный объект для получения дополнительной информации.

Передайте LTE форма волны модуляции OFDM через 40 2 3-D канал.

rxWaveform = lte3d(txWaveform);

Постройте полученный спектр формы волны.

analyzer = dsp.SpectrumAnalyzer('SampleRate',lte3d.SampleRate);
analyzer.Title = 'Received Signal Spectrum';
analyzer(rxWaveform);

Ссылки

[1] 3GPP TR 36.873. “Исследование 3D модели канала для LTE”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group; Развитый Универсальный Наземный Радио-доступ (к E-UTRA). URL: https://www.3gpp.org.

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

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

Введенный в R2018a

Для просмотра документации необходимо авторизоваться на сайте