реклама на сайте
подробности

 
 
> fft/ifft для последовательности длиной 768 (=512+256)
PriBoris
сообщение Jul 27 2010, 08:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Какой эффективный алгоритм для длин такого типа (2^n+2^(n-1)) выбрать ?
Вопрос возник при попытке реализации фильтрации с помощью быстрой линейной свёртки. Длина фильтра почти 256 точек, данные поступают в реальном времени блоками по 512.

Сообщение отредактировал PriBoris - Jul 27 2010, 08:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
thermit
сообщение Jul 27 2010, 20:06
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Никаких 512-и быть тут не может, т к результат свертки 2-х последовательностей длин 512 и 256 будет иметь длину 767. Т е размер дпф должен иметь длину минимум 767. Ближайшая внятная размерность 768. Что касается 1024-х точек - уверен, что дпф на 768 точек будет быстрее. Это справедливо, если нет аппаратной поддержки перестановок. (Например, если есть аппаратная поддержка битреверсной адресации, которая используется в алгоритме к-т по основанию 2, то есть выигрыш в числе операций). Так что не парьтесь, Вы на правильном пути.

ps
Можно манипулировать дпф сигнала используя окна без умножения на дпф фильтра, как пытались посоветовать некоторые товарищи. Но это будет совсем другая история, и размер 512 тут далеко не оптимален... Хотя, все зависит от требований к точности.
Go to the top of the page
 
+Quote Post
PriBoris
сообщение Jul 28 2010, 09:49
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Цитата(thermit)
Никаких 512-и быть тут не может, т к результат свертки 2-х последовательностей длин 512 и 256 будет иметь длину 767. Т е размер дпф должен иметь длину минимум 767. Ближайшая внятная размерность 768. Что касается 1024-х точек - уверен, что дпф на 768 точек будет быстрее. Это справедливо, если нет аппаратной поддержки перестановок. (Например, если есть аппаратная поддержка битреверсной адресации, которая используется в алгоритме к-т по основанию 2, то есть выигрыш в числе операций). Так что не парьтесь, Вы на правильном пути.


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

Сегодня этот вариант реализовал и проверил в процессоре. Выигрыш по сравнению с прамой реализацией FIR составил 6 раз. На данном этапе меня это устраивает. Если в будущем не будет хватать, то буду делать 768-точечное FFT.
Большое спасибо всем откликнувшимся!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- PriBoris   fft/ifft для последовательности длиной 768 (=512+256)   Jul 27 2010, 08:33
- - Xenia   Цитата(PriBoris @ Jul 27 2010, 12:33) Воп...   Jul 27 2010, 09:03
|- - PriBoris   ЦитатаБыть может здесь было бы проще дополнить мас...   Jul 27 2010, 09:13
|- - DRUID3   Цитата(PriBoris @ Jul 27 2010, 12:13) Да,...   Jul 27 2010, 09:16
- - связист   Цитата(PriBoris @ Jul 27 2010, 12:33) Как...   Jul 27 2010, 09:10
|- - PriBoris   Цитата(связист)Про эффективные алгоритмы лучше все...   Jul 27 2010, 12:21
|- - DRUID3   Цитата(PriBoris @ Jul 27 2010, 15:21) При...   Jul 27 2010, 12:48
|- - PriBoris   Цитата(DRUID3)Это мегаерундище... Лучше сесть и сп...   Jul 27 2010, 13:02
- - thermit   768 = 3*2^8 последняя стадия по основанию 3, остал...   Jul 27 2010, 09:20
|- - Xenia   Цитата(PriBoris @ Jul 27 2010, 13:13) Да,...   Jul 27 2010, 09:31
|- - связист   Цитата(Xenia @ Jul 27 2010, 13:31) Если в...   Jul 27 2010, 09:43
|- - Xenia   Цитата(связист @ Jul 27 2010, 13:43) Наск...   Jul 27 2010, 09:51
- - bahurin   Цитата(PriBoris @ Jul 27 2010, 12:33) Как...   Jul 27 2010, 10:04
|- - Xenia   Цитата(связист @ Jul 27 2010, 13:43) Каже...   Jul 27 2010, 10:23
||- - bahurin   Цитата(Xenia @ Jul 27 2010, 14:23) А вот ...   Jul 27 2010, 10:46
|||- - Xenia   Цитата(bahurin @ Jul 27 2010, 14:46) 1. в...   Jul 27 2010, 11:35
|||- - DRUID3   Цитата(Xenia @ Jul 27 2010, 14:35) И что ...   Jul 27 2010, 11:57
|||- - bahurin   Цитата(Xenia @ Jul 27 2010, 15:35) Основа...   Jul 27 2010, 12:20
||- - DRUID3   Цитата(Xenia @ Jul 27 2010, 13:23) Попытк...   Jul 27 2010, 11:03
||- - Xenia   Цитата(DRUID3 @ Jul 27 2010, 15:03) P.P.S...   Jul 27 2010, 12:40
||- - DRUID3   Цитата(Xenia @ Jul 27 2010, 15:40) В прин...   Jul 27 2010, 14:25
||- - PriBoris   Второстепенные вопросы остались. Если кто-то может...   Jul 27 2010, 14:45
|- - PriBoris   Цитата(bahurin @ Jul 27 2010, 14:04) Как-...   Jul 27 2010, 10:39
- - thermit   ЦитатаPriBoris: Обясните пожалуйста, я не понимаю ...   Jul 27 2010, 12:50
- - thermit   ЦитатаDRUID3: Лучше сесть и спокойно разобраться -...   Jul 27 2010, 13:16
|- - DRUID3   Цитата(thermit @ Jul 27 2010, 23:06) Ника...   Jul 28 2010, 11:56
- - thermit   ЦитатаDRUID3: Согласно самому определению свертки ...   Jul 29 2010, 11:52
|- - bahurin   Цитата(thermit @ Jul 29 2010, 15:52) КИХ ...   Jul 30 2010, 05:44
- - ivan219   А какого размера относительно длинны массива должн...   Jul 30 2010, 08:11
- - thermit   Длине импульсной характеристики без 1. Цитатаbahu...   Jul 30 2010, 08:21


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 01:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016