Свертка Дирака Дельта на Xlinx FPGA
Я пытаюсь свернуть 16-битный поток входных данных с дельтой Дирака на Xilinx Virtex 7.
Более конкретно, вместо умножения моего входного потока на косинус во временной области, я хотел бы свернуть его с помощью следующего выражения в частотной области: F(f) = 0,5 * (delta(f - f0) + delta(f) + f0))
У кого-нибудь есть идеи о том, как это реализовать? Действительно, единственное, возможно, интересное IP-ядро Xilinx для моей проблемы - это FIR Complier, но я не знаю, как представить мою функцию F (f) как вход "коэффициента" этого IP-ядра.
РЕДАКТИРОВАТЬ: математически, поскольку целевая свертка включает только дельта Дирака, может существовать более короткий способ избежать свертки, просто оценивая входную функцию в точке f0. Но я понятия не имею о том, как реализовать это ни..
заранее спасибо
1 ответ
Xilinx имеет IP-адрес для выполнения быстрого преобразования Фурье на ПЛИС. Находясь в частотной области, вы можете самостоятельно выполнять свои операции. Вы можете использовать FIR ip core, но, поскольку ваша функция довольно проста, она будет тратить много ресурсов по сравнению с пользовательской реализацией. Наконец, ядро Xilinx может делать обратное БПФ, чтобы вернуться во временную область.
AFAIK, нет ядра для помощи в выполнении свертки в частотной области. Так что не забывайте перекрывать и добавлять свои преобразования, чтобы сделать правильный расчет. Матлаб будет твоим другом там!
Наконец, вас может заинтересовать Теоретическое преобразование чисел (NTT). Алгоритм более эффективен, чем FFT для FPGA, и его можно использовать для выполнения свертки. Недостатком является то, что существуют ограничения на длину преобразования, которое вы можете иметь, и что "коэффициент частотной области" совершенно не связан с частотой (они несколько случайны). Если все, что вам нужно в случае быстрой свертки, NTT для вас, если вы ищете другое применение для этих коэффициентов Фурье, это не так. Тем не менее, выражение косинуса NTT будет гораздо более сложным и разрушит цель вашей работы, но я подумал, что вас может заинтересовать академическая точка зрения. Как я отмечал в своем комментарии, умножение на косинус проще во временной области.