stm32 AD采样后fft变换计算相位角不准确

2019-03-23 14:40发布

我用外部AD同步采样两路信号采样256个点,然后在stm32里做256点的fft运算来计算信号的幅值等参数,幅值精度可达百分之零点几,但相位角却非常不准确,甚至是错误,非常不解。幅度计算对说明f采样跟fft都没问题啊。从fft变换后的那个32位数组里面取出实部跟虚部,然后用反正切函数分别求出两路信号的相位再让其相减就是相差啊,为什么计算结果不对? 请教,谢谢。 此帖出自小平头技术问答  

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
achord
1楼-- · 2019-03-23 23:47

对于任意信号,离散FFT的计算结果并不是你想像的精准的,无论幅度和相位都需要校正!这方面的理论分析早已产生,一般要到研究生课程才讲,可以参见《离散频谱分析校正理论与技术》《数字信号全相位谱分析与滤波技术》等书。

雨夏
2楼-- · 2019-03-24 02:18
我的fft算法是直接调用了stm32的DSP库啊,查过资料啊那个库函数里面的算法应该是一种全相位fft算法啊,有很好的抑制频谱泄露的功能,无需再添加附加校正措施。而且实际做我的信号幅值精度很高啊,还是不明白为什么相位求不准?
kaka625
3楼-- · 2019-03-24 02:27
 精彩回答 2  元偷偷看……
雨夏
4楼-- · 2019-03-24 05:34
我是在一份论文上看到的,其实我也没在手册上看到。把那份资料发你吧。
雨夏
5楼-- · 2019-03-24 10:29
不知道怎么在短消息里面添加附件,我就在这里把自己参考的资料上传一下吧,有用得着的童鞋可以参考下,大家一起学习,有问题一起讨论下咯
lvjinwen
6楼-- · 2019-03-24 16:04
 精彩回答 2  元偷偷看……

一周热门 更多>