phased.SubbandMVDRBeamformer

Широкополосный светоформатор без искажений с минимальными дисперсиями

Описание

The phased.SubbandMVDRBeamformer Система object™ реализует широкополосное минимальное отклонение без искажений сигнал луча (MVDR) на основе метода обработки поддиапазона. Этот тип beamformer также называется Capon beamformer.

Для формирования луча сигналы, поступающие в массив:

  1. Создайте phased.SubbandMVDRBeamformer Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

beamformer = phased.SubbandMVDRBeamformer создает поддиапазон MVDR beamformer Системного объекта, beamformer. Объект выполняет формирование луча MVDR поддиапазона на принимаемом сигнале.

beamformer = phased.SubbandMVDRBeamformer(Name,Value) создает поддиапазон MVDR beamformer Системного объекта, beamformer, с каждым заданным свойством Name установить на заданную Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке, как Name1, Value1..., NameN, ValueN.

Пример: beamformer = phased.SubbandMVDRBeamformer('SensorArray',phased.URA('Size',[5 5]),'OperatingFrequency',500e6) устанавливает массив датчика в однородную прямоугольную матрицу (URA) 5 на 5 со всеми другими значениями свойств URA по умолчанию. Лучевой форматор имеет рабочую частоту 500 МГц.

Свойства

расширить все

Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Массив датчиков, заданный как массив Системный объект, принадлежащий Phased Array System Toolbox. Сенсорный массив может содержать подрешетки.

Пример: phased.URA

Скорость распространения сигнала, заданная как реальная положительная скалярная величина. Модули указаны в метрах в секунду. Скорость распространения по умолчанию является значением, возвращаемым physconst('LightSpeed').

Пример: 3e8

Типы данных: single | double

Рабочая частота, заданная как положительная скалярная величина. Модули указаны в Гц.

Пример: 1e9

Типы данных: single | double

Частота дискретизации сигнала, заданная как положительная скалярная величина. Модули указаны в Гц. Системный объект использует это количество, чтобы вычислить задержку распространения в единицах измерения выборки.

Пример: 1e6

Типы данных: single | double

Количество обрабатывающих поддиапазонов, заданное как положительное целое число.

Пример: 128

Типы данных: double

Источник направления формирования луча, заданный как 'Property' или 'Input port'. Задайте, происходит ли направление формирования луча от Direction свойство этого объекта или от входного параметра, ANG. Значения этого свойства:

'Property'Задайте направление формирования луча с помощью Direction свойство.
'Input port'Задайте направление формирования луча с помощью входного параметра, ANG.

Типы данных: char

Направления формирования луча, заданные как действительный вектор 2 на 1 или вещественная матрица 2 L. Для матрицы каждый столбец задает разное направление формирования луча. Каждый столбец имеет форму [AzimuthAngle;ElevationAngle]. Азимутальные углы должны лежать между -180 ° и 180 °, а вертикальные - между -90 ° и 90 °. Все углы заданы относительно локальной системы координат массива. Модули указаны в степенях.

Пример: [40;30]

Зависимости

Чтобы включить это свойство, установите DirectionSource свойство к 'Property'.

Типы данных: single | double

Диагональный коэффициент загрузки, заданный как неотрицательный скаляр. Диагональная загрузка является методом, используемым для достижения устойчивой эффективности формирования луча, особенно когда размер образца небольшой. Небольшой размер выборки может привести к неточной оценке ковариационной матрицы. Диагональная загрузка также обеспечивает робастность из-за ошибок вектора рулевого управления. Метод диагональной загрузки добавляет положительной скалярной величины, кратную матрице тождеств к матрице выборочной ковариации.

Настраиваемый: Да

Типы данных: single | double

Включите вход обучающих данных, заданный как false или true. Когда вы устанавливаете это свойство на true, используйте входной параметр обучающих данных, XT, при запуске объекта. Установите это свойство на false для использования входных данных, X, как обучающие данные.

Типы данных: logical

Включите выход весов формирования луча, заданный как false или true. Чтобы получить веса формирования луча, установите это свойство равным true и используйте соответствующий выходной аргумент, W. Если вы не хотите получать веса, задайте для этого свойства false.

Типы данных: logical

Опция для включения выхода центральных частот поддиапазона, заданная как true или false. Чтобы получить центральные частоты поддиапазона, установите это свойство на true и используйте соответствующий выходной аргумент FREQS при вызове объекта.

Типы данных: logical

Использование

Описание

