exponenta event banner

поэтапный. FrostBeamformer

Морозообразователь

Описание

phased.FrostBeamformer объект реализует формирователь луча Frost. Формирователь луча Frost состоит из формирователя луча MVDR временной области, объединенного с банком фильтров FIR. Формирователь луча направляет луч в заданном направлении, в то время как КИХ-фильтры сохраняют мощность входного сигнала.

Для вычисления сигнала в виде луча:

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

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

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

Создание

Описание

beamformer = phased.FrostBeamformer создает object™ системы формирователя луча мороза, beamformer, со значениями свойств по умолчанию.

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

Пример: beamformer = phased.FrostBeamformer('SensorArray',phased.ULA('NumElements',20),'SampleRate',300e3) устанавливает массив датчиков в однородный линейный массив (ULA) со значениями свойств ULA по умолчанию, за исключением количества элементов. Формирователь луча имеет частоту дискретизации 300 кГц.

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Массив датчиков, заданный как объект System панели инструментов системы фазированных массивов. Массив не может содержать подмагистрали.

Пример: phased.URA

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

Пример: 3e8

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

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

Пример: 1e6

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

Длина фильтра FIR для каждого элемента датчика, заданная как положительное целое число.

Пример: 7

Типы данных: 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-by-L с действительным значением. Для матрицы каждый столбец указывает другое направление формирования луча. Каждый столбец имеет форму [AzimuthAngle;ElevationAngle]. Азимутальные углы должны лежать между -180 ° и 180 °, а углы места - между -90 ° и 90 °. Все углы определяются относительно локальной системы координат массива. Единицы измерения в градусах.

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

Зависимости

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

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

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

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

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

Описание

пример

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

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

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

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

пример

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

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

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

Входной сигнал, определяемый как комплексная матрица M-by-N. M - длина сигнала, а N - количество элементов массива, указанных в свойстве SensorArray. Длина M должна превышать длину фильтра, заданную свойством FilterLength.

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

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

Обучающие данные, указанные как матрица M-by-N с комплексными значениями. M и N равны значениям для X.

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Выходной сигнал в виде луча, возвращаемый в виде комплексного 1-by-Mvector, где M - количество строк входного сигнала X.

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

Весовые коэффициенты формирования луча, возвращаемые как вектор L-by-1 с комплексными значениями, где L - число степеней свободы формирователя луча. Число степеней свободы задается произведением числа элементов, заданного свойством SensorArray, и длины фильтра FIR, заданной свойством FilterLength.

Зависимости

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Нанесите формирование луча мороза на 11-элементную акустическую матрицу ULA. Угол падения входящего сигнала -50 градусов по азимуту и 30 градусов по отметке. Скорость звука в воздухе принимается равной 340 м/с. Сигнал добавил гауссовый белый шум.

Смоделировать сигнал.

array = phased.ULA('NumElements',11,'ElementSpacing',0.04);
array.Element.FrequencyRange = [20 20000];
fs = 8e3;
t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340;
collector = phased.WidebandCollector('Sensor',array,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'ModulatedInput',false,'NumSubbands',8192);
incidentAngle = [-50;30];
x = collector(x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x + noise;

Луч формирует сигнал.

beamformer = phased.FrostBeamformer('SensorArray',array,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'Direction',incidentAngle,'FilterLength',5);
y = beamformer(rx);

Постройте график вывода в виде луча.

plot(t,rx(:,6),'r:',t,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.

Найдите веса формирователя луча Frost, применяемые к сигналам, принимаемым в 7-элементной акустической матрице ULA. Угол падения входящего сигнала - 20∘ по азимуту и 30∘ по отметке. Сигнал добавил гауссовый белый шум. Скорость звука в воздухе предполагается 340 м/с. Используйте фильтр длиной 15.

Сначала создайте сигнал.

numelements = 7;
element = phased.OmnidirectionalMicrophoneElement('FrequencyRange',[50,10000]);
array = phased.ULA('Element',element,'NumElements',numelements,'ElementSpacing',0.04);
fs = 8e3;
t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340.0;
collector = phased.WidebandCollector('Sensor',array,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'ModulatedInput',false,'NumSubbands',8192);
incidentAngle = [-20;30];
x = collector(x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x + noise;

Создайте формирователь луча с длиной фильтра 15. Затем формируют луч поступающего сигнала и получают веса формирователя луча.

filterlength = 15;
beamformer = phased.FrostBeamformer('SensorArray',array, ...
    'PropagationSpeed',c,'SampleRate',fs,'WeightsOutputPort',true, ...
    'Direction',incidentAngle,'FilterLength',filterlength);
[y,wt] = beamformer(rx);
size(wt)
ans = 1×2

   105     1

Существует 7 * 15 = 105 весов, вычисленных как ожидалось.

Сравните выходной сигнал в виде луча с сигналом, поступающим в средний элемент матрицы.

plot(1000*t,rx(:,4),'r:',1000*t,y)
xlabel('time (msec)')
ylabel('Amplitude')
legend('Middle Element','Beamformed')

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

Алгоритмы

phased.FrostBeamformer использует алгоритм формирования луча, предложенный Фростом. Его можно считать аналогом во временной области формирователя луча без искажений минимальной дисперсии (MVDR). Алгоритм выполняет следующие действия:

  1. Направление массива в направлении формирования луча.

  2. Применяет фильтр FIR к выходному сигналу каждого датчика, чтобы получить ограничение отклика без искажения. Фильтр предназначен для каждого датчика.

  3. Этот объект System поддерживает единственную и двойную точность входных данных, свойств и аргументов. Если входные данные X - единичная точность, выходные данные - единичная точность. Если входные данные X - двойная точность, выходные данные - двойная точность. Точность вывода не зависит от точности свойств и других аргументов.

Для получения дополнительной информации о формировании луча мороза см. [1].

Ссылки

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

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

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

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