【发布时间】:2012-02-18 23:14:43
【问题描述】:
我为 VHDL 制作了一个正弦 LUT,使用了 256 个元素。
我使用 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 个音符对我有用,我不知道为什么。在低于该频率 (
如果您需要我的部分代码,请告诉我。
【问题讨论】:
标签: midi vhdl lookup-tables trigonometry