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 = dsp.Crosscorrelator(Name,Value)

Описание

пример

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

Для получения дополнительной информации смотрите Полную точность для 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'.

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

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

y = xcorr(u,v)

Описание

пример

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