phased.MVDRBeamformer

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

Описание

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

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

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

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

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

Создание

Описание

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

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

Пример: beamformer = phased.MVDRBeamformer('SensorArray',phased.URA,'OperatingFrequency',300e6) устанавливает сенсорную матрицу на универсальный прямоугольный массив (URA) со значениями свойств URA по умолчанию. Формирователь луча имеет рабочую частоту 300 МГц.

Свойства

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

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

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

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

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

Пример: phased.URA

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

Пример: 3e8

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

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

Пример: 1e9

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

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

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

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

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

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

Источник 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

Количество битов раньше квантовало компонент сдвига фазы формирователя луча или регулирующий векторные веса в виде неотрицательного целого числа. Значение нуля указывает, что никакое квантование не выполняется.

Пример 5

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

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

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

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

Описание

пример

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

Y = beamformer(X,XT) использование XT как обучающие выборки, чтобы вычислить beamforming веса. Чтобы использовать этот синтаксис, установите свойство TrainingInputPort на true.

Y = beamformer(X,ANG) использование ANG как beamforming направление. Чтобы использовать этот синтаксис, установите свойство DirectionSource на 'Input port'.

Y = beamformer(X,XT,ANG) объединения все входные параметры. Чтобы использовать этот синтаксис, установите TrainingInputPort свойство к true и набор свойство DirectionSource к 'Input port'.

[Y,W] = beamformer(___) возвращает beamforming веса, W. Чтобы использовать этот синтаксис, установите свойство WeightsOutputPort на true.

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

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

Входной сигнал в виде M с комплексным знаком-by-N матрица. N является количеством элементов массива. Если сенсорная матрица содержит подрешетки, N является количеством подрешеток. Если вы устанавливаете TrainingInputPort на false, M должен быть больше, чем N; в противном случае M может быть любым положительным целым числом.

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

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

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

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

Пример: [1 0.5 2.6; 2 -0.2 0; 3 -2 -1]

Зависимости

Чтобы включить этот аргумент, установите свойство TrainingInputPort на true.

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

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

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

Зависимости

Чтобы включить этот аргумент, установите свойство DirectionSource на 'Input port'.

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

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

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

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

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

Веса Beamforming, возвращенные как N с комплексным знаком-by-L матрица. Если сенсорная матрица содержит подрешетки, N является количеством подрешеток; в противном случае N является числом элементов. L является количеством beamforming направлений.

Зависимости

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Примените формирователь луча MVDR к ULA с 5 элементами. Инцидентный угол сигнала является 45 градусами в области азимута и 0 степенями в области вертикального изменения. Частота сигнала составляет.01 герц. Несущая частота составляет 300 МГц.

t = [0:.1:200]';
fr = .01;
xm = sin(2*pi*fr*t);
c = physconst('LightSpeed');
fc = 300e6;
rng('default');
incidentAngle = [45;0];
array = phased.ULA('NumElements',5,'ElementSpacing',0.5);
x = collectPlaneWave(array,xm,incidentAngle,fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;

Вычислите beamforming веса

beamformer = phased.MVDRBeamformer('SensorArray',array,...
    'PropagationSpeed',c,'OperatingFrequency',fc,...
    'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = beamformer(rx);

Постройте сигналы

plot(t,real(rx(:,3)),'r:',t,real(y))
xlabel('Time')
ylabel('Amplitude')
legend('Original','Beamformed')

Постройте диаграмму направленности массивов с помощью весов MVDR

pattern(array,fc,[-180:180],0,'PropagationSpeed',c,...
    'Weights',w,'CoordinateSystem','rectangular',...
    'Type','powerdb');

Алгоритмы

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

Ссылки

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

[2] Застыньте, O. “Алгоритм Для Линейно Ограниченной Адаптивной Обработки матриц”, Продолжения IEEE. Издание 60, Номер 8, август 1972, стр 926–935.

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

Введенный в R2011a