Доброго времени суток.
Быстрая взаимная корреляция реализуется, как произведение одного спектра с другим комплексно сопряжённым. Можно получить эквивалент временной области корреляции с помощью свойств преобразования Фурье ? Ну например известно, что эффективная ширина спектра ( его площадь) умноженная на интервал корреляции (площадь корреляционной функции) есть константа. Можно ли например найти эффективную ширину спектра корреляционной функции (в частотной области) и этим получить примерно такую же картинку как корреляционная функция во временной области. Т.е. у нас есть комплексный спектр, нужно просто сложить все его отчёты и всё ?
Быстрая корреляция
- Бахурин Сергей
- Администратор
- Сообщения: 1119
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Быстрая корреляция
Мне думается, что эффективная ширина спектра ( его площадь) умноженная на интервал корреляции (площадь корреляционной функции) есть константа только для автокорреляционной функции. Мне кажется что для взаимно-корреляционной функции это в общем случае не выполняется.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Быстрая корреляция
Пусть x(t), y(t) две действительные функции.
Необходимо найти взаимную корреляцию x(t) и y(t).
Можно представить представить комплексную функцию f(t)=x(t)+i y(t)
Обозначив F(W) преобразование Фурье функции f(t),получим:
=\frac{1}{2}[F(W)+F*(N-W)])
=\frac{1}{2i}[F(W)-F*(N-W)])
W=0,1,2,...N-1
Функция взаимной корреляции:
= F^{-1} \left \{ X(W)Y^*(W) \right \})
=\frac{1}{2}\left [-iF_R(W)+F_I(W) +i (F_R(N-W) -iF_I(N-W))\right]^*)
=\frac{1}{2}\left [F_I(W)+F_I(N-W) +i(F_R(W)- F_R(N-W) )\right])
=\frac{1}{2}\left [F_R(W)+ F_R(N-W)+i(F_I(W)-F_I(N-W)\right])
Y*(W)\right\}=\frac{1}{4}\left [(F_I(W)+F_I(N-W))( F_R(W)+F_R(N-W))-(F_R(W)- F_R(N-W))(F_I(W)-F_I(N-W))\right]=)
 F_R(W)+F_I(N-W) F_R(W)+F_I(W) F_R(N-W)+F_I(N-W) F_R(N-W)-F_R(W)F_I(W)+ F_R(N-W)F_I(W) + F_R(W)F_I(N-W)-F_R(N-W)F_I(N-W)\right])
 F_R(W)+2F_I(W) F_R(N-W)\right]=)
 F(N-W)\right])
Y*(W)\right\}=\frac{1}{4}\left[ ( F_R(W)+ F_R(N-W)) (F_R(W)- F_R(N-W) ) +( F_I(W)+F_I(N-W)) (F_I(W)-F_I(N-W)\right ]=)
- F_R^2(N-W) ) + F_I^2(W)-F_I^2(N-W)\right]=)
 F^*(W)- F(N-W)F^*(N-W)\right])
=\frac{i}{4} F^{-1} \left \{ \left[ F(W) F^*(W)- F(N-W)F^*(N-W)\right] -2i Im\left[F(W) F(N-W)\right] \right \})
Необходимо найти взаимную корреляцию x(t) и y(t).
Можно представить представить комплексную функцию f(t)=x(t)+i y(t)
Обозначив F(W) преобразование Фурье функции f(t),получим:
W=0,1,2,...N-1
Функция взаимной корреляции:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Быстрая корреляция
Сравнение быстродействия на Intel Atom CPU N20 1.6 GHz RAM 1.48 GB
Подпрограмма комплексного FFT удвоенной точности из Фортрановской библиотеки IMSL.
1 способ
Вычислялось FFT X(w) функции x(t)
Вычислялось FFT Y(w) функции y(t)
Вычислялось обратное FFT от X(w)Y*(w)
2 способ
Вычислялось FFT F(w) функции x(t)+iy(t)
Вычислялось обратное FFT от преобразованной F(w) (см. формулу выше)
Вычислялась функция взаимной корреляции данных из звукового файла (16 бит) сдвинутых на 200 выборок.
Общее число выборок: 120384
Число вычисляемых функций взаимной корреляции: 100
Время вычисления:
1 способ: 51 сек
2 способ: 35 сек
Таким образом выигрыш по времени составил примерно 30%.
Литература:
http://www.ti.com/lit/an/spra291/spra291.pdf
Подпрограмма комплексного FFT удвоенной точности из Фортрановской библиотеки IMSL.
1 способ
Вычислялось FFT X(w) функции x(t)
Вычислялось FFT Y(w) функции y(t)
Вычислялось обратное FFT от X(w)Y*(w)
2 способ
Вычислялось FFT F(w) функции x(t)+iy(t)
Вычислялось обратное FFT от преобразованной F(w) (см. формулу выше)
Вычислялась функция взаимной корреляции данных из звукового файла (16 бит) сдвинутых на 200 выборок.
Общее число выборок: 120384
Число вычисляемых функций взаимной корреляции: 100
Время вычисления:
1 способ: 51 сек
2 способ: 35 сек
Таким образом выигрыш по времени составил примерно 30%.

Литература:
http://www.ti.com/lit/an/spra291/spra291.pdf
Re: Быстрая корреляция
Спасибо за ответ. Мне почему то не пришло уведомление. Только сейчас увидел.
Re: Быстрая корреляция
Может кто подскажет
У меня задача построить функцию когерентности 2 сигналов
Я рассчитал fft для обоих сигналов
Не могу найти алгоритм для C
У меня задача построить функцию когерентности 2 сигналов
Я рассчитал fft для обоих сигналов
Не могу найти алгоритм для C