Доброго времени суток.
Быстрая взаимная корреляция реализуется, как произведение одного спектра с другим комплексно сопряжённым. Можно получить эквивалент временной области корреляции с помощью свойств преобразования Фурье ? Ну например известно, что эффективная ширина спектра ( его площадь) умноженная на интервал корреляции (площадь корреляционной функции) есть константа. Можно ли например найти эффективную ширину спектра корреляционной функции (в частотной области) и этим получить примерно такую же картинку как корреляционная функция во временной области. Т.е. у нас есть комплексный спектр, нужно просто сложить все его отчёты и всё ?
Быстрая корреляция
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 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),получим:
W=0,1,2,...N-1
Функция взаимной корреляции:
Необходимо найти взаимную корреляцию 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