[an error occurred while processing this directive]
Однажды мне надо было сделать коррелятор длинной ~250 на 1,500,000 самплов/c
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено AntZ 11 февраля 2005 г. 15:41
В ответ на: Ну... отправлено -=ВН=- 11 февраля 2005 г. 14:45

Начал пробовать через FFT/iFFT на 512 точек (Overlap-Add). Так как два FFT писать было лень, пришлось делать битреверс, потом переходить от реальных вычислений к комплексным, потом реализовывать Overlap-add.

После недельных мучений я сделал коррелятор во времменной области, что-то типа десятка инструкций с ядром типа

RPT T0
MAC *AR0+, *CDP+, AC0
::MAC *AR1+, *CDP+, AC1

И получил полный кайф отказавшись от комплексных FFT/iFFT, битреверсов, сохраниения хвоста от предыдущего FFT, комплексных перемножений спектров и т.д.

Может в конце концов и получилось бы сделать Overlap/add корреляцию лучше чем во временной области, но цена решения в десятки раз более дорогая (по времени разработки).

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru