step

Системный объект: фазированный. GCCEstimator
Пакет: поэтапный

Оцените направление прибытия с помощью обобщенной перекрестной корреляции

Описание

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

ang = step(sGCC,X) возвращает направление прибытия, ang, входного сигнала X. Аргумент X - матрица, задающая принятые сигналы в элементах массива, заданных в SensorArray свойство. Сигналы распространяются от одного источника. Каждый столбец в X соответствует элементам массива (если используется массив) или количеству подрешеток (если используется подрешетка). Каждая строка X представляет один моментальный снимок времени.

[ang,tau] = step(sGCC,X) возвращает задержки, tau, оцененный из корреляций между парами датчиков. Чтобы использовать этот синтаксис, установите DelayOutputPort свойство к true. Аргумент tau является P элементом, где P - количество пар датчиков, и где P = N(N-1).

[ang,R,lag] = step(sGCC,X) возвращает предполагаемые корреляции, R, между парами датчиков, когда вы устанавливаете CorrelationOutputPort свойство true. R - матрица с P столбцами P где - количество пар датчиков. Каждый столбец в R содержит корреляцию для соответствующей пары датчиков. lag - вектор-столбец, содержащая временные лаги, соответствующие строкам корреляционной матрицы. Временные лаги одинаковы для всех пар датчиков.

пример

Можно объединить необязательные входные параметры, если заданы их разрешающие свойства. Необязательные входы должны быть перечислены в том же порядке, как и их разрешающие свойства. Для примера,[ang,tau,R,lag] = step(sGCC,X) действителен, когда вы задаете оба DelayOutputPort и CorrelationOutputPort на true.

Примечание

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

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

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

Оценка GCC-PHAT, заданная как phased.GCCEstimator Системный объект.

Пример: phased.GCCEstimator

Принятый сигнал, заданный как M -by N комплексная матрица. Количество M является количеством значений выборки (моментальных снимков) сигнала, и N является количеством элементов датчика в массиве. Для подрешеток N количество подрешеток.

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

Пример: [[0;1;2;3;4;3;2;1;0],[1;2;3;4;3;2;1;0;0]]

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

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

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

Направление прихода сигнала, возвращаемое как реальный вектор-столбец 2 на 1 в форме [azimuth;elevation]. Если массив является равномерным линейным массивом, ang является скаляром, представляющим широкий угол. Угловые модули находятся в степенях, заданные относительно локальной системы координат массива.

Задержки прибытия, возвращенные как 1-байт- P реальный вектор-строка. P - количество пар датчиков, выбранных из массива.

  • Когда SensorPairSource установлено в 'Auto', P = N - 1. N - количество элементов в массиве.

  • Когда SensorPairSource установлено в 'Property'P - количество пар датчиков, заданное SensorPair свойство.

Временные модули - секунды. Этот выход включен, когда вы устанавливаете DelayOutputPort свойство к true.

Предполагаемая перекрестная корреляция между парами датчиков, возвращенная как (2 M + 1) -by P комплексно-значимая матрица, где P - количество пар датчиков, выбранных из массива.

  • Когда SensorPairSource установлено в 'Auto', P = N - 1. N - количество элементов в массиве. Столбцы в R содержат корреляции между первым датчиком и всеми другими датчиками.

  • Когда SensorPairSource установлено в 'Property'P - количество пар датчиков, заданное SensorPair свойство. Каждый столбец в R содержит корреляцию для соответствующей пары датчиков.

M - количество временных выборок в входном сигнале. Этот выход включен, когда вы устанавливаете CorrelationOutputPort свойство к true.

Время отстает, возвращается как (2 M + 1) -на-1 реальное значение вектора-столбца. M - количество временных выборок в входном сигнале. Каждая временная задержка применяется к соответствующей строке в матрице перекрестной корреляции.

Примеры

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

Оцените направление поступления сигнала с помощью GCC-PHAT. Приёмный массив представляет собой массив URA 5 на 5 элементов с разнесенными на 25 сантиметров элементами. Выберите 10 пар элементов, чтобы вычислить угол прихода. Предположим, что скорость звука в воздухе составляет 340 метров/секунду. Поступающий сигнал является последовательностью широкополосных звуков. Предположим, что сигнал приходит от 54 степеней азимута и пяти степеней повышения. Оцените угол прихода, а затем постройте график функции корреляции от задержки для пары элементов.

Загрузите сигнал и извлеките небольшой фрагмент для расчетов.

load gong;
y1 = y(1:100);

Настройте приемный массив.

N = 5;
d = 0.25;
sMic = phased.OmnidirectionalMicrophoneElement;
sURA = phased.URA([N,N],[d,d],'Element',sMic);

Симулируйте прибывающую плоскую волну с помощью WidebandCollector Системные object™.

c = 340.0;
arrivalAng = [54;5];
sWBC = phased.WidebandCollector('Sensor',sURA,...
    'PropagationSpeed',c,...
    'SampleRate',Fs,...
    'ModulatedInput',false);
signal = step(sWBC,y1,arrivalAng);

Оценка направления прибытия. Выберите 10 датчиков, чтобы коррелировать с первым элементом URA.

sensorpairs = [[2,4,6,8,10,12,14,16,18,20];ones(1,10)];
sGCC = phased.GCCEstimator('SensorArray',sURA,...
    'PropagationSpeed',c,'SampleRate',Fs,...
    'SensorPairSource','Property',...
    'SensorPair',sensorpairs,...
    'DelayOutputPort',true','CorrelationOutputPort',true);
[estimatedAng,taus,R,lags] = step(sGCC,signal);

Расчетный угол:

disp(estimatedAng)
   11.6720
    4.2189

Постройте график корреляции между датчиком 8 и датчиком 1. Эта пара соответствует четвертому столбцу матрицы корреляции. Предполагаемое значение tau (в миллисекундах) для этой пары:

disp(1000*taus(4))
    0.0238
plot(1000*lags,real(R(:,4)))
xlabel('Time lags (msec)')
ylabel('Correlation')

Figure contains an axes. The axes contains an object of type line.

Алгоритмы

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

Ссылки

[1] Charles H. Knapp and Carter, G.C., Обобщенный метод корреляции для оценки задержки по времени, транзакции IEEE по акустике, обработке речи и сигналов, Vol, ASSP-24, No4. Август 1976 года.

[2] G. Clifford Carter Coherence and Time Delay Estimation, Processions of the IEEE, vol 75, No 2, Feb 1987.

Введенный в R2015b