Клуб Фанатов Светомузыки

Общий раздел => Язык Си => Тема начата: Catcatcat от 15 апреля 2021, 20:03

Название: FFT на Си
Отправлено: Catcatcat от 15 апреля 2021, 20:03
Настало время вернуться к светомузыке.
Для обработки звука нужно простое FFT понятное, что бы было типа аналоговый вход и выход по частоте.
Первое, что нашел это было лет 10 назад это был Audio Spectrum Monitor (http://elm-chan.org/works/akilcd/report_e.html)

(http://elm-chan.org/works/akilcd/lcd.jpeg)

Я перевел его код с ассемблере Атмела на ассемблер PIC, без оптимизации на 64 выборки было соотношения по скорости на 8 битках 4.4/7.5мс и это учитывая, что ядро для Атмела работало на 16МГц а у PIC на 10МГц и что у PIC не было арифметического сдвига.
Потом я код перенес на си использовал в проектах ch-светомузыки.

И вот пришло время вернуть к этой теме.

На сегодня оптимизировав код на ассемблере, для ядра пик18 частотой ядра 16 Мгц, было поучена скорость 1.9мс.

Но иметь код привязанные к 8 битке не очень удобно. По этому в последнее время стал искать, что то простое и эффективное на СИ. Что бы его можно было безболезненно перенести на любую платформу.

Испробовал много кодов в инете. Самый производительный, что нашел для Си дал 120 мс на PIC18. И вот после я вернулся к своему коду и оптимизировав его на сегодня получил такие результаты:

(https://i.ibb.co/rsqHvFC/Cat-Neo-Pixel-LED-PIC18-34.jpg)
EhPortal 1.29 © 2024, WebDev