【发布时间】:2015-08-07 00:33:37
【问题描述】:
我正在尝试在 Xilinx Virtex 7 上将 16 位输入数据流与 Dirac Delta 进行卷积。
更具体地说,我不想将我的输入流乘以时域中的余弦,而是将其与频域中的以下表达式进行卷积: F(f) = 0.5 * (delta(f - f0) + delta(f + f0))
有人知道如何实现吗?事实上,解决我的问题的唯一可能有趣的 Xilinx IP 内核是 FIR 编译器,但我不知道如何将我的函数 F(f) 表示为该 IP 内核的“系数”输入。
编辑:从数学上讲,由于目标卷积只涉及狄拉克增量,因此可能存在一种更短的方法来避免卷积,只需在点 f0 处评估输入函数。但我也不知道如何实现..
提前谢谢你
【问题讨论】:
-
我要问为什么?在 fpga 或任何其他设备上执行乘法比卷积要简单得多,即使使用 dirac delta 也是如此。
-
实际上我的项目是关于在频域中实现 QAM 调制器。此过程的优点是频域中的滤波比时域中的滤波要简单得多,因此我希望我的调制器比标准时域调制器更快。
-
余弦乘法在时域更简单。过滤在频率上的操作成本较低,但要复杂得多,尤其是在 FPGA 上,因为您必须在跟踪边界以进行适当卷积的同时进行 FFT、乘法、IFFT。此外,FPGA 经过优化,可以在时域中使用乘法累加 DSP 执行卷积,因此通常最好采用这种方式。它可能不是算法最优的,但它是资源最优的!
-
感谢您的回答。我理解资源优化的想法..这意味着我的调制器不会更快,但我仍然必须完成我的项目......我已经在时域中实现了一个调制器,项目的下一步是与一个已实现的比较在频域。然后我将不得不比较和讨论这两种解决方案。
-
狄拉克增量的卷积不只是
+/- f0的移位吗?
标签: fpga xilinx convolution time-frequency