将衰减包络应用于波形而不进行相乘

发布于 2024-12-18 10:54:23 字数 301 浏览 1 评论 0原文

我正在尝试使用 Verilog 将衰减包络应用于正弦波形。硬件限制阻止使用乘法来简单地乘以包络。正弦值和包络值(我只是使用 1-exp(-x))存储在 ROM 中以加快速度。

现在,如果正弦值较大,我只是通过从正弦值中减去指数值来计算输出样本。如果指数值大于正弦值,则输出样本为零。这工作得很好,但是要减去的当前指数值需要通过正弦波上的当前位置进行调制,以便在正弦波最大时减去满值,在正弦为零时减去零。

我很感激任何人可以提供的任何建议,如果需要,我可以提供更多详细信息。如果这不适合解决 Verilog 问题,还有其他地方更好吗?

谢谢!

I'm trying to apply a decay envelope to a sinusoidal waveform using Verilog. Hardware constraints prevent use of multiplication to simply multiply by the envelope. The sine values and envelope values, for which I'm simply using 1-exp(-x), are stored in ROMs to speed everything up.

Right now I'm simply calculating the output sample by subtracting the exponential value from the sine value if the sine value is larger. If the exponential value is larger than the sine value, the output sample is zero. This works pretty well, but the current exponential value to subtract needs to be modulated by the current location on the sine wave so that the full value is subtracted when the sine is maximum and zero is subtracted when the sine is zero.

I'd appreciate any advice that anyone can give and I can provide more details if required. If this isn't an appropriate place for Verilog questions is there somewhere else that's better?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里南柯 2024-12-25 10:54:23

如果您的 FPGA 没有硬连线乘法器,并且您可以容忍一定的延迟,您可能需要使用缩放累加器来实现一个简单的乘法器。

If your FPGA doesn't have a hardwired multiplier, and if you can tolerate some delay, you may want to implement a simple multiplier using a scaling accumulator.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文