glenxu 发表于 2020-6-17 09:20:17

新手就敢做FFT,太高了!
32的大部分系统都是3.3V系统,所以ADC的REF也取3.3,电路简单点,所以结果也就是0-3.3V.
信号为10K按采样定律要求,采样在5-10倍以上才能满足基本要求,取30倍就更好了。
300K采样只能做512或以下的FFT,否则CPU受不了。

gieg 发表于 2020-6-21 11:54:06

glenxu 发表于 2020-6-17 09:20
新手就敢做FFT,太高了!
32的大部分系统都是3.3V系统,所以ADC的REF也取3.3,电路简单点,所以结果也就是0 ...

谢谢,用300k应该没问题,应该是adc采集误差的原因,出来结果不是一个定值,有百分之一的波动

glenxu 发表于 2020-7-16 11:34:22

根据采样定律,10KHz的方波信号采样需要大于100KHz,速度越高误差越小,仅采样在100KHZ就有将近10%的误差,加上运算、干扰和定时误差(FFT对时间很敏感),在300K/256点分析你的误差是很正常的。
最好在采集后加个加单滤波,误差会小些,另外256小了,1024好些,单主频可能撑不住。

数码小叶 发表于 2020-7-17 08:52:43

都没搞清楚怎么选取采样频率和采样点数就开始搞FFT{:3_41:}{:3_41:},你300K,才256点。频率分辨率都1.17K了,太低了
页: 1 [2]
查看完整版本: stm32 adc fft运算