exponenta event banner

поэтапный. ScatteringMIMOChannel

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

Описание

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

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

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

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

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

Примечание

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

Строительство

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

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

Свойства

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

Передающая решетка, заданная как объект системы антенных решеток системы фазированной решетки. Значением по умолчанию для этого свойства является phased.ULA массив со значениями свойств по умолчанию.

Пример: phased.URA

Принимающая решетка, заданная как объект системы антенных решеток системы фазированной решетки. Значением по умолчанию для этого свойства является 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

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

Пример: 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

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

Пример: 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-by-K. K - число рассеивателей. Каждый столбец представляет различный рассеиватель и имеет декартову форму [x;y;z] относительно глобальной системы координат. Единицы в метрах.

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

Зависимости

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

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

Коэффициенты рассеяния, заданные как вектор 1-by-K с комплексными значениями. K - число рассеивателей. Единицы измерения безразмерны.

Пример: 2+1i

Зависимости

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

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

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

Зависимости

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

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

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

Пример: roty(45)

Зависимости

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

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

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

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

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

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

Зависимости

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

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

Пример: 5005

Зависимости

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

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

Методы

сбросСброс состояния объекта System
шагРаспространение сигналов в канале 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] Пустошь, R. Младший и др. «Обзор методов обработки сигналов для MIMO-систем миллиметровых волн», arXiv.org:1512.03007 [cs.IT], 2015.

[2] Tse, D. and P. Viswanath, Основы беспроводной связи, Кембридж: Cambridge University Press, 2005.

[3] Паулрадж, А. Введение в беспроводную космическую связь, Кембридж: 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] Сейболд, J. Введение в распространение РЧ. Нью-Йорк: Wiley & Sons, 2005.

[8] Скольник, М. Введение в радиолокационные системы, 3-й ред. Нью-Йорк: Макгроу-Хилл, 2001.

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

.

См. также

Функции

Объекты

Представлен в R2017a