exponenta event banner

шаг

Системный объект: поэтапный. 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.

Примечание

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

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

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

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

Пример: phased.GCCEstimator

Принятый сигнал, заданный как M-by-N комплекснозначная матрица. Величина М - количество значений выборки (снимков) сигнала, а 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-by-P виде действительного вектора строки. P - количество пар датчиков, выбранных из массива.

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

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

Единицы времени - секунды. Этот вывод активизируется при установке DelayOutputPort свойство для true.

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

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

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

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

Временной интервал, возвращаемый в виде (2M + 1) -by-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.

Алгоритмы

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

Ссылки

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

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

Представлен в R2015b