lte3DChannel

Пропустите сигнал через 3-D MIMO с замираниями

Описание

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

  • Шаг 7: Добавление углов смещения луча

  • Шаг 8: Соединение лучей

  • Шаг 9: Генерация коэффициентов степени перекрестной поляризации (XPR)

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

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

Для фильтрации входного сигнала с использованием канала MIMO канального уровня TR 36.873 с замираниями:

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

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

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

пример

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

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

пример

lte3d = lte3DChannel.makeCDL(DelayProfile) создает объект с заданным профилем задержки CDL из раздела 7.7.1 TR 38.901 [2] и расширением задержки 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'.

Разброс задержки в ns, заданный как числовой скаляр.

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

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кластер линий видимости (LOS) профиля задержки, заданный как false или true. Профиль задержки определяется свойствами Path Delays, Average Path Gains, Angles Ao A, Angles Zo A и Angles Zo D. Чтобы включить кластер LOS профиля задержки, установите HasLOSCluster на true.

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

K-коэффициент первого кластера профиля задержки в дБ, заданный как числовой скаляр.

Зависимости

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

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

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

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

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

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

  • C ZoA является кластерным zenith-распределением углов прибытия 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 Ng], где Mg и Ng - количество панелей массива строк и столбцов, соответственно.

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

ElementSpacing

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

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

Промежуток между элементами в длинах волн, заданный как вектор-строка вида [

Для антенной решетки с несколькими панелями задайте интервал как вектор-строка вида [

PolarizationAngles

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

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

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

Orientation

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

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

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

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

'isotropic'

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

PolarizationModel

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

'Model-1'

Модель, которая определяет диаграммы направленности по напряжённости поля излучения на основе заданной диаграммы направленности мощности излучения. См. ТР 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 Ng], где Mg и Ng - количество строки и столбца массива панелей, соответственно.

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

ElementSpacing

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

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

Интервал между элементами в длинах волн, заданный как вектор-строка вида [

Для антенной решетки с несколькими панелями можно задать интервал как вектор-строка вида [

PolarizationAngles

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

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

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

Orientation

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

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

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

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

'36.873'

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

PolarizationModel

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

'Model-1'

Модель, которая определяет диаграммы направленности по напряжённости поля излучения на основе заданной диаграммы направленности мощности излучения. См. ТР 36.873 [1], раздел 7.1.1.

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

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

Fcg = MaximumDopplerShift × 2 × <reservedrangesplaceholder0>.

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

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

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

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

Время запуска процесса затухания в секундах, заданное как числовой скаляр.

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

Типы данных: 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 функция сбрасывает только фильтры.

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

Зависимости

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

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

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

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

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

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

Зависимости

Чтобы включить это свойство, задайте 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- N T-матрица, где:

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

  • N T - количество передающих антенн.

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

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

расширить все

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

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

  • N R является количеством приемных антенн.

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

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

Коэффициент усиления канала MIMO процесса затухания, возвращаемый как N комплексная матрица CS-by N P-by N T-by N R, где:

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

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

  • N T - количество передающих антенн.

  • N R является количеством приемных антенн.

Тип данных усиления пути совпадает с типом данных входного сигнала.

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

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

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

Определите структуру строения формы сигнала передачи, инициализированную для ссылки на R.50 канала измерения (RMC), TDD (10MHz, 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 из раздела 7.7.1 TR 38.901. Установите максимальный доплеровский сдвиг на 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.

The 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'); 

Figure contains an axes. The axes with title Channel Output and Path Gains versus Sample Density contains 6 objects of type line. These objects represent Output, Sample Density=Inf, Path Gains, Sample Density=Inf, Output, Sample Density=5, Path Gains, Sample Density=5, Output, Sample Density=2, Path Gains, Sample Density=2.

Отображение спектра формы волны формы модуляции 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 Системный объект для получения дополнительной информации.

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

rxWaveform = lte3d(txWaveform);

Постройте график принятого спектра формы волны.

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

Ссылки

[1] 3GPP TR 36.873. «Исследование модели 3D канала для LTE». 3rd Генерация Partnership Project; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL-адрес: https://www.3gpp.org.

[2] 3GPP TR 38.901. «Исследование модели канала для частот от 0,5 до 100 ГГц». 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ. URL-адрес: https://www.3gpp.org.

См. также

Введенный в R2018a