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

 
 
> ДПФ на ПЛИС
enzaime
сообщение Feb 15 2016, 08:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 22-08-14
Пользователь №: 82 609



Хочу написать ДПФ. Чтобы оно выполнялось как можно быстрее. Определяться частоты будут например, от 0 до 100 МГц. Частота дискретизации 230 МГц. Количество определяемых частот 500, отсчётов сигнала 2000. Самое простое мне видится это параллельно определять несколько частот. Например, написать модуль, который возвращает сумму перемножений выборок сигнала с соответствующими коэффициентами. Запускать таких модулей одновременно столько штук, сколько позволяют ресурсы ПЛИС. Подавать им на вход отсчёты и коэффициенты пока не будет выполнено для всех частот. Например одновременно можно запустить 100 модулей, значит такую операцию надо повторить 5 раз. (Следующая операция запускается после выполнения предыдущей)
Главная проблема для меня это коэффициенты. Хранить для каждой частоты свои коэффициенты? Или сделать таблицу синусов/косинусов и из неё брать? Т.е. для каждого модуля своя таблица (Нпример для 100 модулей 100 одинаковых таблиц (будет храниться в rom ПЛИС), чтобы можно было одновременно считывать 100 значений) А может есть нечто более простое? В общем как-то так)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
enzaime
сообщение Feb 15 2016, 09:41
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 22-08-14
Пользователь №: 82 609



Задача: определить частоту сигнала в диапазоне 0 до 100 МГц за время <10 мкс (в идеале, но пока что хоть за какое-нибудь время)
ДПФ это я сам так взял. ПЛИС 5csema5f31c6 (Cyclone V). Насчёт определения частоты я так понял есть 2 основных алгоритма: в лоб (ДПФ) и оптимизированное (БПФ и все его разновидности (по онованию 2,4, алгоритм Винограда и т.д.))
ДПФ потому что нет ограничения что-то вроде на количество выборок сигнала (Например для БПФ по основанию 2 можно рассчитать накопления на частотах в количестве 2,4,8,16,32 ... и отсчётов должно быть столько же, а в ДПФ можно взять для примера 321 частоту и 1567 отсчётов для каждой частоты. Как-то так)
Цитата
Одновременно из памяти можно считать только два значения за один такт. Так что Ваша логика реализуется на рассыпухе и все коэффициенты займут уйму логики да еще и работать это будет все медленно при таком подходе.

Внутри ПЛИС вроде достаточно ресурсов (именно блоков памяти), чтобы организовать 100 компонентов rom размером 1024х12 слов (т.е. будет 100 компонентов rom со своими входами и выходами (100 входов тактовых, 100 входов адрес чтения, 100 выходов значения памяти по адресу). Но да в логике 100 входов адресов и 100 выходов значений по адресам займут наверно много.

Сообщение отредактировал enzaime - Feb 15 2016, 09:45
Go to the top of the page
 
+Quote Post



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

 


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


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