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

 
 
> Максимально возможное окно для FFT при 64МБ ОЗУ.
kolobochishe
сообщение Mar 21 2012, 10:01
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Посоветуйте алгоритм (точнее его реализацию на С или С++) для ARM9 (NXP LPC3250) с ОЗУ 64МБ.
Один рабочий нашел вот тут. "Прицепил" к своему проекту. Все работает, но до величины окна 65536. Больше - и программа виснет. Под "кучу" выделил 15МБ ОЗУ. В принципе если постараться, то можно еще 40МБ добавить.

Интересует вопрос - каковы требования к объему памяти разных алгоритмов?




Тему можно удалить. Проблема не в БПФ, а во мне sad.gif массив для получения результата не того размера подготовил krapula.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobochishe
сообщение Mar 21 2012, 11:40
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Хотя нет sm.gif тему не стоит удалять. В общем у меня получилось примерно так.

тип double (8 байт) на реальную часть и тип double (8 байт) на мнимую часть. Если величина окна 2^20=1048576, то получается на исходный массив выборок - 16МБ, плюс 8МБ на массив WStore (пока не вник, не знаю точно можно от него избавится или нет). В итоге примерно 24МБ - вот такие требования. Мне пока не хватает примерно 4МБ, поэтому окно 2^19.

Считает это дело мое устройство примерно секунд 50 (100МГц тактовая, 64МБ 100МГц SDRAM). Есть у кого алгоритмы получше?



Где то вроде видел что-то такое: сделать много FFT последовательно накладывая окна, а потом эти результаты подвергнуть еще раз какому-то преобразованию. В итоге будет большое окно с маленькими требованиями к памяти. Такое возможно?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 26 2012, 08:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(kolobochishe @ Mar 21 2012, 15:40) *
Считает это дело мое устройство примерно секунд 50 (100МГц тактовая, 64МБ 100МГц SDRAM).

А сколько нужно? 49 секунд устроит? wink.gif

И какая нужна точность по амплитуде на выходе?

Для целочисленных алгоритмов число "шумящих" разрядов растет примерно как 0.5*[log2(N)-2], так что для FFT на 65536 точек с фиксированной запятой Вы потеряете семь младших бит.

Точнее можно промоделировать в MATLAB'е.

PS. Кстати, для вещественных данных: Efficient_FFT_Computation_of_Real_Input
Go to the top of the page
 
+Quote Post
kolobochishe
сообщение Mar 26 2012, 09:33
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Цитата(blackfin @ Mar 26 2012, 13:43) *
А сколько нужно? 49 секунд устроит? wink.gif

И какая нужна точность по амплитуде на выходе?

Для целочисленных алгоритмов число "шумящих" разрядов растет примерно как 0.5*[log2(N)-2], так что для FFT на 65536 точек с фиксированной запятой Вы потеряете семь младших бит.

Точнее можно промоделировать в MATLAB'е.

PS. Кстати, для вещественных данных: Efficient_FFT_Computation_of_Real_Input


нет. 49 тоже многовато sm.gif до 5 секунд было бы хорошо.
АЦП 16 бит - поэтому очень жалко 7 бит терять. Или я неправильно понял?

Цитата(fontp @ Mar 26 2012, 12:46) *
...
Если использование длинного окна обусловлено требованиями к разрешению, кардинально ничего Вы не измените.
...
PS. Есть один такой чувак который лет 20 уже пишет книгу и библиотек про быстрые преобразования. Там посмотрите, может найдете "на месте". Там их столько, что огого. http://www.jjj.de/fxt/



Нет. Требование к разрешению примерно 100 Гц. 16384 элемента вполне хватает. Требование по времени, которое охватывает БПФ. Т.е. спектр за 1 секунду, например. Итого - 2млн элементов. Разрешение 1Гц мне не надо.

За ссылку спасибо sm.gif
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 26 2012, 09:35
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(kolobochishe @ Mar 26 2012, 13:26) *
АЦП 16 бит - поэтому очень жалко 7 бит терять. Или я неправильно понял?

Всё правильно. Если процессор целочисленный, можно посчитать FFT в целых числах - в формате "fract 24.8".

Сообщение отредактировал blackfin - Mar 26 2012, 09:36
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kolobochishe   Максимально возможное окно для FFT при 64МБ ОЗУ.   Mar 21 2012, 10:01
|- - alex_os   Цитата(kolobochishe @ Mar 21 2012, 14:40)...   Mar 21 2012, 18:25
||- - kolobochishe   Цитата(alex_os @ Mar 21 2012, 23:25) ... ...   Mar 22 2012, 03:51
|- - TigerSHARC   Цитата(kolobochishe @ Mar 21 2012, 15:40)...   Mar 23 2012, 15:52
- - kolobochishe   Вот сейчас в голову пришла такая "идея"....   Mar 22 2012, 06:43
|- - анатолий   Цитата(kolobochishe @ Mar 22 2012, 08:43)...   Mar 22 2012, 13:28
|- - fontp   QUOTE (kolobochishe @ Mar 22 2012, 10:43)...   Mar 26 2012, 07:46
- - kolobochishe   Проверил метод на практике. Не понравилось. На пла...   Mar 23 2012, 04:01
- - АНТОН КОЗЛОВ   А 6-байтовых real или float в этом компиляторе не ...   Mar 26 2012, 05:16
|- - kolobochishe   Цитата(АНТОН КОЗЛОВ @ Mar 26 2012, 10:16...   Mar 26 2012, 07:08
- - kolobochishe   Нашел в интернете интересную статью как раз о том,...   Mar 28 2012, 10:11
|- - TigerSHARC   Цитата(kolobochishe @ Mar 28 2012, 14:11)...   May 1 2012, 08:12
- - Gyga   Интовое БПФ - это до сих пор дисертабельная тема.   May 11 2012, 11:55


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:46
Рейтинг@Mail.ru


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