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

 
 
> ДПФ на ПЛИС
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
bogaev_roman
сообщение Feb 15 2016, 10:14
Сообщение #3


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(enzaime @ Feb 15 2016, 12:41) *
Внутри ПЛИС вроде достаточно ресурсов (именно блоков памяти).

Еще раз - встроенная память максимум двухпортовая, т.е. Вы сможете из нее считать одновременно только два значения и практическая реализуемость описанного Вами метода, с моей точки зрения, стремится к нулю.
Цитата
Задача: определить частоту сигнала в диапазоне 0 до 100 МГц за время <10 мкс (в идеале, но пока что хоть за какое-нибудь время)

Если использовать на практике, то можно использовать метод параллельный - например, готовую корку поточного БПФ. Тогда время на рассчет спектра составит 1/Fs(частота дискретизации)*N(кол-во точек)*(~2,5-набрать выборку+сделать вычисления+сформировать обычный порядок данных на выдачу)=(1/230000000)*2048*2,5=~22мкс.
Либо последовательный (типа ДПФ) - вставить корку NCO и перемножать с сигналом на заданном произвольном временном интервале - и так последовательно для каждого бина. В этом случае на вход NCO будет подавать разный фазовый инкремент и не потребуется хранить все коэффициенты - но расчет будет очень медленным и не поточным (хотя тут можно и конвейер написать).
PS\частота 230МГц для Вашего чипа серьезная, так что следите за выполнением временных ограничений.
Go to the top of the page
 
+Quote Post



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

 


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


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