我想采集50HZ的信号,又不愿用整流的方式,所以现在是用单电源运放做了一个加法器,将取样来的50Hz电压信号+2.5V直流信号,这样,运放的输出就是正信号了。也就可以用单极性AD来采集。电路如下:
选用的是12位AD AD7266,2.5V的基准,软件配置为输入电压为0-2*2.5V,即可以采集到0-5V的信号。这样一来它的编码值就用两种情况:
5V>Vin>=2.5V Code = 0x0:0x7ff
0V>Vin>2.5V Code = 0x800:0xfff
如下图所示:
我用400Hz的采集频率,共采集64个点。每个数据均进行了一个偏移,即:
AD数据 < 0x800,此时电压信号>2.5V,AD数据+2.47
AD数据 > 0x800,此时电压信号<2.5V,2047-(AD数据取反+1)
这样就把所采集的AD数据变为0-5V信号对应的单极性AD编码值。
这时再来作FFT运算,运算后,为了省时,直接对BUFF[9]的数据取模(因为50Hz的信号就在这个位置上,我输出FFT运算结果的数据,也如愿地看到这个点的数据比其它的大,0点除外)。最后将取模运算得到的值除以32,再*AD分辨率的值,我想这就是AD口的电压了。
不知是不是这样子的,还请各位指点一下,第一次实用FFT,的确不明白该怎么用。 |