phased.ScatteringMIMOChannel

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

Описание

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

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

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

  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.ULA массив с его значениями свойств по умолчанию.

Пример: phased.URA

Получение массива в виде Системного объекта антенной решетки Phased Array System Toolbox. Значением по умолчанию для этого свойства является phased.ULA массив с его значениями свойств по умолчанию.

Пример: 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 (Па). Значение по умолчанию этого свойства соответствует одной стандартной атмосфере.

Пример: 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'Свойство, '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

Источник генератора случайных чисел отбирает в виде '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