amobbs.com 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
12
返回列表 发新帖
楼主: itspy

STM32上的256点FFT傅里叶变换---效果还不错!

  [复制链接]
(303226983)
发表于 2010-11-24 13:03:26 | 显示全部楼层
这图给遮住了  汗   





(原文件名:FFT值4.jpg)
(303226898)
发表于 2010-11-24 13:04:51 | 显示全部楼层
不知道这个精度满不满意啊!!!!也许你们公司是航空航天的话,这精度确实有点太差了
(303226847)
发表于 2010-11-24 13:05:42 | 显示全部楼层
回复【98楼】fickle
-----------------------------------------------------------------------

是男人就把问题讨论清楚   如果你觉得你的理解是对的,那就当我向你请教,这样行了吧
(303226669)
发表于 2010-11-24 13:08:40 | 显示全部楼层
恩,你很认真。

1、输入信号123Hz,幅值为1,fs=1024Hz,N=1024时,计算结果,A124=1;

2、输入信号123.3Hz,幅值为1,fs=1024Hz,N=1024时,计算结果,A124=0.8579《---和实际幅值1有出入。
(303226395)
发表于 2010-11-24 13:13:14 | 显示全部楼层
回复【107楼】fickle
-----------------------------------------------------------------------

我说过如果工程中,我只是简单的再我的程序后面加上那个校正公式一下,代码就多一句话,那个精度不是你非要用你所谓的改变采样率或者加窗的话,才能搞定的吧?
(303226264)
发表于 2010-11-24 13:15:25 | 显示全部楼层
回复【106楼】E318AAA
回复【98楼】fickle  
-----------------------------------------------------------------------
是男人就把问题讨论清楚   如果你觉得你的理解是对的,那就当我向你请教,这样行了吧
-----------------------------------------------------------------------

计算结果都出来了,和我12楼说的一致。还要讨论什么?
(303226212)
发表于 2010-11-24 13:16:17 | 显示全部楼层
还有你的思维能不能不要拘泥在  A124=0.8579  ,它不代表我这个信号的真实幅值,真实幅值是通过A124和A125,然后校正一下就算出来的,你比较精度好歹是   fs=48KHZ是10KHZ的幅值和  你fs=32KHZ的10KHZ的幅值比较吧,可关键是我的A124不是代表10KHZ,所以单用着A124  这能和你的32KHZ的比较吗!!!!  我也得用fs=48KHZ的时候,这个频谱时,它的10KHZ对应的幅值吧


明白意思了吗???
(303226111)
发表于 2010-11-24 13:17:58 | 显示全部楼层
回复【109楼】fickle
-----------------------------------------------------------------------

1,不用加窗 (再次重申,那个校正不是你那上面加窗)
2.也没改变采样率  48KHZ

可我算出来的精度是0.999级别的
(303226066)
发表于 2010-11-24 13:18:43 | 显示全部楼层
这算因为采样率或者没加窗  所导致的精度差吗???
(303225693)
发表于 2010-11-24 13:24:56 | 显示全部楼层
回复【110楼】E318AAA
还有你的思维能不能不要拘泥在  a124=0.8579  ,它不代表我这个信号的真实幅值,真实幅值是通过a124和a125,然后校正一下就算出来的,你比较精度好歹是   fs=48khz是10khz的幅值和  你fs=32khz的10khz的幅值比较吧,可关键是我的a124不是代表10khz,所以单用着a124  这能和你的32khz的比较吗!!!!  我也得用fs=48khz的时候,这个频谱时,它的10khz对应的幅值吧
明白意思了吗???
-----------------------------------------------------------------------

“你的思维能不能不要拘泥在  a124=0.8579”---不是我的问题,是fft算法本身的问题。
(303225609)
发表于 2010-11-24 13:26:20 | 显示全部楼层
回复【113楼】fickle
-----------------------------------------------------------------------

