phased.SubbandMVDRBeamformer

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

Описание

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

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

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

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

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

Создание

Описание

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) выполняет широкополосный 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