硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4419|回复: 17
收起左侧

[DSP] STM32H743的DSP库中的FFT算法初相位错误

  [复制链接]

2

主题

9

回帖

15

积分

新手上路

积分
15
发表于 2019-4-8 07:28:07 | 显示全部楼层 |阅读模式
请问,STM32的DSP库里面的FFT算法是不是有BUG,FFT计算过程中,就算是我使用sin函数产生的正玄波信号,初相位也一直在变化,虽然幅值是对的,但是初相位是错误的,也是正玄波向量是错误的。这就意味着,如果过我使用ADC进行高端电流电压采样,归一化后进行FFT运算得到的向量不能直接作为电流电压的向量计算,请各位大佬解惑,如果各位有基于STM32732有高质量的FFT算法,麻烦发2406596097@qq.com以供交流。




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2019-4-8 11:55:00 | 显示全部楼层
DSP库算相位要做修正。
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-4-8 14:46:39 | 显示全部楼层
eric2013 发表于 2019-4-8 11:55
DSP库算相位要做修正。

硬汉哥有相关文档可以供我参考吗?麻烦发一下,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2019-4-8 14:47:50 | 显示全部楼层
Embedde_K0dNN 发表于 2019-4-8 14:46
硬汉哥有相关文档可以供我参考吗?麻烦发一下,谢谢!

后面2代DSP教程整一个分享给大家。当前还真没
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-4-8 14:53:27 | 显示全部楼层
eric2013 发表于 2019-4-8 14:47
后面2代DSP教程整一个分享给大家。当前还真没

能提前跟我大致讲一下具体实施方法吗?非常感谢,现在急用
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2019-4-8 14:54:15 | 显示全部楼层
Embedde_K0dNN 发表于 2019-4-8 14:53
能提前跟我大致讲一下具体实施方法吗?非常感谢,现在急用

我还没有专门去研究这个事情。
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-4-8 14:57:01 | 显示全部楼层
eric2013 发表于 2019-4-8 14:54
我还没有专门去研究这个事情。

这样啊,有点尴尬,谢了,我自己研究一下看看
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
发表于 2019-4-18 09:10:05 | 显示全部楼层
没有问题呀,我们用DSP库中的FFT浮点算法做了很多产品了,初始相位是没有问题的。最早做了软件模拟,初始相位精度也是很高的!无需补偿和转换。
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-6-11 09:52:14 | 显示全部楼层
chengyabcd 发表于 2019-4-18 09:10
没有问题呀,我们用DSP库中的FFT浮点算法做了很多产品了,初始相位是没有问题的。最早做了软件模拟,初始相 ...

你是怎么做的?我现在是对用了APFFT,在FFT运算前作全相位处理,你现在是用复数做运算的吗?方便的话邮箱沟通,我的邮箱是2406596097@qq.com
回复

使用道具 举报

0

主题

77

回帖

77

积分

初级会员

积分
77
发表于 2020-5-13 19:02:12 | 显示全部楼层
chengyabcd 发表于 2019-4-18 09:10
没有问题呀,我们用DSP库中的FFT浮点算法做了很多产品了,初始相位是没有问题的。最早做了软件模拟,初始相 ...

这么厉害啊。坛友能给个例子吗?我现在也遇到了相位求不对的问题。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-5-9 16:36:04 | 显示全部楼层
Embedde_K0dNN 发表于 2019-6-11 09:52
你是怎么做的?我现在是对用了APFFT,在FFT运算前作全相位处理,你现在是用复数做运算的吗?方便的话邮箱 ...

楼主,搞定了吗?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-12 10:43:56 | 显示全部楼层
楼主搞定了吗
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-12 10:44:18 | 显示全部楼层
楼主搞定了吗?
回复

使用道具 举报

6

主题

86

回帖

104

积分

初级会员

积分
104
发表于 2022-8-12 16:28:23 | 显示全部楼层
网上抄一份 FFT C 代码,直接用就行了,还用得着DSP库,
初相不是直接用 atan2f 吗,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2022-8-12 17:07:53 | 显示全部楼层
mygod 发表于 2022-8-12 16:28
网上抄一份 FFT C 代码,直接用就行了,还用得着DSP库,
初相不是直接用 atan2f 吗,


这个是理论玩法,实际应用不行。

以工频信号为例,如果波形是固定的50Hz,我们可以直接设置采样率是这个周期的整数倍,并进行同步采样,求出来的数据精度就比较高,但实际频率是50Hz左右,从会导致FFT求解出来的频率,幅值,相位都有偏差。

此贴就是一个经典测试,你可以测试试试。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=97787


回复

使用道具 举报

6

主题

86

回帖

104

积分

初级会员

积分
104
发表于 2022-10-25 08:15:33 | 显示全部楼层
eric2013 发表于 2022-8-12 17:07
这个是理论玩法,实际应用不行。

以工频信号为例,如果波形是固定的50Hz,我们可以直接设置采样率是 ...

前几年做了个功率分析仪用的DSP做的,他内置了FFT库,我后面用C 的FFT代码计算的效果和他内置是一样的,
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2022-10-25 09:27:41 | 显示全部楼层
初相角好像是要判断象限分类讨论的,而且频率不是很稳定的情况下,还要做一些加窗处理。
回复

使用道具 举报

3

主题

137

回帖

146

积分

初级会员

积分
146
发表于 2022-10-25 11:44:06 | 显示全部楼层
ARM自带的DSP库算来不准的,还没有研究怎么做校正算法,看硬汉后面会不会出教程讲讲。其实工频这么低的频率,目前我用DFT算法更准确,不需要做任何修正,就是速度慢很多倍,如果是高频还是要用FFT+修正
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 02:13 , Processed in 0.215805 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表