dsp.Crosscorrelator

Взаимная корреляция двух входных параметров

Описание

dsp.Crosscorrelator Система object™ вычисляет взаимную корреляцию двух N-D входные массивы по первому измерению. Расчет может быть сделан во временном интервале или частотном диапазоне. Можно задать область через свойство Method. Во временном интервале объект применяет операцию свертки к первому входному сигналу, u, с инвертированным временем сопряженным комплексным числом второго входного сигнала, v. Вычислить взаимную корреляцию в частотном диапазоне, объекте:

  1. Берет преобразование Фурье обоих входных сигналов, приводящих к U и V.

  2. Умножает U и V*, где * обозначает сопряженное комплексное число.

  3. Вычисляет обратное преобразование Фурье продукта.

Если вы устанавливаете Method к 'Fastest', объект выбирает область, которая минимизирует количество расчетов. Для получения информации об этих методах расчета см. Алгоритмы.

Получить взаимную корреляцию в течение двух дискретного времени детерминированные входные параметры:

  1. Создайте dsp.Crosscorrelator объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

пример

xcorr = dsp.Crosscorrelator возвращает объект перекрестного коррелятора, xcorr, это вычисляет взаимную корреляцию двух входных параметров во временном интервале или частотном диапазоне.

пример

xcorr = dsp.Crosscorrelator(Name,Value) возвращает объект перекрестного коррелятора с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки.

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Область, в которой Системный объект вычисляет корреляцию, заданную как одно из следующего:

  • 'Time Domain' – Вычисляет взаимную корреляцию во временном интервале, который минимизирует использование памяти.

  • 'Frequency Domain' – Вычисляет взаимную корреляцию в частотном диапазоне. Для получения дополнительной информации см. Алгоритмы.

  • 'Fastest' – Вычисляет взаимную корреляцию в области, которая минимизирует количество расчетов.

Чтобы перекрестный коррелировать сигналы фиксированной точки, установите это свойство на 'Time Domain'.

Свойства фиксированной точки

Примечание

Сигналы фиксированной точки поддерживаются для временного интервала только. Чтобы использовать эти свойства, установите Method к 'Time Domain'.

Отметьте, чтобы использовать правила полной точности для вычислений с фиксированной точкой, заданных как одно из следующего:

  • true – Объект вычисляет все внутренние типы арифметических и выходных данных, использующие правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. В этом режиме не применяются другие свойства фиксированной точки. Никакое квантование не происходит в объекте. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.

  • false – Типами данных с фиксированной точкой управляют посредством отдельных настроек свойства фиксированной точки.

Для получения дополнительной информации смотрите Полную точность для Fixed-Point System Objects and Set System Object Fixed-Point Properties.

Округление метода для операций фиксированной точки. Для получения дополнительной информации смотрите округление режима.

Зависимости

Это свойство не отображается и не оказывает влияния на числовые результаты, когда следующим условиям отвечают:

  • FullPrecisionOverride установите на true.

  • FullPrecisionOverride установите на false, OutputDataType установите на 'Same as accumulator', ProductDataType установите на 'Full precision', и AccumulatorDataType установите на 'Full precision'

При этих условиях объект действует в режиме максимальной точности.

Кроме того, если Method установлен в любой 'Frequency Domain' или 'Fastest', RoundingMethod свойство не применяется.

Действие переполнения для операций фиксированной точки, заданных как одно из следующего:

  • 'Wrap' – Объект переносит результат своих операций фиксированной точки.

  • 'Saturate' – Объект насыщает результат своих операций фиксированной точки.

Для получения дополнительной информации о действиях переполнения смотрите режим переполнения для операций фиксированной точки.

Зависимости

Это свойство не отображается и не оказывает влияния на числовые результаты, когда следующим условиям отвечают:

  • FullPrecisionOverride установите на true.

  • FullPrecisionOverride установите на false, OutputDataType установите на 'Same as accumulator', ProductDataType установите на 'Full precision', и AccumulatorDataType установите на 'Full precision'

При этих условиях объект действует в режиме максимальной точности.

Кроме того, если Method установлен в любой 'Frequency Domain' или 'Fastest', OverflowAction свойство не применяется.

Тип данных продукта выход в этом объекте, заданном как одно из следующего:

  • 'Full precision' – Тип выходных данных продукта имеет полную точность.

  • 'Same as first input' – Объект задает тип выходных данных продукта, чтобы совпасть с тем из первого типа входных данных.

  • 'Custom' – Тип выходных данных продукта задан как пользовательский числовой тип через свойство CustomProductDataType.

Для получения дополнительной информации о типе выходных данных продукта смотрите Типы данных Умножения и раздел Fixed Point.

Зависимости

Это свойство применяется, когда вы устанавливаете FullPrecisionOverride к false.

Word и дробные длины типа данных продукта, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 30.

Зависимости

Это свойство применяется только, когда вы устанавливаете FullPrecisionOverride к false и ProductDataType к 'Custom'.

Тип данных операции накопления в этом объекте, заданном как одно из следующего:

  • 'Full precision' – Операция накопления имеет полную точность.

  • 'Same as product' – Объект задает тип данных аккумулятора, чтобы совпасть с тем из типа выходных данных продукта.

  • 'Same as first input' – Объект задает тип данных аккумулятора, чтобы совпасть с тем из первого типа входных данных.

  • 'Custom' – Тип данных аккумулятора задан как пользовательский числовой тип через свойство CustomAccumulatorDataType.

