exponenta event banner

поэтапный. GSCBeamformer

Обобщенный боковой компенсатор луча

Описание

phased.GSCBeamformer Система object™ реализует обобщенный формирователь луча гашения боковых зон (GSC). Формирователь луча GSC разделяет поступающие сигналы на два канала. Один канал проходит через обычный тракт формирователя луча, а второй - в боковой тракт гашения. Алгоритм сначала предварительно направляет матрицу в направлении формирования луча, а затем адаптивно выбирает веса фильтра, чтобы минимизировать мощность на выходе пути гашения боковой зоны. Алгоритм использует наименьшие средние квадраты (LMS) для вычисления адаптивных весов. Конечный сигнал формирования луча представляет собой разность между выходами двух трактов.

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

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

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

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

Создание

Описание

beamformer = phased.GSCBeamformer создает объект GSC beamformer System, beamformer, со значениями свойств по умолчанию.

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

Пример: beamformer = phased.GSCBeamformer('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 тракта сигнала, заданная как положительное целое число. Это свойство определяет размер адаптивного фильтра для пути отмены бокового узла. КИХ-фильтр для обычного пути формирования луча представляет собой дельта-функцию одинаковой длины.

Пример: 4

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

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

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

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

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

Описание

пример

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

пример

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

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте формирователь луча GSC для 11-элементной акустической матрицы в воздухе. На матрицу падают чирпирующий сигнал на - 50∘ по азимуту и 0∘ по отметке. Сравните сигнал GSC в виде луча с сигналом Frost в виде луча. Скорость распространения сигнала составляет 340 м/с, а частота дискретизации - 8 кГц.

Создайте микрофон и массив системных объектов. Расстояние между элементами матрицы составляет половину длины волны. Установите частоту сигнала равной половине частоты Найквиста.

c = 340.0;
fs = 8.0e3;
fc = fs/2;
lam = c/fc;
transducer = phased.OmnidirectionalMicrophoneElement('FrequencyRange',[20 20000]);
array = phased.ULA('Element',transducer,'NumElements',11,'ElementSpacing',lam/2);

Смоделировать сигнал частотной частоты с полосой пропускания 500 Гц.

t = 0:1/fs:.5;
signal = chirp(t,0,0.5,500);

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

collector = phased.WidebandCollector('Sensor',array,'PropagationSpeed',c, ...
    'SampleRate',fs,'ModulatedInput',false,'NumSubbands',512);
incidentAngle = [-50;0];
signal = collector(signal.',incidentAngle);
noise = 0.5*randn(size(signal));
recsignal = signal + noise;

Формирование луча мороза производить под фактическим углом падения.

frostbeamformer = phased.FrostBeamformer('SensorArray',array,'PropagationSpeed', ...
    c,'SampleRate',fs,'Direction',incidentAngle,'FilterLength',15);
yfrost = frostbeamformer(recsignal);

Выполните формирование луча GSC и постройте график выхода формирователя луча по выходу формирователя луча Frost. Также постройте график непереданного сигнала, поступающего в средний элемент матрицы.

gscbeamformer = phased.GSCBeamformer('SensorArray',array, ...
    'PropagationSpeed',c,'SampleRate',fs,'Direction',incidentAngle, ...
    'FilterLength',15);
ygsc = gscbeamformer(recsignal);
plot(t*1000,recsignal(:,6),t*1000,yfrost,t,ygsc)
xlabel('Time (ms)')
ylabel('Amplitude')

Figure contains an axes. The axes contains 3 objects of type line.

Увеличьте изображение небольшой части выходных данных.

idx = 1000:1300;
plot(t(idx)*1000,recsignal(idx,6),t(idx)*1000,yfrost(idx),t(idx)*1000,ygsc(idx))
xlabel('Time (ms)')
legend('Received signal','Frost beamformed signal','GSC beamformed signal')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Received signal, Frost beamformed signal, GSC beamformed signal.

Создайте формирователь луча GSC для 11-элементной акустической матрицы в воздухе. На матрицу падают чирпирующий сигнал на - 50∘ по азимуту и 0∘ по отметке. Вычисляют сигнал, сформированный лучом, в направлении падающей волны и в другом направлении. Сравните два выхода в виде луча. Скорость распространения сигнала составляет 340 м/с, а частота дискретизации - 8 кГц. Создайте микрофон и массив системных объектов. Расстояние между элементами матрицы составляет половину длины волны. Установите частоту сигнала равной половине частоты Найквиста.

c = 340.0;
fs = 8.0e3;
fc = fs/2;
lam = c/fc;
transducer = phased.OmnidirectionalMicrophoneElement('FrequencyRange',[20 20000]);
array = phased.ULA('Element',transducer,'NumElements',11,'ElementSpacing',lam/2);

Смоделировать сигнал частотной частоты с полосой пропускания 500 Гц.

t = 0:1/fs:0.5;
signal = chirp(t,0,0.5,500);

Создайте падающее волновое поле, попадающее в массив.

collector = phased.WidebandCollector('Sensor',array,'PropagationSpeed',c, ...
    'SampleRate',fs,'ModulatedInput',false,'NumSubbands',512);
incidentAngle = [-50;0];
signal = collector(signal.',incidentAngle);
noise = 0.1*randn(size(signal));
recsignal = signal + noise;

Выполните формирование луча GSC и постройте график выходов формирователя луча. Также постройте график непереданного сигнала, поступающего в средний элемент матрицы.

gscbeamformer = phased.GSCBeamformer('SensorArray',array, ...
    'PropagationSpeed',c,'SampleRate',fs,'DirectionSource','Input port', ...
    'FilterLength',5);
ygsci = gscbeamformer(recsignal,incidentAngle);
ygsco = gscbeamformer(recsignal,[20;30]);
plot(t*1000,recsignal(:,6),t*1000,ygsci,t*1000,ygsco)
xlabel('Time (ms)')
ylabel('Amplitude')
legend('Received signal at element','GSC beamformed signal (incident direction)', ...
    'GSC beamformed signal (other direction)','Location','southeast')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Received signal at element, GSC beamformed signal (incident direction), GSC beamformed signal (other direction).

Увеличьте изображение небольшой части выходных данных.

idx = 1000:1300;
plot(t(idx)*1000,recsignal(idx,6),t(idx)*1000,ygsci(idx),t(idx)*1000,ygsco(idx))
xlabel('Time (ms)')
legend('Received signal at element','GSC beamformed signal (incident direction)', ...
    'GSC beamformed signal (other direction)','Location','southeast')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Received signal at element, GSC beamformed signal (incident direction), GSC beamformed signal (other direction).

Алгоритмы

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

Ссылки

[1] Гриффитс, Л. Дж. и Чарльз У. Джим. «Альтернативный подход к линейно-ограниченному адаптивному формированию луча». Транзакции IEEE по антеннам и распространению, 30.1 (1982): 27-34.

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

[3] Джонсон, Д. Х., и Дэн Э. Даджеон, Array Signal Processing, Englewood Cliffs: Prentice-Hall, 1993.

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

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