gpt4 book ai didi

midi - 正弦 LUT VHDL 不会在 800 hz 以下模拟

转载 作者:行者123 更新时间:2023-12-04 05:57:24 28 4
gpt4 key购买 nike

我使用 256 个元素为 VHDL 制作了一个正弦 LUT。

我使用 MIDI 输入,因此值范围为 8.17Hz(注 #0)到 12543.85z(注 #127)。

我有另一个 LUT 计算必须发送到我的 48 kHz 编解码器的值才能播放声音(8.17Hz 频率将需要 48000/8.17 = 5870 值)。

我有另一个包含索引因子的 LUT,它是 256/num_Values ,用于调用 sin 表中的值(例如:100*256/5870 = 4(整数四舍五入))。

我将此索引因子发送到另一个 VHDL 文件,该文件用于计算应发回哪个值。 (例如: index = index_factor*step_counter )

当我得到这个索引时,我将它除以 100,然后调用 sineLUT[index]以获得我需要以所需频率生成正弦波的值。

问题是,似乎只有最后 51 个音符对我有用,我不知道为什么。它似乎在低于该频率 (<650 hz) 的任何地方都停留在一个恒定的音符上,并且每次我尝试降低音符时都会降低音量。

如果您需要我的部分代码,请告诉我。

最佳答案

只是猜测,我怀疑您的 step_counter 没有经过足够的循环,因此您的索引(进入正弦 lut)不会经过完整的 360 度低频。

对于任何更有帮助的事情,您可能必须发布代码。

顺便说一句,你为什么不使用更像传统 DDS 的东西? ADI公司有一篇关于基础知识的好文章:DDS Tutorial

关于midi - 正弦 LUT VHDL 不会在 800 hz 以下模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9345053/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com