Набор сигнала

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

Чтобы смоделировать набор сигнала с элементом датчика или сенсорной матрицей, можно использовать phased.Collector или phased.WideBandCollector. Оба объекта коллектора принимают, что инцидентные сигналы распространили к местоположению элементов массива, но не были получены массивом. Другими словами, объекты коллектора не моделируют фактический прием массивом. Смотрите Предусилитель Получателя для эффектов сигнала, связанных с усилением и внутренним шумом получателя массива.

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

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

Когда вы используете узкополосный коллектор, phased.Collector, необходимо задать эти аспекты коллектора:

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

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

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

  • Тип входящей волны. Выбором является 'Plane' и 'Unspecified'. Если вы выбираете 'Plane', входные сигналы являются несколькими плоскими волнами, посягающими на целый массив. Каждая плоская волна получена всеми элементами сбора. Если вы выбираете 'Unspecified', входной сигнал отдельные волны, посягающие на отдельные датчики.

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

Когда вы используете широкополосный коллектор, phased.WidebandCollector, необходимо задать эти аспекты коллектора:

  • Несущая частота

  • Демодулируется ли сигнал к основной полосе

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

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

  • Выборка уровня

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

  • Тип входящей волны. Выбором является 'Plane' и 'Unspecified'. Если вы выбираете 'Plane', входные сигналы являются несколькими плоскими волнами, посягающими на целый массив. Каждая плоская волна получена всеми элементами сбора. Если вы выбираете 'Unspecified', входной сигнал отдельные волны, посягающие на отдельные датчики.

  • Применить ли веса к сигналам, собранным различными элементами в массиве. Если вы хотите применить веса, вы задаете их, когда вы выполняете Системный объект.

Узкополосный коллектор для универсальной линейной матрицы

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

Создайте Системные объекты коллектора и массив.

array = phased.ULA('NumElements',2,'ElementSpacing',0.5);
collector = phased.Collector('Sensor',array,...
    'PropagationSpeed',physconst('LightSpeed'),...
    'OperatingFrequency',3e8,'Wavefront','Plane');

Создайте сигнал и моделируйте прием от угла (45; 0).

x =[1 -1 1 -1]';
y = collector(x,[45;0])
y = 4×2 complex

   0.4433 - 0.8964i   0.4433 + 0.8964i
  -0.4433 + 0.8964i  -0.4433 - 0.8964i
   0.4433 - 0.8964i   0.4433 + 0.8964i
  -0.4433 + 0.8964i  -0.4433 - 0.8964i

В предыдущем случае объект коллектора умножает входной сигнал, x, соответствующим элементом держащегося вектора для двухэлементного ULA. Следующий код производит ответ эквивалентным способом. Во-первых, создайте ULA и затем создайте держащийся вектор. Сравните с предыдущим результатом.

array = phased.ULA('NumElements',2,'ElementSpacing',0.5);
steeringvec = phased.SteeringVector('SensorArray',array);
sv = steeringvec(3e8,[45;0]);
x =[1 -1 1 -1]';
y1 = x*sv.'
y1 = 4×2 complex

   0.4433 - 0.8964i   0.4433 + 0.8964i
  -0.4433 + 0.8964i  -0.4433 - 0.8964i
   0.4433 - 0.8964i   0.4433 + 0.8964i
  -0.4433 + 0.8964i  -0.4433 - 0.8964i

Узкополосный коллектор для одного элемента антенны

Свойство Sensor Системы phased.Collector object™ может указать один элемент антенны. В этом примере создайте пользовательский элемент антенны с помощью Системного объекта phased.CustomAntennaElement. Элемент антенны имеет ответ косинуса по углам повышения от (-90 °, 90 °). Постройте полярный ответ шаблона антенны на уровне 1 ГГц на сокращении повышения в азимуте на 0 °. Отобразите ответ напряжения антенны в азимуте на 0 ° и повышение на 45 °.

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

fc = 1e9;
antenna = phased.CustomAntennaElement;
antenna.AzimuthAngles = -180:180;
antenna.ElevationAngles = -90:90;
antenna.MagnitudePattern = mag2db(...
    repmat(cosd(antenna.ElevationAngles)',1,numel(antenna.AzimuthAngles)));
resp = antenna(fc,[0;45])
resp = 0.7071
pattern(antenna,fc,0,[-90:90],'Type','powerdb')

Ответ напряжения антенны в азимуте на 0 ° и повышение на 45 ° составляют because(45 °), как ожидалось.

Примите узкополосный синусоидальный входной инцидент на элементе антенны от азимута на 0 ° и повышения на 45 °. Определите сигнал, собранный в элементе.

collector = phased.Collector('Sensor',antenna,'OperatingFrequency',fc);
x =[1 -1 1 -1]';
y = collector(x,[0;45])
y = 4×1

    0.7071
   -0.7071
    0.7071
   -0.7071

Широкополосный набор сигнала

Этот пример показывает, как моделировать прием широкополосного акустического сигнала одним элементом ненаправленного микрофона.

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

x = randn(10,1);
c = 340.0;
microphone = phased.OmnidirectionalMicrophoneElement(...
    'FrequencyRange',[20 20e3],'BackBaffled',true);
collector = phased.WidebandCollector('Sensor',microphone,...
    'PropagationSpeed',c,'SampleRate',50e3,...
    'ModulatedInput',false);
y = collector(x,[30;10]);
Для просмотра документации необходимо авторизоваться на сайте