关于STM32AD采样后进行FFT计算的问题

2019-07-14 23:15发布

我有一个频率为20k的信号,要得到它的频谱。主要思路就是:先进行AD转换,采样率设为50khz,然后进行FFT运算,如果我计算1024点的FFT,那么是不是从1s中测得的50k个点中找出1024个点进行FFT运算?如果是这样的话,从50k个点中选取1024个,概率也太小了,肯定影响计算机过吧?不知道我理解的FFT是不是这个意思,哪位大侠知道的话帮我分析分析,感激不尽。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
andy_wsj
2019-07-15 15:28
我描述信号采样之外的一些问题
根据香农定理,采样频率大于2倍才能采集到正确的信号。那么就需要使用至少40K的采样频率,也就是说每隔25us进行一次采样,AD的转换速度应该问题不大。
stm32f103的主频最高是72M,也就是说,14ns可以执行一条单周期指令,那么在25us的周期内可以执行1785条单周期指令,转换为C语言,至少要考虑80%的编译消耗,就是说25us大约可以执行1428条C代码,但实际的情况还会更少。所以采样代码要更短,如果使用定时器中断采样,那么考虑中断切换的时间与中断函数的处理时间,越短越好,否则所有算法正确的情况下,也只得到失真的采样值。同样,如果要提高采样频率,请仔细考虑主频与采样周期的关系。
至于FFT算法,翻翻数字信号处理的书,理论上面很清楚了,真的明白理论,转换为代码应该不难。

一周热门 更多>