phased.Radiator

Узкополосный теплоотвод сигнала

Описание

phased.Radiator Система object™ реализует узкополосный теплоотвод сигнала. Теплоотвод преобразует сигналы в излученные wavefields, переданные от массивов и отдельных элементов датчика, таких как антенны, элементы микрофона и преобразователи гидролокатора. Теплоотвод выход представляет поля на ссылочном расстоянии одного метра от центра фазы элемента или массива. Можно затем распространить сигналы к далекому полевому использованию, например, phased.FreeSpace, phased.LOSChannel, или phased.TwoRayChannel Системные объекты.

Объект излучает поля одним из двух способов, которыми управляет свойство CombineRadiatedSignals.

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

  • Если CombineRadiatedSignals установлен в false, каждый элемент может изойти в независимом направлении.

Можно использовать этот объект для

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

  • акустические излученные поля модели при помощи неполяризованного микрофона и элементов массива преобразователя гидролокатора и путем установки Поляризации на 'None'. Необходимо также установить PropagationSpeed на значение, подходящее для носителя.

  • излучите поля от подмассивов, созданных phased.ReplicatedSubarray и phased.PartitionedArray объекты. Можно регулировать все подмассивы в том же направлении с помощью держащегося углового аргумента, STEERANG, или регулируйте каждый подмассив в различном направлении с помощью аргумента весов элемента Подмассива, WS. Теплоотвод распределяет степени сигнала одинаково среди элементов каждого подмассива. Вы не можете установить свойство CombineRadiatedSignals на false для подмассивов.

Излучать сигналы:

  1. Создайте phased.Radiator объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

radiator = phased.Radiator создает узкополосный объект теплоотвода сигнала, radiator, со значениями свойств по умолчанию.

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

Пример: radiator = phased.Radiator('Sensor',phased.URA,'OperatingFrequency',300e6) устанавливает сенсорную матрицу на универсальный прямоугольный массив (URA) со значениями свойств URA по умолчанию. Формирователь луча имеет рабочую частоту 300 МГц.

Свойства

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

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

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

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

Элемент датчика или сенсорная матрица, заданная как Системный объект, принадлежащий Phased Array System Toolbox. Сенсорная матрица может содержать подмассивы.

Пример: phased.URA

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

Пример: 3e8

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

Рабочая частота, заданная как положительная скалярная величина. Модули находятся в Гц.

Пример: 1e9

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

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

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

  • Если CombineRadiatedSignals установлен в false, каждый элемент может изойти в независимом направлении. Если свойство Sensor является массивом, который содержит подмассивы, вы не можете установить свойство CombineRadiatedSignals на 'false.

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

Мера по усилению датчика, заданная как 'dB' или 'dBi'.

  • Когда вы устанавливаете это свойство на 'dB', степень входного сигнала масштабируется шаблоном степени датчика (в дБ) в соответствующем направлении и затем объединяется.

  • Когда вы устанавливаете это свойство на 'dBi', степень входного сигнала масштабируется шаблоном направленности (в dBi) в соответствующем направлении и затем объединяется. Эта опция полезна, когда это необходимо, чтобы сравнить результаты со значениями, вычисленными основным уравнением радиолокации, которое использует dBi, чтобы задать усиление антенны. Расчет с помощью 'dBi' опция является дорогой, когда она требует, чтобы интегрирование по всем направлениям вычислило общую излученную степень датчика.

Зависимости

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

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

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

Пример: 'Dual'

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

Включите вход весов, заданный как false или true. Когда true, используйте объектный входной параметр W задавать веса. Веса применяются к отдельным элементам массива (или на уровне подмассива, когда подмассивы поддерживаются).

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

Использование

Описание

пример

Y = radiator(X,ANG) излучает поля, Y, выведенный из сигналов, X в направлениях, заданных ANG.

пример

Y = radiator(X,ANG,LAXES) также задает LAXES как системные направления осей локальной координаты. Чтобы использовать этот синтаксис, установите свойство Polarization на 'Combined'.

пример

Y = radiator(XH,XV,ANG,LAXES) задает сигнал порта горизонтальной поляризации, XH, и сигнал порта вертикальной поляризации, XV. Чтобы использовать этот синтаксис, установите свойство Polarization на 'Dual'.

Y = radiator(___,W) также задает W как элемент или веса подмассива. Чтобы использовать этот синтаксис, установите свойство WeightsInputPort на true.

Y = radiator(___,STEERANG) также задает STEERANG как руководящий угол подмассива. Чтобы использовать этот синтаксис, установите свойство Sensor на массив, который поддерживает подмассивы и устанавливает SubarraySteering свойство того массива к любому 'Phase' или 'Time'.

Y = radiator(___,WS) также задает WS когда веса применились к каждому элементу в каждом подмассиве. Чтобы использовать этот синтаксис, установите свойство Sensor на массив, который поддерживает подмассивы и устанавливает SubarraySteering свойство массива к 'Custom'.

Можно объединить дополнительные входные параметры, когда их свойства включения установлены, например, Y = radiator(X,ANG,LAXES,W,STEERANG) объединения несколько входных параметров. Дополнительные входные параметры должны быть перечислены в том же порядке как порядок свойств включения.

Входные параметры

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

Сигнал изойти, заданный как M с комплексным знаком-by-1 векторный или M с комплексным знаком-by-N матрица. M является длиной сигнала, и N является количеством элементов массива (или подмассивы, когда подмассивы поддерживаются).

Размерности X

РазмерностьСигнал
M-by-1 вектор

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

M-by-N matrixКаждый столбец соответствует сигналу, излученному соответствующим элементом массива (или соответствующие подмассивы, когда подмассивы поддерживаются).

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

Зависимости

Чтобы включить этот аргумент, установите свойство Polarization на 'None' или 'Combined'.

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

Излучение направлений сигналов, заданных как 2 с действительным знаком L матрицей. Каждый столбец задает исходящее направление в форме [AzimuthAngle;ElevationAngle]. Угол азимута должен находиться между-180 ° и 180 °, включительно. Угол вертикального изменения должен находиться между-90 ° и 90 °, включительно. Когда свойством CombineRadiatedSignals является false, количество углов должно равняться количеству элементов массива, N. Модули в градусах.

Пример: [30,20;45,0]

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

Система локальной координаты, заданная как 3х3 ортогональная матрица с действительным знаком. Столбцы матрицы задают ортонормированный x системы локальной координаты, y и оси z относительно глобальной системы координат.

Пример: rotx(30)

Зависимости

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

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

Порт H-поляризации сигнализирует, чтобы изойти, заданный как M с комплексным знаком-by-1 векторный или M с комплексным знаком-by-N матрица. M является длиной сигнала, и N является количеством элементов массива (или подмассивы, когда подмассивы поддерживаются).

Размерности XH

РазмерностьСигнал
M-by-1 вектор

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

M-by-N matrixКаждый столбец соответствует сигналу, излученному соответствующим элементом массива (или соответствующие подмассивы, когда подмассивы поддерживаются).

Размерности и размеры XH и XV должно быть то же самое.

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

Зависимости

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

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

Порт V-поляризации сигнализирует, чтобы изойти, заданный как M с комплексным знаком-by-1 векторный или M с комплексным знаком-by-N матрица. M является длиной сигнала, и N является количеством элементов массива (или подмассивы, когда подмассивы поддерживаются).

Размерности XV

РазмерностьСигнал
M-by-1 вектор

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

M-by-N matrixКаждый столбец соответствует сигналу, излученному соответствующим элементом массива (или соответствующие подмассивы, когда подмассивы поддерживаются).

Размерности и размеры XH и XV должно быть то же самое.

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

Зависимости

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

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

Элемент или веса подмассива, заданные как N с комплексным знаком-by-1 вектор-столбец, где N является количеством элементов массива (или подмассивы когда подмассивы поддержки массивов).

Зависимости

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

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

Веса элемента подмассива, заданные как N с комплексным знаком матрица SE-by-N или 1 N массивом ячеек, где N является количеством подмассивов. Эти веса применяются к отдельным элементам в подмассиве.

Веса элемента подмассива

Сенсорная матрицаВеса подмассива
phased.ReplicatedSubarray

Все подмассивы имеют те же размерности и размеры. Затем веса подмассива формируют матрицу SE-by-N N. N SE является числом элементов в каждом подмассиве и N, является количеством подмассивов. Каждый столбец WS задает веса для соответствующего подмассива.

phased.PartitionedArray

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

  • матрица SE-by-N N, где N SE является теперь числом элементов в самом большом подмассиве. Первые записи Q в каждом столбце являются весами элемента для подмассива, где Q является числом элементов в подмассиве.

  • 1 N массивом ячеек. Каждая ячейка содержит вектор-столбец весов для соответствующего подмассива. Вектор-столбцы имеют длины, равные числу элементов в соответствующем подмассиве.

Зависимости

Чтобы включить этот аргумент, установите Sensor свойство к массиву, который содержит подмассивы и устанавливает SubarraySteering свойство массива к 'Custom'.

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

Руководящий угол подмассива, заданный как длина 2 вектор-столбца. Вектор имеет форму [azimuthAngle;elevationAngle]. Угол азимута должен быть между-180 ° и 180 °, включительно. Угол вертикального изменения должен быть между-90 ° и 90 °, включительно. Модули в градусах.

Пример: [20;15]

Зависимости

Чтобы включить этот аргумент, установите Sensor свойство к массиву, который поддерживает подмассивы и устанавливает SubarraySteering свойство того массива к любому 'Phase' или 'Time'

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

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

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

