查看: 24981|回复: 27

[讨论] 讨论:AC220V交流信号,AD采样 256点 FFT变换后,计算有效值...

[复制链接]
  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
    发表于 2016-10-13 17:13:24 | 显示全部楼层 |阅读模式
    讨论:AC220V交流信号,AD采样  256 FFT变换后,计算有效值,求频率,求相位角
    条件:
    MCU:MK64FN1M0VQ12
    AC220交流电压,经2.5mA:2.5mA电压互感器,由运算放大器对信号放大后送MCU AD采样AD采样为每个周波采样256个点。其中,交流信号抬高1.65v(直流分量)

    郁闷的一个上午
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:13:56 | 显示全部楼层
    以下是硬件原理
    AC220V交流电压经电压互感器.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:14:36 | 显示全部楼层
    AD采样的256个AD值(sample_data),调用CORTEX-M4  DSP_LIB 库 做FFT转换 FFT轮换后输出(out_data)

    设想:
    //对实数进行fft分析得到的都是实部和虚部的信息,就是复数信息,幅值就是实部和虚部的平方和再开根号,
    //相位的话就是实部和虚部的比值,用三角函数中的sin之类的就可以求出来

    status = arm_rfft_fast_init_f32(&aa,256);
    if(status == ARM_MATH_SUCCESS)
    arm_rfft_fast_f32(&aa,sample_data,out_data,0);  

    但FFT 转换的结果 觉得不对。。。。觉得不对。。。。有这方面经验的方便进来一起讨论并指导一下吗?谢谢!
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:15:03 | 显示全部楼层
    本帖最后由 gdgn526345 于 2016-10-13 17:40 编辑

    以下:AD采样值sample_data(FFT数据源,1周波256个点),可以看到有明显的正弦波波形见下图
    交流电压采样AD值sample_data,并XCEL波形描述.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:15:34 | 显示全部楼层
    以下:调用arm_rfft_fast_f32(&aa,sample_data,out_data,0);后sample_data(FFT数据源)的表现为:
    交流电压采样AD值FFT后sample_data_.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:16:11 | 显示全部楼层
    以下:调用arm_rfft_fast_f32(&aa,sample_data,out_data,0);后out_data(FFT后数据输出)的表现为:
    觉得数据没有规律,按理由应该是 点N+实数0+虚数0  。。。。。。实数N-1 虚数N-1的排列
    但是FFT转换的结果不对
    交流电压采样AD值FFT后sample_data_out.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:16:39 | 显示全部楼层
    为了验证正常的FFT转换后的经果,我使用了网的一个例程:
    用一个正弦波产生函数,产生正弦波数据,然后进行FFT变换,

    正弦波数据产生函数:
      FS = 50 * 256;//周期50HZ  采样频率为第周波256个点
    for(i=0;i<256;i++)
      {
       sample_data[i] = 1*sin(2*PI*50*i/FS) + 1;
       //sample_data[i] = 2;
      }   
    得到的AD正弦波数据sample_data
    函数产生正弦波值sample_data.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:17:14 | 显示全部楼层
    以下:调用arm_rfft_fast_f32(&aa,sample_data,out_data,0);后sample_data(FFT数据源)的表现为:
    函数产生正弦波值FFT后sample_data.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:18:03 | 显示全部楼层
    以下:调用arm_rfft_fast_f32(&aa,sample_data,out_data,0);后out_data(FFT后数据输出)的表现为:
    函数产生正弦波值FFT后sample_data_out.png
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-9-6 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    57

    帖子

    0

    注册会员

    Rank: 2

    积分
    128
    最后登录
    2021-10-9
     楼主| 发表于 2016-10-13 17:18:59 | 显示全部楼层
    可以看到用正弦函数产生的正弦波数值 同样的也是256个点 经过FFT后得到正常的经果。
    但是 我同样的AD采样的正弦波数据 为什么结果 就不一样呢?问题是出在哪里?
    还有接下来的FFT变换后得到实数部分 虚数部分最终怎么样计算有效值,频率,相位等内容,大伙一起讨论指导一下吧,谢谢!
    郁闷的一个上午
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 06:37 , Processed in 0.106002 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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