Y = beamformer(X) выполняет широкополосное формирования луча MVDR на входе, X, и возвращает сформированный лучом выход в Y. Этот синтаксис использует X для обучающих выборок для вычисления весов формирования луча. Используйте свойство «Направление», чтобы задать направление формирования луча.

Y = beamformer(X,XT) использует XT для обучающих выборок для вычисления весов формирования луча.

Y = beamformer(X,ANG) использует ANG как направление формирования луча. Этот синтаксис применяется, когда вы задаете значение свойства DirectionSource 'Input port'.

[Y,W] = beamformer(___) возвращает веса формирования луча, W. Этот синтаксис применяется, когда вы задаете значение свойства WeightsOutportPort true.

[Y,FREQS] = beamformer(___) возвращает центральные частоты поддиапазонов, FREQS. Этот синтаксис применяется, когда вы задаете значение свойства SubbandsOutportPort true.

пример

Вы можете объединить необязательные входные параметры, когда вы задаете их разрешающие свойства. Необязательные входные параметры должны быть перечислены в том же порядке, в котором они разрешают свойства. Для примера, [Y,W,FREQS] = beamformer(X,XT,ANG) действителен, когда вы задаете TrainingInport следующим true и установите DirectionSource на 'Input port'.

Входные параметры

расширить все

Широкополосный входной сигнал, заданный как M -by - N матрица, где N - количество элементов массива. M - количество выборок в данных. Если массив датчиков состоит из подрешеток, N это количество подрешеток.

Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.

Если для TrainingInport задано значение false, затем объект использует X как обучающие данные. В этом случае размерности M должны быть больше N×NB. где NB - количество поддиапазонов, заданное в NumSubbands.

Если для TrainingInport задано значение true, используйте XT аргумент для предоставления обучающих данных. В этом случае размерное M может быть любым положительным целым числом.

Пример: [1,1;j,1;0.5,0]

Типы данных: single | double
Поддержка комплексного числа: Да

Широкополосные обучающие выборки, заданные как P -by - N матрица, где N - количество элементов. Если массив датчиков состоит из подрешеток, то N представляет количество подрешеток.

Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.

Этот аргумент применяется, когда вы устанавливаете TrainingInport на true. Размерное P является количеством выборок в обучающих данных. P должно быть больше N×NB, где NB - количество поддиапазонов, заданное в свойстве NumSubbands.

Пример: FT = [1,1;j,1;0.5,0]

Типы данных: single | double
Поддержка комплексного числа: Да

Направление формирования луча, заданное как 2 -by L вещественная матрица, где L - количество направлений формирования луча. Этот аргумент применяется только, когда вы задаете свойство DirectionSource равным 'Input port'. Каждый столбец принимает форму [AzimuthAngle;ElevationAngle]. Угловые модули находятся в степенях. Угол азимута должен лежать между -180 ° и 180 °. Угол возвышения должен лежать между -90 ° и 90 °. Углы заданы относительно локальной системы координат массива.

Пример: [40 30;0 10]

Типы данных: single | double

Выходные аргументы

расширить все

Beamformed output, returned as a M -by L complex-valued matrix. Величина M является количеством выборок сигнала, и L является количеством направлений формирования луча, заданных в ANG аргумент.

Веса формирования луча, возвращенные как N -by K -by L комплексно-значимая матрица. Количество N является количеством элементов датчика или подрешеток, а K - количеством поддиапазонов, заданным свойством NumSubbands. Величина L является количеством направлений формирования луча. Каждый столбец W содержит узкополосные веса формирования луча, используемые в соответствующем поддиапазоне для соответствующих направлений.

Зависимости

Чтобы вернуть этот выход, задайте значение свойства WeightsOutputPort true.

Типы данных: single | double

Центральные частоты поддиапазонов, возвращенные как K-на-1 вектор-столбец с реальным значением. Количество K - это количество поддиапазонов, заданное свойством NumSubbands.

Зависимости

Чтобы вернуть этот выход, задайте значение свойства SubbandsOutputPort true.

Типы данных: single | double

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Примените поддиапазон MVDR формирования луча к подводному акустическому 11-элементу ULA. Падающий угол сигнала 10 азимут и 30 повышение. Сигнал является FM щебетом, имеющим полосу пропускания 1 кГц. Скорость звука - 1500 м/с.

Симулируйте сигнал

array = phased.ULA('NumElements',11,'ElementSpacing',0.3);
fs = 2e3;
carrierFreq = 2000;
t = (0:1/fs:2)';
sig = chirp(t,0,2,fs/2);
c = 1500;
collector = phased.WidebandCollector('Sensor',array,'PropagationSpeed',c,...
    'SampleRate',fs,'ModulatedInput',true,...
    'CarrierFrequency',carrierFreq);
