Потоковый БПФ на 8 точек (FFT 8 point) на VHDL
В предыдущем посте про БПФ на ПЛИС был рассмотрен простейший алгоритм БПФ, который построен на базе графа прореживания по времени. Данный пост это продолжение темы FFT 8 point, но согласно схеме или графу прореживания по частоте. На базе такого графа можно построить потоковый БПФ, который будет выполняться непрерывно по мере поступления данных.
Прежде чем представить VHDL код, разберем собственно потоковый алгоритм БПФ по графу прореживания по частоте. Граф представлен на картинке ниже.
Тут также все просто. Основная операция данного алгоритма - операция бабочка, которая состоит из операций комплексного суммирования, вычитания и умножения.
Что касается потокового алгоритма - необходимо организовать за один такт вычисление бабочки, тоесть получение результата сразу на двух выходах бабочки A и B. Это даст возможность уже после получения результата первых трех бабочек первой стадии начать вычислять первую бабочку второй стадии. Ну и далее уже после вычисления первых двух бабочек второй стадии уже можно начинать вычислять первую бабочку третьей стадии. Вобщем и целом на вычисление БПФ на 8 точек по такому алгоритму понадобится всего 9 тактов. Данный алгоритм подробно рассмотрен в соответствующем букваре по БПФ и его схема выглядит так:
Только для 8 точек все начинается с разделения данных на 4 A B, а не на 8 как для БПФ на 16 точек, далее сдвиговый регистр на 4 или просто регистр с накоплением данных на 8, затем бабочка и переключатель со сдвиговыми регистрами на 2, далее должна быть опять бабочка и переключатель со сдвиговыми регистрами на 1, потом завершающая бабочка. VHDL код такого БПФ выглядит так:
Нет смысла непосредственно в посте представлять код БПФ8, поскольку он содержит файлы компонентов переключателя и бабочки. Все, в том числе и тестовые файлы для симулятораможно скачать одним архивом по ссылке представленной ниже по тексту. Архив содержит проект БПФ8 в среде Quartus90. Кому пригодится оставляйте свой коммент по ссылке для добавления комментов.
Электроника :
- Техника электроника (11)
- Полезная электроника (4)
- Электроника для всех (5)
- Техника для дома (6)
- Cхемотехника ПЛИС (11)
- Пректирование PCAD (4)
Программирование :
- Микроконтроллеры (9)
- ПЛИС VHDL Verilog (29)
- C++ Builder (7)
- Visual Studio C++ C# (7)
- Java programming (7)
- Matlab programming (4)
Сайтостроение :
- Сайтостроение HTML (5)
- Сайтостроение PHP (8)
- PHP CMS на файлах (3)
- Web инструменты (9)
- Полезное вебмастеру (11)
- SEO раскрутка сайта (4)
- PHP скрипты (3)
Реклама :
Книги и учебники :
- Шаблоны сайтов (6)
- Книги и учебники (2)
Компьютер и интернет :
Поиск по сайту :
Реклама :
Облако меток :
Бесплатная подписка :
Статистика :
- Популярность (3)
- Посещаемость (3)
- Поисковые запросы (3)