поэтапный. ScatteringMIMOChannel

Рассеивание канала MIMO

Описание

Система phased.ScatteringMIMOChannel object™ моделирует многопутевой канал распространения, в котором излученные сигналы от массива передачи отражаются от нескольких рассеивателей назад к массиву получения. В этом канале пути к распространению являются углом обзора от точки до точки. Задержка зависимого области значений объектных моделей, усиление, эффект Доплера, фазовый переход и атмосферная потеря из-за газов, дождя, вуали и облаков.

Модели затухания для атмосферных газов и дождя допустимы для электромагнитных сигналов в частотном диапазоне 1-1000 ГГц. Модель затухания для вуали и облаков допустима от 10-1000 ГГц. Вне этих частотных диапазонов объект использует самое близкое допустимое значение.

Вычислить многопутевое распространение для заданного источника и точек получателя:

  1. Задайте и настройте свое рассеивание канал MIMO с помощью процедуры Конструкции. Можно установить свойства Системного объекта во время конструкции или оставить их в их значениях по умолчанию.

  2. Вызовите метод step, чтобы вычислить распространенные сигналы с помощью свойств Системного объекта phased.ScatteringMIMOChannel. Можно изменить настраиваемые свойства прежде или после любого вызова метода step.

Примечание

Вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Конструкция

channel = phased.ScatteringMIMOChannel создает рассеивающийся Системный объект канала распространения MIMO, channel.

channel = phased.ScatteringMIMOChannel(Name,Value) создает Системный объект, channel, с каждым заданным набором свойства Name к заданному Value. Можно задать дополнительное имя и аргументы пары значения в любом порядке как (Name1,Value1..., NameN,ValueN).

Свойства

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

Передача массива, заданного как Системный объект антенной решетки Phased Array System Toolbox.

Пример: phased.URA

Получение массива, заданного как Системный объект антенной решетки Phased Array System Toolbox.

Пример: phased.URA

Скорость распространения сигнала, заданная как положительная скалярная величина. Модули исчисляются в метрах в секунду. Скорость распространения по умолчанию является значением, возвращенным physconst('LightSpeed'). Смотрите physconst.

Пример: 3e8

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

Несущая частота сигнала, заданная как положительный скаляр с действительным знаком. Модули находятся в Гц.

Пример: 100e6

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

Настройка поляризации, заданная как 'None', 'Combined' или 'Dual'. Когда вы устанавливаете это свойство на 'None', выходное поле рассматривается скалярным полем. Когда вы устанавливаете это свойство на 'Combined', излученные поля поляризованы и интерпретированы как один сигнал в свойственной поляризации датчика. Когда вы устанавливаете это свойство на 'Dual', H и компоненты поляризации V излученного поля являются независимыми сигналами.

Пример: 'Dual'

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

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

Устанавливая SpecifyAtmosphere на true, включает Temperature, DryAirPressure, WaterVapourDensity, LiquidWaterDensity и свойства RainRate.

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

Температура окружающей среды, заданная как скаляр с действительным знаком. Модули в градусах Цельсия.

Пример: 20.0

Зависимости

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

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

Атмосферное сухое давление воздуха, заданное как положительный скаляр с действительным знаком. Модули находятся в pascals (Pa). Значение по умолчанию этого свойства соответствует одной стандартной атмосфере.

Пример: 101.0e3

Зависимости

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

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

Атмосферная плотность водяного пара, заданная как положительный скаляр с действительным знаком. Модули находятся в g/m3.

Пример: 7.4

Зависимости

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

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

Жидкая водная плотность вуали или облаков, заданных как неотрицательный скаляр с действительным знаком. Модули находятся в g/m3. Типичные значения для жидкой водной плотности 0.05 для средней вуали и 0.5 для густого тумана.

Пример: 0.1

Зависимости

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

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

Уровень ливня, заданный как неотрицательный скаляр. Модули находятся в мм/час.

Пример: 10.0

Зависимости

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

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

Частота дискретизации сигнала, заданного как положительная скалярная величина. Модули находятся в Гц. Системный объект использует это количество, чтобы вычислить задержку распространения модулей выборок.

Пример: 1e6

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

