1

我正在尝试使用 Xilinx virtex 5 - ML506 板中给出的音频编解码器,它适用于 20 位长度的样本。问题如下:我的样本长度为 8 位,因此我尝试通过将它们设置在编解码器输入的更高位上来播放它们(即 codec_input <= my_sample & "000000000000" )。但结果它播放了它应该播放的音频(以一种可以理解的方式)加上明显的噪音。

我在某处读到应该用样本填充编解码器输入,所以我通过执行 codec_input <= my_sample * "111111111111" 来尝试它,但它以相同的方式工作。

编解码器工作正常,我证明它播放 20 位长度的样本,但我需要它来重现 8 位长度的样本。

因此,如果你们中的一些人有一些建议或任何建议......我会非常感谢你们。

干杯!

编辑:我尝试将样本设置为编解码器输入的 LSB,但它不起作用。

4

1 回答 1

0

所以你想:

  • 使用您拥有的 8 位数据作为 MS 位
  • 将它们复制到下一个字节
  • 再次复制它们(大概是高半字节,因为只剩下 4 位要填充?)

使用&运算符将​​您的位连接在一起,如下所示:

codec_input <= sample & sample & sample(7 downto 4);

我不确定这听起来会更好,但我认为这就是你所要求的。

于 2013-07-31T14:04:29.293 回答