phased.WidebandRadiator

Широкополосный излучатель

Описание

The phased.WidebandRadiator Система object™ реализует широкополосный излучателя. Излучатель преобразует сигналы в излучаемые волновые поля, переданные от массивов и отдельных элементов датчика, таких как антенны, микрофонные элементы и гидроакустические преобразователи. Выход излучателя представляет поля на ссылку расстоянии одного метра от центра фазы элемента или массива. Алгоритм делит сигнал в каждом элементе на частотные поддиапазоны и применяет узкополосную задержку времени к каждому сигналу, используя приближение сдвига фазы. Затем задержанные поддиапазоны когерентно складываются, чтобы создать сигнал выхода. Можно затем распространить сигналы на дальнее поле, используя, например, phased.WidebandFreeSpace или phased.WidebandLOSChannel Системные объекты. Вы можете использовать этот объект для

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

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

  • излучают поля из подрешеток, созданного phased.ReplicatedSubarray и phased.PartitionedArray объекты. Вы можете управлять всеми подрешетками в одном направлении с помощью аргумента Угол поворота, STEERANG, или направлять каждую подрешетку в другом направлении с помощью аргумента Subarray element weights, WS. Излучатель распределяет степени сигнала поровну между элементами каждой подрешетки.

Для излучения сигналов:

  1. Создайте phased.WidebandRadiator Объекту и установите его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

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

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

Пример: radiator = phased.WidebandRadiator('Sensor',phased.URA,'CarrierFrequency',300e6) устанавливает массив датчиков в равномерный прямоугольный массив (URA) с значениями свойств URA по умолчанию. Лучевой форматор имеет несущую частоту 300 МГц.

Свойства

расширить все

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

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

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

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

Пример: phased.URA

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

Пример: 3e8

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

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

Пример: 1e6

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

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

Пример: 1e6

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

Количество обрабатывающих поддиапазонов, заданное как положительное целое число.

Пример: 128

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

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

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

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

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

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

Пример: 'Dual'

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

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

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

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

Описание

пример

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

пример

Y = radiator(X,ANG,LAXES) также задает локальную систему координат излучателя, LAXES. Этот синтаксис применяется, когда вы задаете свойство Поляризации равным 'Combined'.

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

Y = radiator(___,W) также задает W как элемент массива или подрешетки. Чтобы использовать этот синтаксис, задайте значение свойства WeightsInportPort 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Каждый столбец соответствует сигналу, излучаемому соответствующим элементом массива (или соответствующими подрешетками, когда поддерживаются подрешетки).

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

Зависимости

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

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

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

Пример: [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 должно быть то же самое.

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

Зависимости

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Датчик МассиваПодрешетки
phased.ReplicatedSubarray

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

phased.PartitionedArray

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

  • N матрица SE-by- 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 L матрицей или массивом ячеек 1-by-<reservedrangesplaceholder2>, где L количество излучения углов, ANG. M - длина входного сигнала, X.

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

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

Создайте URA 5 на 5 и разнесите элементы на половину длины волны. Длина волны соответствует проекту частоте 300 МГц.

Примечание.Этот пример выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов функции на эквивалентный step синтаксис. Для примера замените myObject(x) с step(myObject,x).

Создайте массив элементов Cosine 5 на 5 URA

c = physconst('LightSpeed');
fc = 100e6;
lam = c/fc;
antenna = phased.CosineAntennaElement('CosinePower',[2,2]);
array = phased.URA('Element',antenna,'Size',[5,5],'ElementSpacing',[0.5,0.5]*lam);

Создание и излучение широкополосного сигнала

Излучение широкополосного сигнала, состоящего из трех синусоидов на 2, 10 и 11 МГц. Установите частоту дискретизации 25 МГц. Излучайте поля в два направления: (30,10) степени азимута и повышения и (20,50) степени азимута и повышения.

fs = 25e6;
f1 = 2e6;
f2 = 10e6;
f3 = 11e6;
dt = 1/fs;
Tsig = 100e-6;
t = [0:dt:Tsig];
sig = 5.0*sin(2*pi*f1*t) + 2.0*sin(2*pi*f2*t + pi/10) + 4*sin(2*pi*f3*t + pi/2); 
radiatingangles = [30 10; 20 50]';
radiator = phased.WidebandRadiator('Sensor',array,'CarrierFrequency',fc,'SampleRate',fs);
radsig = radiator(sig.',radiatingangles);

Постройте график излучения сигнала

Постройте график входного сигнала к излучателю и излучаемых сигналов.

plot(t(1:300)*1e6,real(sig(1:300)))
hold on
plot(t(1:300)*1e6,real(radsig(1:300,1)))
plot(t(1:300)*1e6,real(radsig(1:300,2)))
hold off
xlabel('Time (\mu sec)')
ylabel('Amplitude')
legend('Input signal','Radiate to (30,10)','Radiate to (20,50)')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Input signal, Radiate to (30,10), Radiate to (20,50).

Постройте график спектров сигнала, который излучается до (30,10) степеней.

periodogram(real(radsig(:,1)),rectwin(size(radsig,1)),4096,fs);

Figure contains an axes. The axes with title Periodogram Power Spectral Density Estimate contains an object of type line.

Исследуйте поляризованное поле, создаваемое широкополосным излучателем из пятиэлементного однородного линейного массива (ULA), состоящей из короткодипольных антенных элементов.

Примечание.Этот пример выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов функции на эквивалентный step синтаксис. Для примера замените myObject(x) с step(myObject,x).

Установите ULA пяти короткодипольных антенн с включенной поляризацией. Интервал между элементами устанавливается на 1/2 длины волны несущей частоты. Создайте широкополосный излучателя System object(TM).

fc = 100e6;
c = physconst('LightSpeed');
lam = c/fc;
antenna = phased.ShortDipoleAntennaElement;
array = phased.ULA('Element',antenna,'NumElements',5,'ElementSpacing',lam/2);

Излучайте сигнал, состоящий из суммы трёх синусоид. Излучайте сигнал в два разных направления. Излучаемые углы являются азимутами и углами возвышения, заданными относительно локальной системы координат. Локальная система координат определяется поворотом на 10 степени вокруг оси X от глобальных координат.

fs = 25e6;
f1 = 2e6;
f2 = 10e6;
f3 = 11e6;
dt = 1/fs;
fc = 100e6;
t = [0:dt:100e-6];
sig = 5.0*sin(2*pi*f1*t) + 2.0*sin(2*pi*f2*t + pi/10) + 4*sin(2*pi*f3*t + pi/2);
radiatingAngle = [30 30; 0 20];
laxes = rotx(10);
radiator = phased.WidebandRadiator('Sensor',array,'SampleRate',fs,...
    'CarrierFrequency',fc,'Polarization','Combined');
y = radiator(sig.',radiatingAngle,laxes);

Постройте график первых 200 выборок компонентов y и z поляризованного поля, распространяющихся в [30,0] направление.

plot(10^6*t(1:200),real(y(1).Y(1:200)))
hold on
plot(10^6*t(1:200),real(y(1).Z(1:200)))
hold off
xlabel('Time (\mu sec)')
ylabel('Amplitude')
legend('Y Polarization','Z Polarization')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Y Polarization, Z Polarization.

Подробнее о

расширить все

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

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