phased.ScatteringMIMOChannel

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

Описание

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

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

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

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

  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 свойства.

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

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

Пример: 20.0

Зависимости

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

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

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

Пример: 101.0e3

Зависимости

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

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

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

Пример: 7.4

Зависимости

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

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

Плотность жидкой воды тумана или облака, заданная в виде неотрицательного действительного скаляра. Модули измерения указаны в г/м3. Типичные значения плотности жидкой воды: 0,05 для среднего тумана и 0,5 для густого тумана.

Пример: 0.1

Зависимости

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

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

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

Пример: 10.0

Зависимости

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

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

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

Пример: 1e6

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

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

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

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

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

Источник максимального значения задержки, заданный как '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 by- N s, где N s - количество рассеивателей. Каждая страница этого массива представляет матрицу рассеяния рассеивателя. Каждая матрица рассеяния имеет вид [s_hh s_hv;s_vh s_vv]. Для примера, компонент s_hv задает комплексную характеристику рассеяния, когда входной сигнал вертикально поляризован, а отраженный сигнал горизонтально поляризован. Другие компоненты заданы аналогично. Модули указаны в квадратных метрах.

Зависимости

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

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

Ориентация рассеивателей, заданная как реальный массив 3 на 3 байта N с, где 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

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Создайте канал MIMO на 30 ГГц со случайными рассеивателями. Сценарий содержит стационарный 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 МГц, а длина системы координат составляет 1000 выборки. Собрать 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] Heath, R. Jr. et al. «Обзор методов обработки сигналов для MIMO-систем волны миллиметра», arXiv.org:1512.03007 [c.IT], 2015.

[2] Tse, D. and P. Viswanath, Fundamentals of Wireless Communications, Cambridge: Cambridge University Press, 2005.

[3] Paulraj, A. Введение в Space-Time Wireless Communications, Cambridge: Cambridge University Press, 2003.

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

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

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

[7] Сейболд, Дж. Введение в распространение РФ. Нью-Йорк: Wiley & Sons, 2005.

[8] Skolnik, M. Introduction to Радиолокационные Системы, 3rd Ed. New York: McGraw-Hill, 2001.

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

.
Введенный в R2017a