Для получения дополнительной информации о типе данных аккумулятора этот объект использование смотрите раздел Fixed Point.

Зависимости

Это свойство применяется, когда вы устанавливаете FullPrecisionOverride к false.

Word и дробные длины типа данных аккумулятора, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 30.

Зависимости

Это свойство применяется только, когда вы устанавливаете FullPrecisionOverride к false и AccumulatorDataType к 'Custom'.

Тип данных объектного выхода, заданного как одно из следующего:

  • 'Same as accumulator' – Тип выходных данных совпадает с типом типа выходных данных аккумулятора.

  • 'Same as first input' – Тип выходных данных совпадает с типом первого типа входных данных.

  • 'Same as product' – Тип выходных данных совпадает с типом типа выходных данных продукта.

  • 'Custom' – Тип выходных данных задан как пользовательский числовой тип через свойство CustomOutputDataType.

Для получения дополнительной информации о выходных данных введите этот объект использование, смотрите раздел Fixed Point.

Зависимости

Это свойство применяется, когда вы устанавливаете FullPrecisionOverride к false.

Word и дробные длины типа выходных данных, заданного как числовой тип автосо знаком с размером слова 16 и дробной длиной 15.

Зависимости

Это свойство применяется только, когда вы устанавливаете FullPrecisionOverride к false и OutputDataType к 'Custom'.

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

Синтаксис

Описание

пример

y = xcorr(u,v) вычисляет взаимную корреляцию этих двух входных сигналов, u и v.

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

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

Входной сигнал First Data, заданный как вектор, матрица или N-D массив. Объект принимает многоканальные и многомерные входные параметры с комплексным знаком или с действительным знаком. Вход может быть сигналом фиксированной точки, когда вы устанавливаете Method свойство к 'Time Domain'. Когда один или оба из входных сигналов являются комплексными, выходной сигнал является также комплексным. Оба ввода данных должны иметь совпадающий тип данных.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

Второй сигнал ввода данных, заданный как вектор, матрица или N-D массив. Объект принимает многоканальные и многомерные входные параметры с комплексным знаком или с действительным знаком. Вход может быть сигналом фиксированной точки, когда вы устанавливаете Method свойство к 'Time Domain'. Когда один или оба из входных сигналов являются комплексными, выходной сигнал является также комплексным. Оба ввода данных должны иметь совпадающий тип данных.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

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

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

Перекрестный коррелированый выход этих двух входных сигналов.

Когда входными параметрами является N-D массивы, объектные выходные параметры N-D массив. Все размерности выходного массива, за исключением первой размерности, совпадают с входным массивом. Например:

  • Когда входные параметры u и v имеют размерности Mu-by-N-by-P и Mv-by-N-by-P, соответственно, объектные выходные параметры (Mu + Mv – 1)-by-N-by-P массив.

  • Когда входные параметры u и v имеют размерности Mu-by-N и Mv-by-N, объектные выходные параметры (Mu + Mv – 1)-by-N матрица.

Если один вход является вектор-столбцом, и другим входом является N-D массив, объект вычисляет взаимную корреляцию вектора с каждым столбцом в N-D массив. Например:

  • Когда входом u является Mu-by-1 вектор-столбец, и v является Mv-by-N матрица, объектные выходные параметры (Mu + Mv – 1)-by-N матрица.

  • Точно так же, когда u и v являются вектор-столбцами с длинами Mu и Mv, соответственно, объект выполняет векторную взаимную корреляцию.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

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

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

release(obj)

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

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

Примеры

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

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом шага. Например, obj(x) становится step(obj,x).

Вычислите взаимную корреляцию между двумя синусоидальными сигналами с помощью dsp.Crosscorrelator объект. Выполните расчет во временном интервале, который является настройкой по умолчанию объекта.

xcorr = dsp.Crosscorrelator;
t = 0:0.001:1;
x1 = sin(2*pi*2*t)+0.05*sin(2*pi*50*t);
x2 = sin(2*pi*2*t);
y = xcorr(x1,x2);
figure
plot(t,x1,'b',t,x2,'g')
xlabel('Time')
ylabel('Signal Amplitude')
legend('Input signal 1','Input signal 2')

Постройте коррелированый выход.

figure, 
plot(y)
title('Correlated output')

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом шага. Например, obj(x) становится step(obj,x).

Вычислите взаимную корреляцию шумного входного сигнала с его задержанной версией. Пик корреляции, выход происходит в задержке, которая соответствует задержке между сигналами.

Используйте randn создать белый Гауссов шумный вход, x. Создайте задержанную версию этого входа, x1, использование dsp.Delay объект.

S = rng('default');
x = randn(100,1);
delay = dsp.Delay(10);
x1 = delay(x);

Вычислите взаимную корреляцию между двумя входными параметрами. Постройте корреляцию выход относительно задержки между входными параметрами.

xcorr = dsp.Crosscorrelator;
y = xcorr(x1,x);
lags = 0:99;
stem(lags,y(100:end),'markerfacecolor',[0 0 1])
axis([0 99 -125 125])
xlabel('Lags')
title('Cross-Correlation of Input Noise and Delayed Version')

Последовательность корреляции достигает максимума, когда задержка равняется 10, указывая, что правильная задержка между двумя сигналами является 10 выборками.

Больше о

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

Алгоритмы

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

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

Смотрите также

Системные объекты

Блоки

Представленный в R2012a