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