|
使用DSP库,根据规律修改了1024点的S文件,改为4096点FFT.使用STM32内部AD进行采样,设置采样率为1M.使用DMA对AD采样结果进行转存.
首先对1kHz、10kHz正弦波进行采样分析,FFT运算结果是正确的.
当对10kHz的方波进行采样分析时,它的谐波比值出现问题,例如函数发生器输出2VPP,1V偏移量(AD采正信号),20kHz频率.
输出数组的a[0]为0.98V,为基波幅值,正确. a[82]为20kHz的幅值,为1.2407。 a[246]为60kHz的幅值,为0.3805。 a[410]为100kHz的幅值,为0.192。a[513]为140kHz的幅值,为0.131。 正常情况,方波的谐波幅值比值应该为1:3:5:7,可是FFT出来的结果有出入,特别5次谐波和7次谐波差别较大。
怀疑是修改的4096点FFT有问题,后使用纯C语言的FFT,出来结果跟上述情况差不多...
另外,20kHz的幅值为何比a[0]还要大呢?
测试单个频率的正弦波时都是正确的,测量方波谐波时就计算错误,请问会是哪的问题呢?
麻烦路过的高手不吝指点... |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|