可是我只说一个简单的公式就可以克服这个算法本身的问题?
(303225446)
发表于 2010-11-24 13:29:03 | 显示全部楼层
而不是前面你的 上面 加窗和 改变采样率(还有上面最好是信号频率的2^n),你那么做的目的,只是为了避免,而前面我说过的,如果采样率固定,窗函数也固定,也就是暴露这个算法本身的问题,这个时候你不能就 束手无策了吧
(303225277)
发表于 2010-11-24 13:31:52 | 显示全部楼层
还有前面很多那些你认为我幼稚的什么搬书 ,(呵呵,看来你太想一论高下了,我倒是喜欢玩玩。说太多抽象名词概念)什么抽象名词,什么窗函数是你那种理解,真的都有问题,你的理论该补充补充一下,别BS拿书出来的,你的知识都是从书里面出来的
(303225056)
发表于 2010-11-24 13:35:33 | 显示全部楼层
回复【97楼】fickle
-----------------------------------------------------------------------

还有这些,说话注意点
(303225021)
发表于 2010-11-24 13:36:08 | 显示全部楼层
回复【115楼】E318AAA
而不是前面你的 上面 加窗和 改变采样率(还有上面最好是信号频率的2^n),你那么做的目的,只是为了避免,而前面我说过的,如果采样率固定,窗函数也固定,也就是暴露这个算法本身的问题,这个时候你不能就 束手无策了吧
-----------------------------------------------------------------------

NO,已在56楼提出办法而且实际应用从没+窗。
(303224942)
发表于 2010-11-24 13:37:27 | 显示全部楼层
回复【117楼】E318AAA
回复【97楼】fickle  
-----------------------------------------------------------------------
还有这些,说话注意点
-----------------------------------------------------------------------

呵呵,你敢说,难道我不能乐?
(303224843)
发表于 2010-11-24 13:39:06 | 显示全部楼层
回复【109楼】fickle
-----------------------------------------------------------------------

第12楼

呵呵,说句不中听的话。

楼主没用对fft,你这样算会发生频谱泄露,要加窗;或者改变采样频率。

当然,楼主本意是演示,做的非常好了。


第109楼
回复【106楼】E318AAA  
回复【98楼】fickle   
-----------------------------------------------------------------------  
是男人就把问题讨论清楚   如果你觉得你的理解是对的,那就当我向你请教,这样行了吧
-----------------------------------------------------------------------
计算结果都出来了,和我12楼说的一致。还要讨论什么?


你12楼说的是 要加窗;或者改变采样频率(是吧?)可我问你这校正与你说到的有关系吗?(我加窗了,改变采样频率了?)
那你还问 还要讨论什么?
那我问你 你觉得我们在讨论什么?
(303224809)
发表于 2010-11-24 13:39:40 | 显示全部楼层
回复【119楼】fickle
-----------------------------------------------------------------------

可是是你错了,还是我错了?其实在这MATLAB上面显示的
(303224636)
发表于 2010-11-24 13:42:33 | 显示全部楼层
回复【118楼】fickle
-----------------------------------------------------------------------
实际应用中从没+窗(你认为矩形窗是在信号上面还要在编写一个窗函数吧!!!)
我说过多少遍!!!没处理就是加矩形窗!!!(你不理解矩形窗?时域上)
(303224400)
发表于 2010-11-24 13:46:29 | 显示全部楼层
回复【118楼】fickle
-----------------------------------------------------------------------

那我还加一条,就得使用FFT ,那你就没办法了?
(303224338)
发表于 2010-11-24 13:47:31 | 显示全部楼层
我的婶呀,你不会以为 你的短短几行代码,弥补fft算法缺陷吧?

我真的不理解。
(303224305)
发表于 2010-11-24 13:48:04 | 显示全部楼层
回复【124楼】fickle
-----------------------------------------------------------------------

不是几行代码,就1个公式,也就是1句代码
(303224271)
发表于 2010-11-24 13:48:38 | 显示全部楼层
回复【124楼】fickle
-----------------------------------------------------------------------

还有可以回答下 我123楼的问题
(303224243)
发表于 2010-11-24 13:49:06 | 显示全部楼层
回复【123楼】E318AAA
回复【118楼】fickle  
-----------------------------------------------------------------------
那我还加一条,就得使用fft ,那你就没办法了?
-----------------------------------------------------------------------

