1. 首先是所有的数字在计算机里面都是用补码表示的。
2. 例如 7 的补码是 0111、-7 的补码的是 1001
3. 一个信号在 FPGA 里表示为 a[31:0],如果要截掉低八位,则信
号变为 a[31:8],将 a[7:0]截去,操作类似右移(>>)。
4. 比如 7 截 1 位后,为 0011,即 3,-7 截 1 位后位 1100( 截位,符
号位不变),即-4。
5. 则原本是 7 与 -7 的平均值为 0,而截位后,位 3+ -4 等于-1
6. 则产生了直流分量
7. 而且可以看到,截位有精度损失,7 除以 2 = 3.5.但是截位后变为
3。
8. 截位有三种方法,直接截位(会带来损失)
9. 对于小于 0 的数据截位后加 1,例如-7 截位后为-4,+1 后为-3
10. 对于小于 0 的数据取反变为正数截位后,再取反,例如-7 变为正
数后截位变为 3,再取反变为-3