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
lte3d = lte3DChannel(Name,Value)
lte3d = lte3DChannel.makeCDL(DelayProfile)
lte3d = lte3DChannel.makeCDL(DelayProfile,DelaySpread)
lte3d = lte3DChannel.makeCDL(DelayProfile,DelaySpread,KFactor)

Описание

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

Угол распространяется для масштабирования смещений луча в градусах, заданный как [CAoD CAoA CZoD CZoA] вектор - строка, где:

  • CAoD — Распространение азимута исходных углов в кластере

  • CAoA — Распространение азимута углов падения в кластере

  • CZoD — Распространение зенита исходных углов в кластере

  • CZoA — Распространение зенита углов падения в кластере

Типы данных: 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, и наклон, соответственно.

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, и наклон, соответственно.
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)
[signalOut,pathGains] = lte3d(signalIn)
[signalOut,pathGains,sampleTimes] = lte3d(signalIn)
pathGains = lte3d()
[pathGains,sampleTimes] = lte3d()

Описание

пример

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: http://www.3gpp.org.

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

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

Введенный в R2018a

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