incidentAngle = [10;0];
sig1 = collector(sig,incidentAngle);
noise = 0.3*(randn(size(sig1)) + 1j*randn(size(sig1)));
rx = sig1 + noise;

Применение формирования луча MVDR

beamformer = phased.SubbandMVDRBeamformer('SensorArray',array,...
    'Direction',incidentAngle,'OperatingFrequency',carrierFreq,...
    'PropagationSpeed',c,'SampleRate',fs,'TrainingInputPort',true, ...
    'SubbandsOutputPort',true,'WeightsOutputPort',true);
[y,w,subbandfreq] = beamformer(rx, noise);

Постройте график сигнала, который является входным для среднего датчика (канал 6), по сравнению с выходным сигналом диаграммы направленности.

plot(t(1:300),real(rx(1:300,6)),'r:',t(1:300),real(y(1:300)))
xlabel('Time')
ylabel('Amplitude')
legend('Original','Beamformed');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Beamformed.

Постройте график отклика массива

Постройте график диаграммы направленности на пять полос

pattern(array,subbandfreq(1:5).',-180:180,0,...
    'PropagationSpeed',c,'Weights',w(:,1:5));

Примените поддиапазон MVDR формирования луча к подводному акустическому 11-элементу ULA. Формирования луча поступающих сигналов для оптимизации усиления линейного FM сигнала щебета, поступающего от 0 степеней азимута и 0 степеней повышения. Сигнал имеет полосу пропускания 2,0 кГц. В сложение модуля амплитуда 2,250 кГц, мешающая синусоиде с 28 степеней азимута и 0 степеней повышения. Покажите, как формирователь луча MVDR обнуляет сигнал помехи. Отобразите шаблон массива для нескольких частот в районе 2,250 кГц. Скорость звука - 1500 метров/сек.

Симулируйте поступающий сигнал и шум

array = phased.ULA('NumElements',11,'ElementSpacing',0.3);
fs = 2000;
carrierFreq = 2000;
t = (0:1/fs:2)';
sig = chirp(t,0,2,fs/2);
c = 1500;
collector = phased.WidebandCollector('Sensor',array,'PropagationSpeed',c,...
    'SampleRate',fs,'ModulatedInput',true,...
    'CarrierFrequency',carrierFreq);
incidentAngle = [0;0];
sig1 = collector(sig,incidentAngle);
noise = 0.3*(randn(size(sig1)) + 1j*randn(size(sig1)));

Симулируйте интерферирующий сигнал

Объедините как желаемый, так и мешающий сигналы.

fint = 250;
sigint = sin(2*pi*fint*t);
interfangle = [28;0];
sigint1 = collector(sigint,interfangle);
rx = sig1 + sigint1 + noise;

Применение формирования луча MVDR

Используйте комбинированный сигнал шума и помех в качестве обучающих данных.

beamformer = phased.SubbandMVDRBeamformer('SensorArray',array,...
    'Direction',incidentAngle,'OperatingFrequency',carrierFreq,...
    'PropagationSpeed',c,'SampleRate',fs,'TrainingInputPort',true,...
    'NumSubbands',64,...
    'SubbandsOutputPort',true,'WeightsOutputPort',true);
[y,w,subbandfreq] = beamformer(rx,sigint1 + noise);
tidx = [1:300];
plot(t(tidx),real(rx(tidx,6)),'r:',t(tidx),real(y(tidx)))
xlabel('Time')
ylabel('Amplitude')
legend('Original','Beamformed')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Beamformed.

Постройте график отклика массива, показывающий Beampattern Null

Постройте график диаграммы направленности на пять полос около 2,250 кГц.

fdx = [5,7,9,11,13];
pattern(array,subbandfreq(fdx).',-50:50,0,...
    'PropagationSpeed',c,'Weights',w(:,fdx),...
    'CoordinateSystem','rectangular');

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains 5 objects of type line. These objects represent 2.1250 kHz, 2.1875 kHz, 2.2500 kHz, 2.3125 kHz, 2.3750 kHz.

Блок формирования луча помещает значение null в 28 степени для поддиапазона, содержащего 2,250 кГц.

Подробнее о

расширить все

Алгоритмы

расширить все

Ссылки

[1] Деревья фургонов, H. Optimum Array Processing. Нью-Йорк: Wiley-Interscience, 2002.

Расширенные возможности

.
Введенный в R2015b