Излученные сигналы, заданные как M с комплексным знаком-by-L матрица или 1 L массивом ячеек, где L является количеством исходящих углов, ANG. M является длиной входного сигнала, X.

  • Если значение свойства Поляризации установлено в 'None', выходной аргумент Y M-by-L матрица.

  • Если значение свойства Поляризации установлено в 'Combined' или 'Dual'Y 1 L массивом ячеек структур. Каждая ячейка соответствует отдельному сигналу излучения. Каждый struct содержит три вектор-столбца, содержащие X, Y и компоненты Z поляризованных полей, заданных относительно глобальной системы координат.

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

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

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

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

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

Распространите и объедините излучение от пяти изотропных элементов антенны. Настройте универсальный массив линии пяти изотропных антенн.

Сначала создайте массив ULA.

array = phased.ULA('NumElements',5);

Создайте объект теплоотвода.

radiator = phased.Radiator('Sensor',array,...
    'OperatingFrequency',300e6,'CombineRadiatedSignals',true);

Создайте простой сигнал изойти.

x = [1;-1;1;-1;1;-1];

Задайте азимут и вертикальное изменение исходящего направления.

radiatingAngle = [30;10];

Излучите сигнал.

y = radiator(x,radiatingAngle)
y = 6×1 complex

  -0.9523 - 0.0000i
   0.9523 + 0.0000i
  -0.9523 - 0.0000i
   0.9523 + 0.0000i
  -0.9523 - 0.0000i
   0.9523 + 0.0000i

Распространите и объедините излучение от пяти элементов антенны короткого диполя.

Настройте универсальный массив линии пяти антенн короткого диполя с включенной поляризацией. Затем создайте объект теплоотвода.

antenna = phased.ShortDipoleAntennaElement;
array = phased.ULA('Element',antenna,'NumElements',5);
radiator = phased.Radiator('Sensor',array,'OperatingFrequency',300e6,...
    'CombineRadiatedSignals',true,'Polarization','Combined');

Вращайте систему локальной координаты от глобальных координат на 10 ° вокруг оси X. Продемонстрируйте, что выход представляет поляризованное поле.

Задайте простой сигнал излучить и задать исходящее направление в азимуте и вертикальном изменении. Излучите поля в двух направлениях.

x = [1;-1;1;-1;1;-1];
radiatingAngles = [30 30; 0 20];
y = radiator(x,radiatingAngles,rotx(10))
y=2×3 struct
    X
    Y
    Z

Покажите y-компонент поляризованного поля, исходящего в первом направлении.

disp(y(1).Y)
  -0.2131 + 0.0000i
   0.2131 - 0.0000i
  -0.2131 + 0.0000i
   0.2131 - 0.0000i
  -0.2131 + 0.0000i
   0.2131 - 0.0000i

Излучите сигнал от одной изотропной антенны.

antenna = phased.IsotropicAntennaElement;
radiator = phased.Radiator('Sensor',antenna,'OperatingFrequency',300e6);
sig = [1;1];
radiatingAngles = [30 10]';
y = radiator(sig,radiatingAngles);

Излучите сигнал далекого поля в двух направлениях от массива с 5 элементами.

array = phased.ULA('NumElements',5);
radiator = phased.Radiator('Sensor',array,'OperatingFrequency',300e6);
sig = [1;1];
radiatingAngles = [30 10; 20 0]';
y = radiator(sig,radiatingAngles);

Излучите сигналы от антенной решетки с 3 элементами. Каждая антенна излучает отдельный сигнал в отдельном направлении.

array = phased.ULA('NumElements',3);
radiator = phased.Radiator('Sensor',array,'OperatingFrequency',1e9,...
    'CombineRadiatedSignals',false);
sig = [1 2 3; 2 8 -1];
radiatingAngles = [10 0; 20 5; 45 2]';
y = radiator(sig,radiatingAngles)
y = 2×3

     1     2     3
     2     8    -1

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

scmat = [0 1i; 1i 2];
radiator = phased.Radiator('Sensor', ...
    phased.CustomAntennaElement('SpecifyPolarizationPattern',true), ...
    'Polarization','Dual');
target = phased.RadarTarget('EnablePolarization',true,'ScatteringMatrix', ...
    scmat);
collector = phased.Collector('Sensor', ...
    phased.CustomAntennaElement('SpecifyPolarizationPattern',true), ...
    'Polarization','Dual');
xh = 1;
xv = 1;

Передайте горизонтальную составляющую и отобразите отраженные компоненты поляризации Shh и Svh.

x = radiator(xh,0,[0;0],eye(3));
xrefl = target(x,[0;0],eye(3));
[Shh,Svh] = collector(xrefl,[0;0],eye(3))
Shh = 0
Svh = 0.0000 + 3.5474i

Передайте вертикальную составляющую и отобразите отраженные компоненты поляризации Shv и Svv.

x = radiator(0,xv,[0;0],eye(3));
xrefl = target(x,[0;0],eye(3));
[Shv,Svv] = collector(xrefl,[0;0],eye(3))
Shv = 0.0000 + 3.5474i
Svv = 7.0947

Ссылки

[1] Деревья фургона, H. Оптимальная обработка матриц. Нью-Йорк: Wiley-межнаука, 2002.

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

Представленный в R2012a