поэтапный. SubbandMVDRBeamformer

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

Описание

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

К сигналам beamform, прибывающим в массив:

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

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

beamformer = phased.SubbandMVDRBeamformer
beamformer = phased.SubbandMVDRBeamformer(Name,Value)

Описание

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

beamformer = phased.SubbandMVDRBeamformer(Name,Value) создает поддиапазон Системный объект формирователя луча MVDR, 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 Используя Системные объекты (MATLAB).

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

Пример: phased.URA

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

Пример: 3e8

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

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

Пример: 1e9

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

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

Пример: 1e6

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

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

Пример: 128

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

Типы данных: логический

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

Типы данных: логический

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

Типы данных: логический

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

Синтаксис

Y = beamformer(X)
Y = beamformer(X,XT)
Y = beamformer(X,ANG)
[Y,W] = beamformer(___)
[Y,FREQS] = beamformer(___)
[Y,W,FREQS] = beamformer(X,XT,ANG)

Описание

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

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

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

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

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

пример

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

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

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

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

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

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

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

Пример: [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
Поддержка комплексного числа: Да

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

release(obj)

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

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

Примеры

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

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

Моделируйте сигнал

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 beamforming

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');

Постройте ответ массивов

Постройте шаблон ответа для пяти полос

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

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

Моделируйте прибывающий сигнал и шум

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 beamforming

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

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')

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

Постройте шаблон ответа для пяти полос около 2,250 кГц.

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

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

Больше о

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

Алгоритмы

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

Ссылки

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

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

Введенный в R2015b