Потоковый БПФ на 8 точек (FFT 8 point) на VHDL

FFT 8 point на VHDLВ предыдущем посте про БПФ на ПЛИС был рассмотрен простейший алгоритм БПФ, который построен на базе графа прореживания по времени. Данный пост это продолжение темы FFT 8 point, но согласно схеме или графу прореживания по частоте. На базе такого графа можно построить потоковый БПФ, который будет выполняться непрерывно по мере поступления данных.

Прежде чем представить VHDL код, разберем собственно потоковый алгоритм БПФ по графу прореживания по частоте. Граф представлен на картинке ниже.

fft 8 point прореживание по частоте

Тут также все просто. Основная операция данного алгоритма - операция бабочка, которая состоит из операций комплексного суммирования, вычитания и умножения.

FFT бабочка прореживание по частоте

Что касается потокового алгоритма - необходимо организовать за один такт вычисление бабочки, тоесть получение результата сразу на двух выходах бабочки A и B. Это даст возможность уже после получения результата первых трех бабочек первой стадии начать вычислять первую бабочку второй стадии. Ну и далее уже после вычисления первых двух бабочек второй стадии уже можно начинать вычислять первую бабочку третьей стадии. Вобщем и целом на вычисление БПФ на 8 точек по такому алгоритму понадобится всего 9 тактов. Данный алгоритм подробно рассмотрен в соответствующем букваре по БПФ и его схема выглядит так:

Поточная схема БПФ

Только для 8 точек все начинается с разделения данных на 4 A B, а не на 8 как для БПФ на 16 точек, далее сдвиговый регистр на 4 или просто регистр с накоплением данных на 8, затем бабочка и переключатель со сдвиговыми регистрами на 2, далее должна быть опять бабочка и переключатель со сдвиговыми регистрами на 1, потом завершающая бабочка. VHDL код такого БПФ выглядит так:

Нет смысла непосредственно в посте представлять код БПФ8, поскольку он содержит файлы компонентов переключателя и бабочки. Все, в том числе и тестовые файлы для симулятораможно скачать одним архивом по ссылке представленной ниже по тексту. Архив содержит проект БПФ8 в среде Quartus90. Кому пригодится оставляйте свой коммент по ссылке для добавления комментов.

Top.Mail.Ru