你非要往死胡同钻,我真的没办法。
(303224148)
发表于 2010-11-24 13:50:41 | 显示全部楼层
回复【125楼】E318AAA
回复【124楼】fickle  
-----------------------------------------------------------------------
不是几行代码,就1个公式,也就是1句代码
-----------------------------------------------------------------------

是么?那恭喜你啦!

请问您老贵姓?
(303224104)
发表于 2010-11-24 13:51:25 | 显示全部楼层
回复【127楼】fickle
-----------------------------------------------------------------------

就是说如果这种情况,你不能根据频谱来算出原信号的幅值  我没理解错吧
(303224037)
发表于 2010-11-24 13:52:32 | 显示全部楼层
回复【128楼】fickle
-----------------------------------------------------------------------

你去看看那个PDF里面的 频谱校正方法


前人研究过,就像FFT也是前人的出来的算法
(303223943)
发表于 2010-11-24 13:54:06 | 显示全部楼层
回复【128楼】fickle
-----------------------------------------------------------------------

我也恭喜你,理论知识太好了,凭借你对信号与系统无与伦比的理解与参透,简直是获益良多啊,您不愧是我的良师益友啊
(303223559)
发表于 2010-11-24 14:00:30 | 显示全部楼层
呵呵,我看还是算了,越说越没营养了。

我发了一帖,就是用到上面提到算法,比在这里争论更有实际意义。


http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4217332&bbs_page_no=1&search_mode=4&search_text=fickle&bbs_id=9999
(303222968)
发表于 2010-11-24 14:10:21 | 显示全部楼层
回复【132楼】fickle
-----------------------------------------------------------------------

呵呵 ,这不能怪我,你前面说话太酸了(至少我没你那么酸,哈哈)

其实大家心平气和的交流多好

你哪里用的是   单频办法(ad5933 资料里有)????
我还没学过单频算法(也就是goertzel算法)???不太了解啊   我还是从未踏入社会的学生,知识面是很窄,工作经验 0,实践基础也惨不忍睹
但是我能了解的学习到的知识,不一定比你这种老_江湖就差太多   哈哈
(303222416)
发表于 2010-11-24 14:19:33 | 显示全部楼层
还有你有发现   gzhuli 咕唧霖,还有什么cowboy  等这些高人,从来没有说话都跟你(当然还有很多论坛的“高手”)一个调么
哈哈 ,所以他们...
(303221398)
发表于 2010-11-24 14:36:31 | 显示全部楼层
回复【135楼】fickle
-----------------------------------------------------------------------

还有我133楼的问题呢?确认下啊...
(303221235)
发表于 2010-11-24 14:39:14 | 显示全部楼层
回复【136楼】E318AAA
回复【135楼】fickle  
-----------------------------------------------------------------------
还有我133楼的问题呢?确认下啊...
-----------------------------------------------------------------------

酸?

呵呵,你要是能指出我lcr设计问题,我就承认。并且对酸的不到之处道歉。
(303221010)
发表于 2010-11-24 14:42:59 | 显示全部楼层
回复【137楼】fickle
-----------------------------------------------------------------------

呵呵,你那什么LCR设计,我估计连门外汉的资格都没用,更没资格指出别的了

我只说问的是你132楼里提到的你在那个帖子里面的算法是否就是

你哪里用的是   单频办法(ad5933 资料里有)????
我还没学过单频算法(也就是goertzel算法)???不太了解啊

我表述的不够清楚?
(303216071)
发表于 2010-11-24 16:05:18 | 显示全部楼层
mark FFT测频
(303215683)
发表于 2010-11-24 16:11:46 | 显示全部楼层
讨论氛围很好嘛,我喜欢这样的讨论。
(303215292)
发表于 2010-11-24 16:18:17 | 显示全部楼层
mark
(303142365)
发表于 2010-11-25 12:33:44 | 显示全部楼层
回复【138楼】E318AAA
-----------------------------------------------------------------------

1、ad5933

    打开ad官网,发现数据手册更新,和我看到不一样了。

2、goertzel

    在ednmag有一片文章详细论述。