Опция, чтобы включить распространение сигнала вдоль прямого пути, заданного как false или true. Прямой путь является путем угла обзора от массива передачи до массива получения без рассеивания.

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

Опция, чтобы включить вывод ответа канала, заданного как false или true. Установите это свойство на true выводить ответ канала и задержку при помощи chmatrix и выходных аргументов tau метода step.

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

Источник максимального значения задержки, заданного как 'Auto' или 'Property'. Когда вы устанавливаете это свойство на 'Auto', канал автоматически выделяет достаточно памяти, чтобы моделировать задержку распространения. Когда вы устанавливаете это свойство на 'Property', можно задать максимальную задержку при помощи свойства MaximumDelay. Проигнорированы сигналы, прибывающие после максимальной задержки.

Максимальная задержка сигнала, заданная как положительная скалярная величина. Проигнорированы задержки, больше, чем это значение. Модули находятся в секундах.

Зависимости

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

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

Источник параметров движения передачи массивов, заданных как 'Property' или 'Input port'.

  • Когда вы устанавливаете это свойство на 'Property', массив передачи является стационарным. Затем можно задать местоположение и ориентацию массива с помощью свойств TransmitArrayPosition и TransmitArrayOrientationAxes.

  • Когда вы устанавливаете это свойство на 'Input port', задаете местоположение передачи массивов, скорость и ориентацию при помощи txpos, txvel и входных параметров txaxes метода step.

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

Позиция центра фазы передачи массивов, заданного как трехэлементный вектор с действительным знаком в Декартовой форме, [x;y;z], относительно глобальной системы координат. Модули исчисляются в метрах.

Пример: [1000;-200;55]

Зависимости

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

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

Ориентация передачи массива, заданного как 3х3 ортонормированная матрица с действительным знаком. Матрица задает эти три оси, (x,y,z), которые задают систему локальной координаты массива относительно глобальной системы координат. Каждый столбец соответствует оси.

Пример: rotz(45)

Зависимости

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

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

Источник параметров движения получения массивов, заданных как 'Property' или 'Input port'.

  • Когда вы устанавливаете это свойство на 'Property', массив получения является стационарным. Затем можно задать местоположение и ориентацию массива при помощи свойств ReceiveArrayPosition и ReceiveArrayOrientationAxes.

  • Когда вы устанавливаете это свойство на 'Input port', можно задать местоположение получения массивов, скорость и ориентацию при помощи rxpos, rxvel и входных параметров rxaxes метода step.

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

Позиция центра фазы получения массивов, заданного как трехэлементный вектор с действительным знаком в Декартовой форме, [x;y;z], относительно глобальной системы координат. Модули исчисляются в метрах.

Пример: [1000;-200;55]

Зависимости

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

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

Ориентация получения массива, заданного как 3х3 ортонормированная матрица с действительным знаком. Матрица задает эти три оси, (x,y,z), которые задают систему локальной координаты массива относительно глобальной системы координат. Каждый столбец соответствует оси.

Пример: roty(60)

Зависимости

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

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

Источник параметров рассеивателя, заданных как 'Auto', 'Property', 'Input port'.

  • Когда вы устанавливаете это свойство на 'Auto', все положения рассеивателя и коэффициенты случайным образом сгенерированы. Скорости рассеивателя являются нулем. Сгенерированные положения содержатся в области, которая задана ScattererPositionBoundary. Чтобы определить номер рассеивателей, используйте свойство NumScatterers.

  • Когда вы устанавливаете это свойство на 'Property', можно установить положения рассеивателя при помощи свойства ScattererPosition и рассеивающиеся коэффициенты при помощи свойства ScattererCoefficient. Все скорости рассеивателя являются нулем.

  • Когда вы устанавливаете это свойство на 'Input port', можно задать положения рассеивателя, скорости и рассеивающиеся коэффициенты с помощью scatpos, scatvel и входных параметров scatcoef метода step.

Пример: 'Input port'

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

Количество рассеивателей, заданных как неотрицательное целое число.

Пример 9

Зависимости

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

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

Контур положений рассеивателя, заданных как 1 2 вектор - строка с действительным знаком или 3 2 матрица с действительным знаком. Вектор задает минимум и максимум, [minbdry maxbdry], для всех трех измерений. Матрица задает контуры во всех трех измерениях в форме [x_minbdry x_maxbdry;y_minbdry y_maxbdry; z_minbdry z_maxbdry].

