如何计算有效值和谐波含量?

[复制链接]
18965|20
 楼主| yf_tang 发表于 2008-12-16 10:49 | 显示全部楼层 |阅读模式
采样数据如下:
lBFUIN[256] =
{
1026,1032,1039,1045,1052,1058,1066,1073,1081,1087,1095,1104,1113,1121,1129,1138,1146,1155,1165,1172,1183,1192,1201,1212,1222,1231,1242,1251,1262,1272,1284,1294,1303,1313,1324,1335,1346,1356,1367,1377,1387,1398,1410,1420,1430,1440,1450,1461,1472,1481,1492,1503,1513,1523,1533,1542,1552,1562,1571,1580,1590,1599,1609,1618,1625,1635,1643,1651,1658,1667,1674,1682,1690,1697,1704,1710,1718,1723,1730,1737,1743,1747,1753,1757,1762,1768,1771,1777,1781,1784,1787,1792,1793,1797,1800,1800,1804,1806,1807,1808,1810,1810,1811,1809,1810,1811,1809,1809,1807,1806,1804,1802,1799,1798,1795,1792,1789,1785,1782,1779,1774,1770,1765,1761,1756,1750,1745,1738,1733,1727,1721,1714,1707,1700,1693,1686,1679,1671,1664,1656,1647,1637,1630,1622,1612,1603,1594,1586,1577,1566,1557,1547,1538,1527,1517,1507,1498,1488,1476,1467,1456,1445,1436,1426,1415,1405,1393,1383,1373,1362,1351,1340,1329,1319,1307,1298,1288,1277,1268,1257,1247,1238,1227,1217,1207,1197,1189,1178,1169,1161,1150,1141,1133,1124,1116,1107,1101,1092,1084,1077,1069,1062,1055,1048,1041,1036,1030,1024,1018,1012,1006,1001,996,993,987,983,980,976,972,970,966,964,962,959,958,956,954,953,954,952,951,951,951,952,953,953,955,956,959,961,962,966,968,972,975,978,981,986,989,995,1000,1004,1011,1017,1021,1028
};
经过cr4_fft_256_stm32(lBUFOUT, lBUFIN, 256);得到lBUFOUT值如下:
lBUFOUT[256] = 
{
0000040f ffe30022 fff20013 fff60018 ffe80016 fffbfff3 fffc0000 fffd0008 fff40004 fffcfff6 fffdfffe fffe0003 fff70001 fffcfffa fffdfffd fffe0001 fffa0001 fffdfffc ffffffff ffff0002 fffb0001 fffefffb 0000fffe ffff0001 fffc0001 fffffffc ffffffff ffff0001 fffb0000 fffffffc 0000ffff 00000001 fffd0001 fffffffd fffffffe ffff0001 fffdffff fffefffd ffffffff 0000ffff fffcffff fffffffe 0000ffff ffffffff fffd0000 fffffffd 00000000 0000ffff fffd0000 fffdfffe fffefffe fffe0000 fffeffff fffefffe ffffffff 00000000 fffd0000 fffefffe fffeffff fffeffff fffe0000 fffeffff fffffffe ffffffff ffff0001 fffeffff 0000ffff 00000000 00000000 ffffffff 0000ffff 00010000 ffff0000 fffeffff ffffffff 00010000 ffff0000 fffe0000 fffffffe 0000ffff ffff0001 ffffffff 00000000 0000ffff ffff0001 0000ffff 0000fffe 0000ffff 00000000 0000fffe 0000ffff 00010000 ffff0000 0000fffe 0000ffff 00010000 00000000 0000ffff 0001ffff 00000000 00000000 ffffffff 0000ffff 0001fffe 00000000 0000ffff 0000ffff 00000000 00000000 0000ffff 0001ffff 0001ffff 00000000 ffffffff 0000ffff 0000ffff 00000000 ffffffff 0000ffff 0001fffe 00000000 ffffffff fffffffe 0000ffff ffff0000 00000000 0000ffff 0001ffff 00000000 fffeffff ffff0000 ffffffff 00000000 fffeffff 00000000 00000000 ffff0000 fffeffff ffffffff 0000ffff ffff0001 fffe0000 ffffffff ffffffff ffff0000 ffff0000 ffffffff ffff0000 ffff0001 fffeffff 0000ffff ffffffff ffff0000 ffffffff ffffffff 0000ffff fffe0000 ffffffff 0000ffff 0000ffff 00000001 ffff0000 0000ffff ffffffff 00000000 ffffffff ffff0000 0000fffe ffff0000 ffff0000 00000000 0001fffe ffff0000 ffffffff 00000000 0000fffe 00000000 fffe0000 ffffffff ffffffff 00000000 ffff0000 ffffffff 0000fffe 00000000 fffe0000 ffffffff fffffffe 00000000 fffe0001 ffffffff 0000fffe 00010001 fffe0001 00000000 0001ffff 00010001 ffff0001 00000000 0001ffff 00010001 fffe0001 ffff0000 00000000 00010001 fffe0002 ffffffff 0000ffff 00010001 ffff0001 00000000 0000fffe 00010001 ffff0001 0000ffff 0000fffe 00010001 ffff0001 00000000 0000ffff 00010001 ffff0001 0000ffff 0000fffe 00020001 ffff0002 00000000 0000ffff 00020001 ffff0002 ffff0001 0000fffd 00030001 fffe0003 00000000 0000fffe 00030001 ffff0003 00000000 0000fffc 00050001 ffff0004 00010000 0001fffc 00060003 ffff0005 00000001 0001fff9 000a0005 ffff0009 00010001 0000fff6 00150017 0005001c 000a0016 00180024
};

