我正在开发一个项目,其中使用 ADC 对信号进行采样,该信号将值表示为 14 位字。我需要将值缩放为 8 位字。一般来说,解决这个问题的好方法是什么?顺便说一句,我使用的是 FPGA,所以我想通过“硬件”而不是软件解决方案来实现。另外,如果您想知道事件链将是:采样模拟信号,用 14 位字表示样本值,将 14 位字缩放为 8 位字,使用 UART 将 8 位字传输到 PC COM1。
我以前从未这样做过。我假设您使用量化级别,但我不确定此操作的有效电路是什么。任何帮助,将不胜感激。
谢谢
最佳答案
你只需要一个添加和一个转变:
val_8 = (val_14 + 32) >> 6;
(+ 32
对于获得正确的舍入是必要的 - 您可以省略它,但如果这样做,您的信号中会得到更多的截断噪声。)
关于verilog - 将 14 位字缩放为 8 位字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9645017/