Пример: [-1000 500;-100 100;-200 0]

Зависимости

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

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

Положения рассеивателей, заданных как 3 с действительным знаком K матрицей. K является количеством рассеивателей. Каждый столбец представляет различный рассеиватель и имеет Декартову форму [x;y;z] относительно глобальной системы координат. Модули исчисляются в метрах.

Пример: [1050 -100;-300 55;0 -75]

Зависимости

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

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

Рассеивание коэффициентов, заданных как 1 с комплексным знаком K вектором. K является количеством рассеивателей. Модули являются безразмерными.

Пример: 2+1i

Зависимости

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

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

Рассеивание матриц рассеивателей, заданных как 2 с комплексным знаком 2 Ns массивом, где N s является количеством рассеивателей. Каждая страница этого массива представляет рассеивающуюся матрицу рассеивателя. Каждая матрица рассеивания имеет форму [s_hh s_hv;s_vh s_vv]. Например, s_hv компонента задает комплексный ответ рассеивания, когда входной сигнал вертикально поляризован, и отраженный сигнал горизонтально поляризован. Другие компоненты заданы так же. Модули находятся в квадратных метрах.

Зависимости

Чтобы включить это свойство, установите свойство ScatteringMatrixSource на 'Property' и свойство Polarization к 'Combined' или 'Dual'.

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

Ориентация рассеивателей, заданных как 3 с действительным знаком 3 Ns массивом, где N s является количеством рассеивателей. Каждая страница этого массива является ортонормированной матрицей. Столбцы матрицы представляют ось локальных координат, (x, y, z) рассеяния относительно глобальной системы координат.

Пример: roty(45)

Зависимости

Чтобы включить это свойство, установите свойство ScatteringMatrixSource на 'Property' и свойство Polarization к 'Combined' или 'Dual'.

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

Источник seed генератора случайных чисел, заданного как 'Auto' или 'Property'.

  • Когда вы устанавливаете это свойство на 'Auto', случайные числа сгенерированы с помощью генератора случайных чисел MATLAB® по умолчанию.

  • Когда вы устанавливаете это свойство на 'Property', объект использует частный генератор случайных чисел с seed, заданным значением свойства Seed.

Чтобы использовать этот объект с программным обеспечением Parallel Computing Toolbox™, установите это свойство на 'Auto'.

Зависимости

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

Seed генератора случайных чисел, заданный как неотрицательное целое число меньше чем 232.

Пример: 5005

Зависимости

Чтобы включить это свойство, установите свойство ScattererSpecificationSource на 'Auto' и свойство SeedSource к 'Property'.

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

Методы

сбросСбросьте состояние Системного объекта
шагРаспространите сигналы в рассеивании канала MIMO
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

Создайте 30 каналов GHz MIMO со случайными рассеивателями. Сценарий содержит стационарную передачу с 21 элементом массив ULA и стационарное получение с 15 элементами массив ULA. Антенны передачи имеют ответы косинуса, и антенны получения являются изотропными. Интервал элемента для обоих массивов является меньше, чем половина длины волны. Канал имеет 50 случайным образом сгенерированных статических рассеивателей в заданной ограничительной рамке. Массив передачи расположен в [0; 20; 50] метры и получить массив расположен в [200; 10; 10] метры. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц.

fc = 30e9;
c = physconst('LightSpeed');
lambda = c/fc;
fs = 10e6;
txarray = phased.ULA('Element',phased.CosineAntennaElement,...
    'NumElements',21,'ElementSpacing',0.45*lambda);
rxarray = phased.ULA('Element',phased.IsotropicAntennaElement,...
    'NumElements',15,'ElementSpacing',0.45*lambda);

channel = phased.ScatteringMIMOChannel('TransmitArray',txarray,...
    'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc,...
    'SampleRate',fs,'TransmitArrayPosition',[0;20;50],...
    'ReceiveArrayPosition',[200;10;10],'NumScatterers',50,...
    'ScattererPositionBoundary',[10 180; -30 30; -30 30]);

Создайте случайный сигнал данных единиц и нулей для каждого передатчика.

x = randi(2,[100 21]) - 1;

