[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено ВН 10 сентября 2003 г. 19:57
В ответ на: Кто может поделиться информацией по алгоритмам bit-reversal для БПФ? Какие лучше, где посмотреть литературу? отправлено msize 10 сентября 2003 г. 13:09

Если интересует битреверс индекса массива и никак нельзя воспользоваться аппаратной поддержкой, то кроме простого сдвига и табличного, например по байтам, методов, ниже еще один метод.
Для 16-ти разрядного индекса.
При меньшей разрядности - либо вход сдвинуть влево, либо выход вправо.
Медленней, конечно, чем таблица. Но быстрее простого сдвига. На сколько - от проц. зависит. Для с54 раза в полтора.
Карты так тасуют.

int bitrindx(int indx)
{
indx=((indx&0x5555)<<1)|((indx&0xAAAA)>>1);
indx=((indx&0x3333)<<2)|((indx&0xCCCC)>>2);
indx=((indx&0x0f0f)<<4)|((indx&0xf0f0)>>4);
indx=((indx&0x00ff)<<8)|((indx&0xff00)>>8);
return indx;
}




А если первую операцию выкинуть - будет четвертичноинверсная перестановка. Digit reverse с digit'ом=4.
Еще пара замечаний, касательно FFT уже.
Собственно битреверсная адресация может понадобиться только для sin,cos таблиц. Для данных она может оказаться и ненужной. Т.е. ненужной, как отдельная операция перестановки данных в массиве.
Но дополнит. массив размером=размеру массива данных может потребоваться и маленькая циклическая таблица.
Например для fft с прореживанием по времени по основ. 4, размер этой таблички=длине fft/16.
Для того же примера - вх. данные в естественном порядке. Адресация на первой ступени внутри бабочки по осн. 4 с индексом=длине/4. При переходе с бабочки на бабочку - с 1.
На второй ступени, на каждой подступени, с индексом=длине/16 внутри бабочки и 1 с бабочки на бабочку. И т.д.
А чтобы и естественный порядок на выходе поиметь, используется вышеупомянутый дополн. массив и табличка, но только на последней ступени fft. Результат кладется в доп. массив.
Времени отжирает намного меньше, чем явная перестановка данных в массиве. Но ценой памяти.


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru