exponenta event banner

Сигнальное излучение

Поддержка моделирования излучения сигнала

Вы можете использовать phased.Radiator и phased.Collector объекты для моделирования узкополосного сигнального излучения и сбора с помощью матрицы. Решетка может быть одним микрофоном или антенным элементом, или решеткой сенсорных элементов.

Для излучения сигнала из матрицы датчиков используйте phased.Radiator. При использовании этого объекта необходимо указать следующие аспекты радиатора:

  • Объединяется ли выходной сигнал всех сенсорных элементов

  • Рабочая частота массива

  • Скорость распространения волны

  • Датчик (один элемент) или матрица датчиков

  • Следует ли применять веса к сигналам, излучаемым различными элементами в матрице. Веса применяются при выполнении системного object™.

Излучать сигнал с помощью однородной линейной матрицы

Постройте радиатор, используя двухэлементную ULA с элементами, расположенными на расстоянии 0,5 метра друг от друга (ULA по умолчанию). Рабочая частота составляет 300 МГц, скорость распространения - это скорость света, и выходы элементов объединяются для моделирования диаграммы направленности дальнего поля.

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

array = phased.ULA('NumElements',2,'ElementSpacing',0.5);
radiator = phased.Radiator('Sensor',array,...
    'OperatingFrequency',300e6,...
    'PropagationSpeed',physconst('LightSpeed'),...
    'CombineRadiatedSignals',true);

Создайте сигнал для излучения и распространения на дальнее поле под углом (45 °, 0 °).

x = [1 -1 1 -1]';
y = radiator(x,[45;0]);

Сигнал дальнего поля является результатом умножения сигнала на шаблон матрицы. Массив - это произведение массива элементов массива и коэффициента массива. Для однородного линейного массива коэффициент массива - это суперпозиция элементов в управляющем векторе phased.SteeringVector.

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

array = phased.ULA('NumElements',2,'ElementSpacing',0.5);
steervec = phased.SteeringVector('SensorArray',array,...
    'IncludeElementResponse',true);
sv = steervec(300e6,[45;0]);
y1 = x*sum(sv);

Сравните y1 с y.

disp(y1-y)
     0
     0
     0
     0