Вычислите полученные сигналы после распространения через канал.

y = channel(x);

Создайте канал MIMO, содержащий 3 фиксированных рассеивателя. Сценарий содержит передачу с 21 элементом массив ULA, действующий на уровне 72 ГГц и получение с 15 элементами массив ULA. Элементы передачи имеют формы ответа косинуса, и антенны получения являются изотропными. Только антенна передачи перемещается. Интервал элемента для обоих массивов является меньше, чем половина длины волны. Массив передачи запускается в (0,20,50) метры и двигает получатель на уровне 2 м/с. Массив получения расположен в (200,10,10) метры. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц.

fc = 72e9;
c = physconst('LightSpeed');
lambda = c/fc;
fs = 10e6;
txplatform = phased.Platform('MotionModel','Velocity','InitialPosition', ...
    [0;20;50],'Velocity',[2;0;0]);
txarray = phased.ULA('Element',phased.CosineAntennaElement, ...
    'NumElements',21,'ElementSpacing',0.45*lambda);
rxarray = phased.ULA('Element',phased.IsotropicAntennaElement, ...
    'NumElements',15,'ElementSpacing',0.45*lambda);
channel = phased.ScatteringMIMOChannel('TransmitArray',txarray, ...
    'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc,...
    'SampleRate',fs,'TransmitArrayMotionSource','Input port', ...
    'ReceiveArrayMotionSource','Property','ReceiveArrayPosition',[200;10;10],...
    'ReceiveArrayOrientationAxes',rotz(180),...
    'ScattererSpecificationSource','Property','ScattererPosition', ...
    [75 100 120; -10 20 12; 5 -5 8],'ScattererCoefficient',[1i,2+3i,-1+1i]);

Переместите платформы для двух временных шагов во вторых интервалах. В течение каждого раза экземпляр:

  • Создайте случайный сигнал данных единиц и нулей для каждого элемента передатчика.

  • Переместите передатчик и получатель. Ориентации фиксируются.

  • Распространите сигналы от передатчиков до рассеивателей к получателю.

for k =1:2
    x = randi(2,[100 21]) - 1;
    [txpos,txvel] = txplatform(1);
    txaxes = eye(3);
    y = channel(x,txpos,txvel,txaxes);
end

Создайте канал MIMO, содержащий 3 фиксированных рассеивателя. Сценарий содержит передачу с 21 элементом массив ULA и получение с 15 элементами массив ULA. Оба массива, действующие на уровне 72 ГГц. Элементы передачи имеют формы ответа косинуса, и антенны получения являются изотропными. Только антенна получения перемещается. Интервал элемента для обоих массивов является меньше, чем половина длины волны. Массив передачи расположен в (0,20,50) метры. Массив получения запускается в (200,10,10) метры и перемещается к передатчику в 2 м/с. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц.

fc = 72e9;
c = physconst('LightSpeed');
lambda = c/fc;
fs = 10e6;
rxplatform = phased.Platform('MotionModel','Velocity','InitialPosition',...
    [200;10;10],'Velocity',[-2;0;0]);
txarray = phased.ULA('Element',phased.CosineAntennaElement, ...
    'NumElements',21,'ElementSpacing',0.45*lambda);
rxarray = phased.ULA('Element',phased.IsotropicAntennaElement, ...
    'NumElements',15,'ElementSpacing',0.45*lambda);
channel = phased.ScatteringMIMOChannel('TransmitArray',txarray, ...
    'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc, ...
    'SampleRate',fs,'TransmitArrayMotionSource','Property',...
    'TransmitArrayPosition',[0;20;50],'TransmitArrayOrientationAxes',eye(3,3), ...
    'ReceiveArrayMotionSource','Input port','ScattererSpecificationSource', ...
    'Property','ScattererPosition',[75 100 120; -10 20 12; 5 -5 8], ...
    'ScattererCoefficient',[1i,2+3i,-1+1i],'SpecifyAtmosphere',false);

Переместите платформы для двух временных шагов во вторых интервалах. В течение каждого раза экземпляр:

  • Создайте случайный сигнал данных единиц и нулей для каждого элемента передатчика.

  • Переместите передатчик и получатель. Зафиксируйте ориентации массивов.

  • Распространите сигналы от передатчиков до рассеивателей к получателю.

