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

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

Можно использовать 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