(303132804)
发表于 2010-11-25 15:13:05 | 显示全部楼层
学术贴啊,mark一下
(303027960)
发表于 2010-11-26 20:20:29 | 显示全部楼层
回复【134楼】E318AAA
还有你有发现   gzhuli 咕唧霖,还有什么cowboy  等这些高人,从来没有说话都跟你(当然还有很多论坛的“高手”)一个调么
哈哈 ,所以他们...

-----------------------------------------------------------------------

1、能有70楼那样的见识,以后在社会安身立命肯定没问题。

2、开始没理解为什么说出这段话,呵呵,现在明白了。我倒是也希望你能说出类似gzhuli的独立思考的话 。
(302940305)
发表于 2010-11-27 20:41:24 | 显示全部楼层
回复【144楼】fickle
-----------------------------------------------------------------------

呵呵  gzhuli的高度,起码对于现在的我,还太遥远,不过只要能一直向前走,离他们就更近一点了...

“学如逆水行舟,不进则退”
(302940244)
发表于 2010-11-27 20:42:25 | 显示全部楼层
回复【142楼】fickle
-----------------------------------------------------------------------

OK,知道了  谢谢了
(301725704)
发表于 2010-12-11 22:04:45 | 显示全部楼层
mark
(301724396)
发表于 2010-12-11 22:26:33 | 显示全部楼层
mark
(301719064)
发表于 2010-12-11 23:55:25 | 显示全部楼层
哇,这个帖子真是太漂亮了,建议阿莫加cool~~~这种讨论看着就喜欢,如果每个帖子都这么精彩就好了,哈哈~~~
(291297566)
发表于 2011-4-11 14:47:03 | 显示全部楼层
mark
(291294176)
发表于 2011-4-11 15:43:33 | 显示全部楼层
mark!
(285067390)
发表于 2011-6-22 17:23:19 | 显示全部楼层
学术精神!
(284927553)
发表于 2011-6-24 08:13:56 | 显示全部楼层
mark
(284925675)
发表于 2011-6-24 08:45:14 | 显示全部楼层
就喜欢这样的贴,又学习了
(284923721)
发表于 2011-6-24 09:17:48 | 显示全部楼层
FFT变换在哪些场合可以应用
(284920572)
发表于 2011-6-24 10:10:17 | 显示全部楼层
神贴留名,反复多次阅读。
(284916425)
发表于 2011-6-24 11:19:24 | 显示全部楼层
看看~
(284915126)
发表于 2011-6-24 11:41:03 | 显示全部楼层
高手论剑,我辈席地坐听
(284908357)
发表于 2011-6-24 13:33:52 | 显示全部楼层
mark
(284643044)
发表于 2011-6-27 15:15:45 | 显示全部楼层
mark
(283235205)
发表于 2011-7-13 22:19:44 | 显示全部楼层
学习中。。
(283138002)
发表于 2011-7-15 01:19:47 | 显示全部楼层
学习中。。
(281253895)
发表于 2011-8-5 20:41:34 | 显示全部楼层
冲着E318AAA 和fickle的激_情辩论,mark了!
(281240897)
发表于 2011-8-6 00:18:12 | 显示全部楼层
先记下,以后再看辩论
(281239359)
发表于 2011-8-6 00:43:50 | 显示全部楼层
mark
(281195058)
发表于 2011-8-6 13:02:11 | 显示全部楼层
mark
(281168487)
发表于 2011-8-6 20:25:02 | 显示全部楼层
mark
(281167311)
发表于 2011-8-6 20:44:38 | 显示全部楼层
回复【110楼】E318AAA  
还有你的思维能不能不要拘泥在  a124=0.8579  ,它不代表我这个信号的真实幅值,真实幅值是通过a124和a125,然后校正一下就算出来的,你比较精度好歹是   fs=48khz是10khz的幅值和  你fs=32khz的10khz的幅值比较吧,可关键是我的a124不是代表10khz,所以单用着a124  这能和你的32khz的比较吗!!!!  我也得用fs=48khz的时候,这个频谱时,它的10khz对应的幅值吧
明白意思了吗???
-----------------------------------------------------------------------

