输入系统的有正有负的模拟信号在AD采样前,会加上了直流偏置变成全正信号才输入AD的,所以在AD采样后送给FPGA的信号是无符号数,而我们后续的信号处理是需要对真实的信号进行处理,那么就需要将这个直流偏置去掉,还原出真实的数字信号。
那么怎样去掉这个直流偏置呢,首先要明白AD采样前是怎么加上这个直流偏置的。如果AD转换为16bit,那么AD采样的信号幅度理论上应该为-32768到+32768,所以要变成全正的信号,加上的直流偏置位32768,也就是2^16/2。所以可以将采样得到的数据都前去一个常数32768就可以将AD采样后的无符号数变成有符号数,但是其实还要更简单的办法来实现。
AD转换后的信号为无符号数,需要进行转换后变成有符号数才能进行后续处理。于是在AD转换后将最高位取反,就可以将AD转换后的无符号数变成有符号数。为什么直接取反就可以将无符号数变成有符号数呢。
按前面分析的,如果AD转换后是16位,那么转换时只需减去32768就行,则将最高位取反其实就相当于减去32768。最高位为1,说明无符号数大于32768,最高位取反为0,相当于减去了32768,取反完后还是正数。最高位为0,所以无符号数小于32768,最高位取反为1,也是相当于减去32768,取反完后为负数。即将最高位取反,也就实现了将无符号数转化为有符号数,而对位取反操作在FPGA中是非常容易实现的,而不是需要用一个减法器来实现,浪费资源。
举报/反馈

墨尘

126获赞 133粉丝
知识的学习、记录、积累、沉淀。
关注
0
0
收藏
分享