Audio VHDL音频采样音量控制

Audio VHDL音频采样音量控制,audio,vhdl,Audio,Vhdl,关于这个问题我搜索了很多,但我找不到任何有用的。。。 问题是,我在FPGA芯片上产生回声效应。。我已经准备好了一切,比如BRAM的延迟、输入、延迟输出,但我不知道如何改变返回到输入的输出量,将它们混合在一起并再次发送给BRAM。。 因为当我只是简单地将输出连接到输入时,它会使BRAM循环无限大,但我需要将返回到输入的输出量更改为其体积的一半。。 我读到,将样本向右移动可以实现这一点,但它会在样本上发出很大的噪音 Im使用16位样本 所以我想知道如何控制样本量,以及我准备的所有其他东西。所以我找到

关于这个问题我搜索了很多,但我找不到任何有用的。。。 问题是,我在FPGA芯片上产生回声效应。。我已经准备好了一切,比如BRAM的延迟、输入、延迟输出,但我不知道如何改变返回到输入的输出量,将它们混合在一起并再次发送给BRAM。。 因为当我只是简单地将输出连接到输入时,它会使BRAM循环无限大,但我需要将返回到输入的输出量更改为其体积的一半。。 我读到,将样本向右移动可以实现这一点,但它会在样本上发出很大的噪音

Im使用16位样本


所以我想知道如何控制样本量,以及我准备的所有其他东西。

所以我找到了我的问题所在。。我将样本向量向右移动,但我只是通过
“0”和sample(15向下移动到1)
实现了它,但它是有符号的,所以我必须复制MSB,而不是只添加普通的“0”。。所以答案是

sample(15) & sample(15 downto 1)

这使样品占原始体积的一半。。它类似于样本*0,5

改变体积就是简单地乘以一个叫做“增益”的常数。混合就是简单的加法。在这两种情况下,您都希望防止溢出(例如通过饱和),但仅此而已。那么,真正的问题是什么?你需要弄清楚你在问什么。