exponenta event banner

поэтапный. SubbandMVDRBeamformer

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

Описание

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

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

  1. Создать phased.SubbandMVDRBeamformer и задайте его свойства.

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

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

Создание

Описание

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

beamformer = phased.SubbandMVDRBeamformer(Name,Value) создает поддиапазонный объект MVDR beamformer System, 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.URA

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

Пример: 3e8

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

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

Пример: 1e9

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

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

Пример: 1e6

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

Число поддиапазонов обработки, указанное как положительное целое число.

Пример: 128

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

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

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

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

Направления формирования луча, заданные как вектор 2 на 1 с действительным значением или матрица 2-by-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. Этот синтаксис применяется при задании для свойства WearingOutputPort значения true.

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

пример

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

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

развернуть все

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

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

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

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

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

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

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

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

Этот аргумент применяется при установке для TrainingInputPort значения 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

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

развернуть все

Выходной сигнал в виде луча, возвращаемый в виде комплексной матрицы M-by-L. Величина М - это количество выборок сигнала, а L - количество направлений формирования луча, указанное в ANG аргумент.

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

Зависимости

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

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

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

Зависимости

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

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

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

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

release(obj)

развернуть все

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

Примеры

свернуть все

Применить поддиапазонное формирование луча MVDR к подводной акустической 11-элементной ULA. Угол инцидента сигнала - 10 азимутов и 30 возвышений. Сигнал представляет собой чирп ЧМ, имеющий ширину полосы 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. Луч формирует поступающие сигналы для оптимизации усиления линейного ЧМ-сигнала частотной модуляции, поступающего от азимута 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.

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

Подробнее

развернуть все

Алгоритмы

развернуть все

Ссылки

[1] Деревья фургонов, H. Оптимальная обработка массива. Нью-Йорк: Wiley-Interscience, 2002.

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

.
Представлен в R2015b