请问大侠如何得到有效值和谐波含量?
 楼主| yf_tang 发表于 2008-12-16 11:27 | 显示全部楼层

谢谢!

请问netjob如何更正?
 楼主| yf_tang 发表于 2008-12-16 12:53 | 显示全部楼层

netjob,能把你用的fft发给我一份,可以吗?

yf_tang1106@163.com
 楼主| yf_tang 发表于 2008-12-16 13:00 | 显示全部楼层

谢谢您的回复!

netjob 发表于 2008-12-5 12:47 ST MCU ←返回版面    

8楼: cr4_fft_32_stm32 

更改的是 32 点 RADIX-4 的FFT 汇编版本,测试通过。
Q14,Q15格式都可以, 而STM32提供的只有Q14格式。

STM32的 cr4_fft_256_stm32.S里有个BUG !

RADIX-2 FFT的是C版本的,任意点!16位整数算法。
可以使用Q14,Q15格式。
 
 



能把你的这个RADIX-2 FFT程序发给我一份吗?谢谢!
greatbin 发表于 2008-12-16 23:36 | 显示全部楼层

ST的技术支持,请出来说一声吧

jan2008 发表于 2008-12-18 09:47 | 显示全部楼层

能不能也给我发一份FFT程序

aj1600@163.com

       谢谢!
colaring 发表于 2008-12-18 13:28 | 显示全部楼层

老大们...问题还没解决就酷了?
能不能把正确的公开了啊?!
 楼主| yf_tang 发表于 2008-12-18 17:27 | 显示全部楼层

感谢netjob的热心回答!

 楼主| yf_tang 发表于 2008-12-18 17:39 | 显示全部楼层

还得请教netjob

在文件里面并没有找到"NPT EQU 64"这条语句,我尝试把"#define NPT  64"中的64改为256,编译出错(256超出一个字节的表达范围了)
相关链接:https://bbs.21ic.com/upfiles/img/200812/20081218173535820.zip
freefish 发表于 2008-12-18 22:47 | 显示全部楼层

波形分析

平滑正弦波,数据点数为一个周波,起点不是零点而在横轴只下,峰-峰为1810-950=860,有效值860/2/1.414=304,横轴位于950+860/2=1380,如果从该点开始取值256个则得到完全对称的正弦波。
建议:如果测交流信号,横轴零点太低,应提高到2048左右,否则大信号时正峰值还没到4095,下峰值已经到零,引起削波失真,减少了动态范围。
经过FFT后,主要会得到两个大的频率含量,一个是直流分量,频率为零,幅值为1380,另一个是基波分量,幅值为304,从netjob的图上看,明确可以看到这两个分量的频率位置,但是幅值好象超程了。
colaring 发表于 2008-12-19 10:49 | 显示全部楼层

最近刚要用这FFT做谐波分析,高数当年净翘课了,但愿ST速度解决这个问题!!
香水城 发表于 2008-12-19 10:52 | 显示全部楼层

哈哈,你上学时翘课的遗留问题,ST如何解决?

colaring 发表于 2008-12-19 10:58 | 显示全部楼层

我的意思是实在不行只能慢慢自己推导去,就是现在时间不是哪么充裕,但是ST出的DSP库有bug是事实,这个不是我的责任吧
香水城 发表于 2008-12-19 12:20 | 显示全部楼层

请朋友们具体说明哪里不对,或给出一组数据说明输出结果

这样我可以发给设计这个库的工程师检查测试,谢谢。
sunke9 发表于 2008-12-26 09:13 | 显示全部楼层

netjob辛苦了!

colaring 发表于 2008-12-26 09:32 | 显示全部楼层

谢谢

谢谢netjob的测试!!
jinjing999 发表于 2008-12-29 15:58 | 显示全部楼层

从数据来看,计算结果数据是对称,但是,结果不对称

lslzx 发表于 2010-8-29 16:27 | 显示全部楼层
能不能也给我发一份FFT程序
BitFu 发表于 2010-8-29 18:01 | 显示全部楼层
有效值中没有和谐波
longzhaocy 发表于 2012-8-21 14:11 | 显示全部楼层
为什么我已经照着上面的改了,已经用stm最新的dsp库,算的数据还是不对。用16楼的数据,算256个点。数据不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部