phased.MVDRBeamformer

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

Описание

Поэтапный. MVDRBeamformer System object™ реализует узкополосный светоформатор с минимальной дисперсией без искажений (MVDR). Beamformer MVDR также называется beamformer Capon. MVDR beamformer принадлежит к семейству оптимизационных beamformer с ограничениями.

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

  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

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

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

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

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

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

Источник направления формирования луча, заданный как '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

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

Пример: 5

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

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

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

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

Описание

пример

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

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

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

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

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

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

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

Входной сигнал, заданный как комплексная матрица M -by N. N - количество элементов массива. Если массив датчиков содержит подрешетки, N количество подрешеток. Если для TrainingInport задано значение 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]

Зависимости

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

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Применить формирователь луча MVDR к ULA с 5 элементами. Падающий угол сигнала составляет 45 степени по азимуту и 0 степени по повышению. Частота сигнала составляет 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;

Вычислите веса формирования луча

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

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

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

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

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains an object of type line. This object represents 300 MHz.

Алгоритмы

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

Ссылки

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

[2] Frost, O. «Алгоритм для линейно ограниченной обработки адаптивных массивов», труды IEEE. Том 60, № 8, август 1972, с. 926-935.

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

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