for k =1:2
    x = randi(2,[100 21]) - 1;
    [rxpos,rxvel] = rxplatform(1);
    rxaxes = rotz(45);
    y = channel(x,rxpos,rxvel,rxaxes);
end

Создайте канал MIMO на уровне 30 ГГц с массивом передачи с 16 элементами, и с 64 элементами получают массив. Примите, что элементы являются антеннами короткого диполя, и массивы являются универсальными линейными матрицами. Массив передачи расположен в [0; 0; 50] метры.

Получить массив имеет исходное положение в [200; 0; 0] метры и перемещаются со скоростью [10; 0; 0] метры/секунда. Существует 200 статических рассеивателей, случайным образом расположенных на xy плоскости в квадрате, сосредоточенном в [200; 0; 0] и с длиной стороны 100 метров.

Используйте канал, чтобы вычислить распространенный поляризованный сигнал. Примите, что частота дискретизации для сигнала составляет 10 МГц, и длина кадра является 1 000 выборок. Соберите 5 кадров полученного сигнала.

fc = 30e9;
c = 3e8;
lambda = c/fc;
fs = 10e6;
txarray = phased.ULA('Element',phased.ShortDipoleAntennaElement,...
    'NumElements',16,'ElementSpacing',lambda/2);
rxarray = phased.ULA('Element',phased.ShortDipoleAntennaElement,...
    'NumElements',64,'ElementSpacing',lambda/2);

Ns = 200;
scatpos = [100*rand(1,Ns) + 150; 100*rand(1,Ns) + 150; zeros(1,Ns)];
temp = randn(1,Ns) + 1i*randn(1,Ns);
scatcoef = repmat(eye(2),1,1,Ns).*permute(temp,[1 3 2]);
scatax = repmat(eye(3),1,1,Ns);

Nframesamp = 1000;
Tframe = Nframesamp/fs;
rxmobile = phased.Platform('InitialPosition',[200;0;0],...
    'Velocity',[10;0;0],'OrientationAxesOutputPort',true);

chan = phased.ScatteringMIMOChannel(...
    'TransmitArray',txarray,...
    'ReceiveArray',rxarray,...
    'PropagationSpeed',c,...
    'CarrierFrequency',fc,...
    'SampleRate',fs,...
    'Polarization','Dual',...
    'TransmitArrayPosition',[0;0;50],...
    'ReceiveArrayMotionSource','Input port',...
    'ScattererSpecificationSource','Property',...
    'ScattererPosition',scatpos,...
    'ScatteringMatrix',scatcoef,...
    'ScattererOrientationAxes',scatax);

xh = randi(2,[Nframesamp 16])-1;
xv = randi(2,[Nframesamp 16])-1;

for m = 1:5
    [rxpos,rxvel,rxax] = rxmobile(Tframe);
    [yh,yv] = chan(xh,xv,rxpos,rxvel,rxax);
end

Больше о

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

Ссылки

[1] Пустошь, R. Младший и др. “Обзор Методов Обработки сигналов для Волны Миллиметра Системы MIMO”, arXiv.org:1512.03007 [cs.IT], 2015.

[2] Се, D. и П. Висванэт, основные принципы радиосвязей, Кембриджа: Издательство Кембриджского университета, 2005.

[3] Paulraj, A. Введение в пространственно-временные радиосвязи, Кембридж: Издательство Кембриджского университета, 2003.

[4] Сектор радиосвязи Международного союза электросвязи. Рекомендация ITU-R P.676-10: Затухание атмосферными газами. 2013.

[5] Сектор радиосвязи Международного союза электросвязи. Рекомендация ITU-R P.840-6: Затухание из-за облаков и вуали. 2013.

[6] Сектор радиосвязи Международного союза электросвязи. Рекомендация ITU-R P.838-3: Определенная модель затухания для дождя для использования в методах прогноза. 2005.

[7] Seybold, J. Введение в распространение РФ. Нью-Йорк: Wiley & Sons, 2005.

[8] Skolnik, M. Введение в радиолокационные системы, 3-го Эда. Нью-Йорк: McGraw-Hill, 2001.

Расширенные возможности

Введенный в R2017a