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

 
 
6 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> FFT на асм для ARM7TDMI (AT91SAM7xx)
hd44780
сообщение Nov 15 2012, 08:05
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



На Си нашёл, вставил в программу - тормозит оно. Конечно, гораздо лучше, чем на AVR, но всё равно не айс.
Надо сделать аудио-анализатор. Сделать-сделал, осциллограммы рисует великолепно, рендер быстрый для дисплея написал, а с FFT проблемы.
А если ещё и стерео запустить - вообще ступор почти будет...

Нет ли у кого реализации на асме, типа как Чен для AVR-ов?
Сам я ейный ассемблер практически не знаю sad.gif .
Спасибо.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2012, 08:20
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(hd44780 @ Nov 15 2012, 11:05) *
На Си нашёл, вставил в программу - тормозит оно.
Спасибо.

Небось, в плавучке?sm.gif
Тем более, что смотря какой анализатор - набор согласованных фильтров по фиксированной сетке частот может оказаться лучше.

Сообщение отредактировал _Pasha - Nov 15 2012, 08:22
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 15 2012, 10:52
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Нет, не на плавучке lol.gif
Выдрал у Геннадия - http://www.cqham.ru/forum/showthread.php?t=9688 100% целочисленная арифметика.
Даже слегка пооптимизировал его sm.gif .
Там есть макросы
#define FFT_POWER 8
#define FFT_N (1 << FFT_POWER) // 256

У него величина FFT_POWER в доп. цикле определялась. Зачем - непонятно, ведь она уже есть ...

А где почитать про "набор согласованных фильтров по фиксированной сетке частот"? Или что-нибудь "для подражания" sm.gif
Я в этих делах - почти ноль sad.gif Это типа набора фильтров на определённые частоты?

Вот, нашёл сие - http://www.renan.org/ARM/doc/Apps16pdf.pdf
но, похоже, только общие слова sad.gif


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 15 2012, 10:59
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(hd44780 @ Nov 15 2012, 14:52) *
Выдрал у Геннадия - http://www.cqham.ru/forum/showthread.php?t=9688 100% целочисленная арифметика.


Уточните, откуда вы его там выдрали? А то я в упор не вижу в той ссылке чего-либо про FFT.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 15 2012, 11:12
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



В конце есть архив исходниками разными - TC1-Oct-30-2012.zip‎ Там есть файлы fft.c и прочее.
Окна Хэмминга и Ханнинга в комплекте sm.gif .
Добро обнаружил, в общем-то случайно, когда с дисплеем на ILI9320 разбирался.

Я вложил сюда, чтобы там не шарить.

Даже для какого-то ARM9 нашёл на асме - http://www.elsevierdirect.com/v2/companion...N=9781558608740 biggrin.gif

Вот бабочка для ARM7TDMI - http://www.platan.ru/shem/pdf/bpf.pdf
Остальное обещает на http://www.platan.ru/shem/ , но там Error 404 sad.gif
Прикрепленные файлы
Прикрепленный файл  FFT.ZIP ( 6.31 килобайт ) Кол-во скачиваний: 26
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2012, 12:07
Сообщение #6


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(hd44780 @ Nov 15 2012, 13:52) *
Нет, не на плавучке lol.gif

А где почитать про "набор согласованных фильтров по фиксированной сетке частот"? Или что-нибудь "для подражания" sm.gif
Я в этих делах - почти ноль sad.gif Это типа набора фильтров на определённые частоты?


Вот, с кортехом-м4 уже не шутошное действо, эта плавучка.
Книжка:
затертых годов... чётта с разбегу не нахожу. Страница 67-74
Да, и поделитесь размером окна FFT, чтоли ...sm.gif

Сообщение отредактировал _Pasha - Nov 15 2012, 12:10
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 15 2012, 12:13
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Спасибо, почитаю.
Размер окна сейчас - 256 байт. Хоть осциллограмма красивее на 8кБ biggrin.gif

Как я выше приводил:
#define FFT_POWER 8
#define FFT_N (1 << FFT_POWER) // 256


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Nov 15 2012, 12:26
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Я затащил к себе в проект (на будущее использование) это из конкурсной работы AR1731 одного программиста на приз журнала Circuit Cellar.
Оригинальные файлы здесь. Там не в реальном времени, просто демонстрация принципа работы.

Сообщение отредактировал Genadi Zawidowski - Nov 15 2012, 12:28
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2012, 12:28
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



А заинлайнить BitShift() и Butterfly() слабо? sm.gif
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 15 2012, 12:39
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Genadi Zawidowski, я так и подумал, т.к. оно у Вас фактически нигде не используются. Даже пытался искать по AR1731 - не нашёл. Спасибо.
_Pasha, попробую вечером дома. потом отпишусь.
Там ещё входной разъём почти отвалился, запаять надо.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 15 2012, 18:11
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Разъём припаял, inline вставил.
Закрутился чуть быстрее, но всё равно тормоза.
Но даже не это суть. Там полосок 10 вначале прыгают, дальше тишина .... Остальные - редко-редко ... На входе обычная песня (попса biggrin.gif ) с компа, частот там валом всяких.
Наверное там сам алгоритм "неправильный" sad.gif .


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 15 2012, 18:23
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



A. N. Sloss ... ARM System Developer's Guide - лежит в закромах.
Начиная со стр 303.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2012, 18:41
Сообщение #13


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(hd44780 @ Nov 15 2012, 21:11) *
Наверное там сам алгоритм "неправильный" sad.gif .

Дык можно ж свипом 0-20кГц пощщупать..
Go to the top of the page
 
+Quote Post
hd44780
сообщение Nov 15 2012, 19:13
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Viko, нашёл, скачал...

_Pasha, видимо придётся... А не знаете какую-нибудь прогу для генерации частот? Где-то натыкался, не помню ...


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Nov 15 2012, 19:44
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(hd44780 @ Nov 15 2012, 23:13) *
прогу для генерации частот? Где-то натыкался, не помню ...


В том же моём проекте встроена генерация многочастотного сигнала - я с её помощью и проверял алгоритм (то как я его переносил к себе).

Получение очередного семпла с АЦП - GetADCVoltage() - самое начало файла hardware.c - там я даже шум пытался замешать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:10
Рейтинг@Mail.ru


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