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 свойство к истине. R матрица со столбцами P, где P является количеством пар датчика. Каждый столбец в R содержит корреляцию для соответствующей пары датчиков. lag вектор-столбец, содержащий задержки, соответствующие строкам корреляционной матрицы. Задержки являются тем же самым для всех пар датчика.

пример

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

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства (MATLAB) и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать 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.

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

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

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

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

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

Примеры

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

Оцените направление прибытия сигнала с помощью GCC-PHAT. Массив получения является 5 5 элементами массив микрофона URA с элементами, расположенными с интервалами на расстоянии в 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')

Алгоритмы

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

Ссылки

[1] Чарльз Х. Кнапп и Картер, G.C., обобщенный метод корреляции для оценки задержки, транзакций IEEE на акустике, речи и обработке сигналов, Vol, ASSP-24, № 4. Август 1976.

[2] Когерентность Г. Клиффорда Картера и Оценка С временной задержкой, Продолжения IEEE, vol 75, № 2, февраль 1987.

Введенный в R2015b