[求助] stm32学习:fft变换计算相位角不准

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

回复评论 (30)

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

回复 沙发 achord 的帖子

我的fft算法是直接调用了stm32的DSP库啊,查过资料啊那个库函数里面的算法应该是一种全相位fft算法啊,有很好的抑制频谱泄露的功能,无需再添加附加校正措施。而且实际做我的信号幅值精度很高啊,还是不明白为什么相位求不准?
点赞  2011-4-1 16:29

回复 stm32学习:fft变换计算相位角不准

楼主能肯定库里面的FFT算法是全相位的,在哪看的资料,我回去翻了下手册,手册上面根本没有提呢
点赞  2011-7-1 14:03

回复 4楼 kaka625 的帖子

我是在一份论文上看到的,其实我也没在手册上看到。把那份资料发你吧。
点赞  2011-7-2 16:45
不知道怎么在短消息里面添加附件,我就在这里把自己参考的资料上传一下吧,有用得着的童鞋可以参考下,大家一起学习,有问题一起讨论下咯
点赞 (2) 2011-7-2 16:56
学习啦!!!!!!!!!!!!!!!
点赞  2011-7-6 17:28

我也碰到这个问题啊

楼主啊 我现在也在搞这个问题,两路信号,同时采样,然后利用相位差求取后面需要计算的反射系数的相位值。幅度倒是还精确,就是相位到后面全然不对了。你那个求相差的时候不要用正切,用反余弦的比较好
点赞  2011-8-4 17:23

回复 8楼 apu001 的帖子

谢谢啦。 呵呵之前做这个的时候一直不知道什么什么原因,没解决。再做的话也试试用反余弦。
点赞  2011-8-10 00:23

回复 7楼 lvjinwen 的帖子

呵呵一起学习咯
点赞  2011-8-10 00:24

感激啊!!!!!谢谢啦
点赞  2011-12-7 23:43
学习咯呵呵一
点赞  2011-12-27 15:39

回复 楼主 雨夏 的帖子

请问,您的问题解决了吗?
点赞  2012-1-5 21:52

回复 8楼 apu001 的帖子

请问“相位差求取后面需要计算的反射系数的相位值”这个怎么用的。有学习资料没。我只是进行了FFT  经验证DSP库就是全相位的
畅享美好时光
点赞  2012-5-3 19:32
学习啦!!!!!!!!!!!!!!!
点赞  2012-5-23 23:10
请问一下楼主 我现在不是用的dsp 那我用的一个arm处理器 里面没有直接调用的fft,我采集的数据是直接进行fft? 这样就可以求相位吗
点赞  2014-2-25 13:37
谢谢楼主的共享,收藏起来学习!
点赞  2014-6-17 15:34
收藏
点赞  2015-3-17 23:23
学习中..
点赞  2016-11-11 17:41
点赞  2019-1-15 21:10
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复