STM32F0 ADC采样128点进行FFT怎么进行转换结果分析才知道原始波形高点的频率和幅度?

2019-07-14 18:33发布

      各位高手,现在用STM32F0的ADC采样一组不规则信号,128个点,200HZ采样;采样数据经过MTLAB验证,FFT转换结果跟keil运行输出结果一致,说明FFT程序正确。现在经过FFT转换输出的128个模数(x.real=sqrt(x.real*x.real+x.img*x.img);),取了64个数据转换功率来分析(根据FFT对称性),把64个功率数据由串口输出,从串口数据来看,在不规则信号幅度低的时候,输出数据如下:(35 10 15 18 20 0F 00 0C 19 1F 15 12 10 0F 06 0C 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00);
在不规则信号幅度高的时候,输出数据如下:(35 1C 25 19 29 23 19 16 1B 26 2B 28 2D 29 20 28 13 22 24 18 21 10 21 1B 1C 24 1A 19 1F 13 1A 17 17 18 18 18 1A 14 13 15 17 1A 19 1B 14 13 16 15 16 0D 09 10 14 15 0C 1A 17 10 13 0C 09 06 09);
     观察数据发现:输入信号幅度低时,在64个点对应频率0-25HZ以后,各个频点对应功率全部为0;而信号强的输出数据,64个频点对应的功率都大于0。 对于这64个数据,是不是输入信号幅度越高,FFT转换后的对于功率就越大?要分析原始波形的幅度,是不是看这64点功率就可以一一对应判断了?对这64个数据还需要进行什么分析才知道原始波形高点的频率和幅度?



//5ms采1个点,128个点,采样频率F=200Hz
//FFT结果的128个数据对应频率点是:0,1*200Hz/128,2*200Hz/128,3*200Hz/128, 。。。 ,127*200Hz/128 (0->127)
//N=128
//频率点表:
//          0.00->  1.5625 ->  3.125- >  4.6875 ->  6.25 ->  7.8125 ->  9.375 -> 10.9375-> //8PCS
//          12.5 -> 14.0625-> 15.625-> 17.1875-> 18.75-> 20.3125-> 21.875-> 23.4375-> //8pcs
//          25.00-> 25.5626-> 28.125-> 29.6875-> 31.25-> 32.8125-> 34.375-> 35.9375-> //8PCS
//          37.5 -> 39.0625-> 40.625-> 42.1875-> 43.75-> 45.3125-> 46.875-> 48.4375-> //8pcs
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。