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

 
 
> Максимально возможное окно для 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 22 2012, 06:43
Сообщение #2


Местный
***

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



Вот сейчас в голову пришла такая "идея". Если разрешение по частоте допустимо порядка 100Гц, то брать последовательно по шкале времени участки (N штук) по 16384 элементов, вычислить для каждого FFT, просуммировать коэффициенты одинаковых частот и поделить на количество участков N. Получим спектральную характеристику продолжительного участка, но с небольшими требованиями к памяти и небольшим размером файла результата.

Как идея?

Одно "НО". Как суммировать коэффициенты? векторно (как комплексные числа) или по модулю?

По сути это вариант "скользящего" окна, но с суммированием.
Go to the top of the page
 
+Quote Post
fontp
сообщение Mar 26 2012, 07:46
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (kolobochishe @ Mar 22 2012, 10:43) *
Вот сейчас в голову пришла такая "идея". Если разрешение по частоте допустимо порядка 100Гц, то брать последовательно по шкале времени участки (N штук) по 16384 элементов, вычислить для каждого FFT, просуммировать коэффициенты одинаковых частот и поделить на количество участков N. Получим спектральную характеристику продолжительного участка, но с небольшими требованиями к памяти и небольшим размером файла результата.

Как идея?

Одно "НО". Как суммировать коэффициенты? векторно (как комплексные числа) или по модулю?

По сути это вариант "скользящего" окна, но с суммированием.


Идея так себе. Перидиограммы так и считают, но там ставится цель не обеспечить разрешение, а усреднить случайные флуктуации. Однако разрешение при некогерентном складывании "многих окон" не возрастет вообще, а определяется размером преобразования.

Если же складывать когерентно, но с пропусками, то шаг между бинами Фурье конечно уменьшится и будет определяться максимальным расстоянием между отсчетами. Но частотная функция окна (преобразование Фурье от временной) будет очень широко размазана и убьет всё разрешение. Т.е. значения соседних бинов будут очень сильно размазаны.

QUOTE (kolobochishe @ Mar 26 2012, 11:08) *
Хочется готовое 100% работающее решение. Имел ввиду что-то, что кардинально изменит требования к памяти и скорость, а не использование других типов. Ну и чтобы кто-нибудь поделился своим мнением и опытом по поводу различных реализаций БПФ.


Если использование длинного окна обусловлено требованиями к разрешению, кардинально ничего Вы не измените.
Скорость немного можно подправить использованием целых типов, а требование по памяти немного можно уменьшить как сказано выше, если считать синусы/косинусы итеративно, а не держать таблицу. Короткий целый тип тоже даст экономию в двое.
Кроме того можно найти реализации без всяких больших рабочих массивов WSTORE, в том числе и "на месте", т.е. такие чтобы входной массив совпадал с выходным. Теретически можно избавиться от всех таблиц (синусных и инверсной адресации) и провести преобразование "на месте". Тогда получите N/2 от ОЗУ


PS. Есть один такой чувак который лет 20 уже пишет книгу и библиотек про быстрые преобразования. Там посмотрите, может найдете "на месте". Там их столько, что огого. http://www.jjj.de/fxt/
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kolobochishe   Максимально возможное окно для FFT при 64МБ ОЗУ.   Mar 21 2012, 10:01
- - kolobochishe   Хотя нет тему не стоит удалять. В общем у меня по...   Mar 21 2012, 11:40
|- - 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
|- - blackfin   Цитата(kolobochishe @ Mar 21 2012, 15:40)...   Mar 26 2012, 08:43
|- - kolobochishe   Цитата(blackfin @ Mar 26 2012, 13:43) А с...   Mar 26 2012, 09:33
|- - blackfin   Цитата(kolobochishe @ Mar 26 2012, 13:26)...   Mar 26 2012, 09:35
|- - анатолий   Цитата(kolobochishe @ Mar 22 2012, 08:43)...   Mar 22 2012, 13:28
- - 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 Текстовая версия Сейчас: 30th July 2025 - 10:04
Рейтинг@Mail.ru


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