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

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

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

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

The 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 °, cos (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]);