硬汉嵌入式论坛

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

[有问必答] AD采集以后进行FFT计算,如何计算有几次谐波分量呢?

[复制链接]

32

主题

44

回帖

140

积分

初级会员

积分
140
发表于 2022-1-17 14:13:16 | 显示全部楼层 |阅读模式
AD采集以后进行FFT计算,如何计算有几次谐波分量呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-17 15:01:24 | 显示全部楼层
比如采集50Hz正弦波,采样率是5120Hz, 采集1024点,频域的分辨率就是5Hz,那么第11个点就是对应的基波(1次谐波),第21个点二次谐波,依次类推。

回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-17 16:44:11 | 显示全部楼层
eric2013 发表于 2022-1-17 15:01
比如采集50Hz正弦波,采样率是5120Hz, 采集1024点,频域的分辨率就是5Hz,那么第11个点就是对应的基波(1次 ...

我想知道就是我采集的一个周期128个点的曲线中有几次谐波,是3次还是5次,这个是怎么算的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-17 17:17:17 | 显示全部楼层
发的好的话 发表于 2022-1-17 16:44
我想知道就是我采集的一个周期128个点的曲线中有几次谐波,是3次还是5次,这个是怎么算的

可以有无限次谐波。因为我们的采集的波形都不是标准的正弦波。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2022-1-17 19:25:09 | 显示全部楼层
周期128个点可以算出不超过64次谐波
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-17 19:53:30 | 显示全部楼层
qqzhaojs 发表于 2022-1-17 19:25
周期128个点可以算出不超过64次谐波

对,128点不行,128点相当于矩形窗裁剪了,裁剪的窗越大,频域范围就越大,能包含的谐波也越多,直到无限次。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-17 20:08:28 | 显示全部楼层
发的好的话 发表于 2022-1-17 16:44
我想知道就是我采集的一个周期128个点的曲线中有几次谐波,是3次还是5次,这个是怎么算的

比如采集50Hz方波,采样率设置1280Hz,采集128个点,那么频域分辨率就是10Hz。

那么可以识别50Hz,100Hz,150, 200, 250, 300, 350, 400, 450, 500, 550, 600,即最高12次谐波。
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 08:59:05 | 显示全部楼层
eric2013 发表于 2022-1-17 19:53
对,128点不行,128点相当于矩形窗裁剪了,裁剪的窗越大,频域范围就越大,能包含的谐波也越多,直到无限 ...

这个就是我FFT后的值,我的分辨率是25HZ,标注红色的是奇次波,这些都属于谐波分量吗?
屏幕截图 2022-01-18 085632.png
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 09:29:23 | 显示全部楼层
eric2013 发表于 2022-1-17 20:08
比如采集50Hz方波,采样率设置1280Hz,采集128个点,那么频域分辨率就是10Hz。

那么可以识别50Hz,100 ...

我的采样频率是6400HZ,采集两个周期,一个周期采集128个点,总共256个点,那我最高次谐波不是6400/256=25次,对吗
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 09:35:44 | 显示全部楼层
eric2013 发表于 2022-1-17 20:08
比如采集50Hz方波,采样率设置1280Hz,采集128个点,那么频域分辨率就是10Hz。

那么可以识别50Hz,100 ...

为啥最高是12次?那650,700为什么没有呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-18 09:37:29 | 显示全部楼层
发的好的话 发表于 2022-1-18 09:29
我的采样频率是6400HZ,采集两个周期,一个周期采集128个点,总共256个点,那我最高次谐波不是6400/256=2 ...

不对,还是没有理解到点上啊。方便用matlab自己绘制的图不。强烈建议你吧频域的图绘制出来。

采样率/采样点数 = 频域的波形分辨率啊。而FFT输出是对称的,也就是你的最高次谐波对应的频率是小于3200。此时对应的最高次谐波是多少,自己算下。
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 10:29:56 | 显示全部楼层
eric2013 发表于 2022-1-18 09:37
不对,还是没有理解到点上啊。方便用matlab自己绘制的图不。强烈建议你吧频域的图绘制出来。

采样率/ ...

我算了一下最高是63次
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 11:09:35 | 显示全部楼层
eric2013 发表于 2022-1-18 09:37
不对,还是没有理解到点上啊。方便用matlab自己绘制的图不。强烈建议你吧频域的图绘制出来。

采样率/ ...

我想问下 我的最高63次谐波,而我要把所有的谐波分量显示出来,是不是这63次的幅值都要显示出来
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-18 11:16:39 | 显示全部楼层
发的好的话 发表于 2022-1-18 11:09
我想问下 我的最高63次谐波,而我要把所有的谐波分量显示出来,是不是这63次的幅值都要显示出来

你现在先放下手头的工作,使用Matlab将FFT幅频响应绘制出来,贴到帖子里面,然后我们再交流问题。
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 11:37:37 | 显示全部楼层
eric2013 发表于 2022-1-18 11:16
你现在先放下手头的工作,使用Matlab将FFT幅频响应绘制出来,贴到帖子里面,然后我们再交流问题。

这个吗?
11111111111111 113701.png
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-18 16:37:49 | 显示全部楼层
eric2013 发表于 2022-1-18 11:16
你现在先放下手头的工作,使用Matlab将FFT幅频响应绘制出来,贴到帖子里面,然后我们再交流问题。

????是这个曲线吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-19 10:38:08 | 显示全部楼层

你的不是256点么,FFT变换后幅频是对称的,你这个不对啊。
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-19 15:06:35 | 显示全部楼层
eric2013 发表于 2022-1-19 10:38
你的不是256点么,FFT变换后幅频是对称的,你这个不对啊。

是对称的,我这个只弄了128个点的波形,只有前面的
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-19 15:08:15 | 显示全部楼层
eric2013 发表于 2022-1-19 10:38
你的不是256点么,FFT变换后幅频是对称的,你这个不对啊。

我现在有个问题就是,我用仪器输出了一个3次谐波的幅值=10,而我自己经过计算后的三次谐波的幅值为30多,明显幅值不太正确,这个是什么原因呢?
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-19 15:11:31 | 显示全部楼层
eric2013 发表于 2022-1-19 10:38
你的不是256点么,FFT变换后幅频是对称的,你这个不对啊。

我的幅值是这样求得,数组Mag【i】即为幅值
屏幕截图 2022-01-19 151014.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-19 15:39:50 | 显示全部楼层
发的好的话 发表于 2022-1-19 15:06
是对称的,我这个只弄了128个点的波形,只有前面的

这是128个点?
你直接把你采集的原始256点数据上传下,然后告诉我你的采样率,我用Matlab给你展示下。



回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-19 16:20:09 | 显示全部楼层
eric2013 发表于 2022-1-19 15:39
这是128个点?
你直接把你采集的原始256点数据上传下,然后告诉我你的采样率,我用Matlab给你展示下。
...

1610
1609
1604
1601
1597
1590
1587
1581
1578
1575
1568
1564
1559
1557
1556
1551
1546
1540
1536
1533
1530
1527
1524
1519
1517
1513
1509
1507
1502
1502
1499
1498
1497
1496
1495
1490
1488
1488
1489
1488
1486
1486
1485
1484
1482
1485
1481
1479
1481
1484
1485
1488
1492
1490
1492
1497
1499
1501
1506
1506
1509
1510
1517
1521
1526
1526
1531
1536
1541
1545
1547
1551
1557
1562
1567
1572
1576
1578
1583
1587
1592
1594
1596
1601
1603
1610
1613
1620
1621
1623
1625
1628
1631
1635
1634
1636
1641
1641
1643
1646
1647
1646
1647
1650
1651
1654
1651
1652
1653
1654
1655
1656
1653
1651
1650
1651
1647
1648
1642
1639
1637
1636
1632
1632
1628
1622
1620
1617
1614
1609
1607
1601
1595
1593
1587
1585
1580
1573
1570
1565
1564
1560
1555
1549
1545
1540
1540
1535
1532
1526
1522
1521
1515
1512
1511
1506
1503
1502
1502
1500
1495
1493
1493
1490
1490
1488
1486
1485
1485
1484
1485
1483
1484
1480
1482
1481
1481
1485
1486
1486
1488
1492
1494
1497
1497
1499
1501
1505
1511
1513
1516
1519
1522
1527
1531
1537
1540
1543
1548
1552
1557
1563
1568
1570
1575
1578
1583
1587
1590
1592
1599
1603
1606
1611
1616
1615
1619
1623
1625
1632
1634
1632
1635
1636
1640
1641
1641
1643
1647
1647
1647
1652
1652
1653
1653
1652
1653
1655
1655
1653
1654
1653
1650
1649
1644
1643
1642
1639
1637
1636
1634
1629
1624
1625
1621
1616
采样频率是6400HZ
回复

使用道具 举报

32

主题

44

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2022-1-21 09:48:18 | 显示全部楼层
eric2013 发表于 2022-1-19 15:39
这是128个点?
你直接把你采集的原始256点数据上传下,然后告诉我你的采样率,我用Matlab给你展示下。
...

这个是我AD采集出来的曲线和FFT计算后的幅频曲线,我用仪器输出了一个1次谐波幅值=5,3次谐波幅值=1的一个正弦波,为什么我算出的幅值都有23这个大呢?幅值都偏大,感觉算的不对,这是什么问题
幅频.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107294
QQ
发表于 2022-1-21 09:54:14 | 显示全部楼层
发的好的话 发表于 2022-1-21 09:48
这个是我AD采集出来的曲线和FFT计算后的幅频曲线,我用仪器输出了一个1次谐波幅值=5,3次谐波幅值=1的一个 ...

不好意思,你现在很多地方的理解还有欠缺,我指导的有点辛苦。你看你什么时候方便,把FFT基础理论稍微学习下。



回复

使用道具 举报

3

主题

24

回帖

33

积分

新手上路

积分
33
发表于 2022-2-21 10:51:53 | 显示全部楼层
eric2013 发表于 2022-1-21 09:54
不好意思,你现在很多地方的理解还有欠缺,我指导的有点辛苦。你看你什么时候方便,把FFT基础理论稍微学 ...

管理员你好,我有个问题想咨询下你。我现在用L4采集外部AD值进行FFT变换,变换后的输出数据和输入数据的峰峰值是怎么对应的呢?我用运放进行信号放大,电压抬高单片机电压的一半3.3/2=1.65V,然后进入单片机的模拟通道,采样周期2s,采样点数size=256,精度就是0.5Hz。变换以后的数据常量FFTOUT[0]=507000。另外,我用信号发生器输入
1Hz的信号时,运放输出的Vpp=1.6V(示波器实测),FFTOUT[3]=100000。
2Hz的信号时,运放输出的Vpp=2.5V(示波器实测),FFTOUT[5]=194000。
3Hz的信号时,运放输出的Vpp=3.3V(示波器实测),FFTOUT[7]=246000。
傅里叶变换后的这些数据怎么和实际的电压峰峰值对应呢。望指点一二,谢谢。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 21:59 , Processed in 0.386788 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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