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

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

Чтобы смоделировать набор сигнала с элементом датчика или сенсорной матрицей, можно использовать 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]);