你是否能改一个版本,这样大家都清楚正确性!
或是重开一帖,大家比较看看?
(281141737)
发表于 2011-8-7 03:50:52 | 显示全部楼层
受益匪浅啊!
(280472905)
发表于 2011-8-14 21:38:04 | 显示全部楼层
呵呵 很热闹!我想问下楼主,能否公开下你STM32的源代码?你的博客上只有你的上位机EXE文件吧
(239713325)
发表于 2012-11-28 15:44:24 | 显示全部楼层
不错,标记一下
(220185742)
发表于 2013-7-12 16:04:07 | 显示全部楼层
表示看不懂,太高级了。
(220114028)
发表于 2013-7-13 11:59:21 | 显示全部楼层
我和我的小伙伴们惊呆了,表示学过,但是相当于没学过
(220104146)
发表于 2013-7-13 14:44:03 | 显示全部楼层
晕死啊,这坟给挖的……
顺便看了下争论的核心问题,恕我不才,应该是满足Fs = F*2^N时效果最好啊
既然目标信号频率是确定的,10KHz的信号,自然是10KHz*2^N如40KHz、80KHz的采样频率下,采够2^N个点(如lz说的256个点)效果最好啊,非得跟48KHz,还有32KHz、64KHz叫什么劲呢
当然,目标信号频率不确定,或做广谱域分析时,自然是采样率越高(频谱上限大)、采样点数越多(频率分辨率高)越好。
(218773631)
发表于 2013-7-29 00:19:18 | 显示全部楼层
      mark
(218724708)
发表于 2013-7-29 13:54:41 | 显示全部楼层
256点FFT傅里叶足够用了
(218484348)
发表于 2013-8-1 08:40:41 | 显示全部楼层
shdjdq 发表于 2010-9-30 13:31
22楼讲的很有道理,我用VC试过,在2^N采样精度很高,且采样频不一定要很高。fickle确实要高一筹。哪位高手 ...

采样频率大小是你的输入信号的频率和采样的点数所决定的,采样后的信号做完FFT之后的处理就是应用的时候了,说一个我曾经用过的例子,
用双路AD对一个电感或电容的激励输入端和输出端分别采样,利用幅频值之比可以求出电容或电感的大小,结果精准,因为快速的傅里叶变换
已经把没用的信号衰减的差不多没了,利用相角的正切或arc正切可以求出电感的品质因数Q或电容的损耗系数D等等。但一般不用采那么多点的,
8个点就可以恢复出原信号,如果你输入信号频率很高且采样的点数较多,例如1M*256点16bit独立AD,那处理器哪里来256M的AD的时钟?
(206379477)
发表于 2013-12-19 11:08:32 | 显示全部楼层
E318AAA 发表于 2010-11-22 20:50
减小频域分辨率并不能根本解决问题,而是接近而已。最好的办法严格依照测定频率的2^n采样。

```````````
(202819666)
发表于 2014-1-29 15:58:43 | 显示全部楼层
辩则通,你们多辩论,我们多学习
(202042750)
发表于 2014-2-7 15:47:19 | 显示全部楼层
mark一下
(202041570)
发表于 2014-2-7 16:06:59 | 显示全部楼层
先MARK一下
(202038782)
发表于 2014-2-7 16:53:27 来自手机 | 显示全部楼层
mark,起假研究一下。
(27859312)
发表于 2019-8-16 16:04:37 | 显示全部楼层
最近也在研究fft,还没明白函数输出的结果的意义。。嘿嘿。。先学习下
(4417252)
发表于 2020-5-13 23:45:37 | 显示全部楼层
fickle 发表于 2010-9-30 12:58
回复【21楼】antonine
-----------------------------------------------------------------------

如果待测试的频率有抖动,比如10KHz,会从9995~10005波动。那怎么使用2^N来采样呢?还望明示。谢谢。
(4416125)
发表于 2020-5-14 00:04:24 来自手机 | 显示全部楼层
老铁翻新了?
(3320002)
发表于 2020-5-26 16:33:07 | 显示全部楼层
学习了,最近正在用
(3263567)
发表于 2020-5-27 08:13:42 | 显示全部楼层
一直没弄懂fft,学习下
回帖提示: 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-7-4 02:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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