huaijuliu 发表于 2011-10-29 18:50

有关MATLAB FFT的应用问题

各位大侠好。这个问题不是牵涉时域频域转换,而是仅仅希望找出一个信号的频率成分。
比如知道解析解的一个信号b
a=1:500;
b=sin(a)+cos(2*a);
如何利用FFT找到这两个频率?
直接采用c=abs(fft(b))给出的两个频率分量如何转化为真实的频率分量?
感谢大家。

huaijuliu 发表于 2011-10-29 18:55

为大家贴上这个图 如何理解在点81出现峰值?

ChaChing 发表于 2011-10-29 23:31

ref:
[原创]关于FFT的频谱对应关系 http://forum.vibunion.com/thread-23614-1-1.html
Matlab编程实现FFT实践及频谱分析 http://forum.vibunion.com/thread-51332-1-1.html
FFT方法和FFT的应用注意点 http://forum.vibunion.com/thread-77716-1-1.html
[原创]关于FFT的结果为什么要除以N http://forum.vibunion.com/thread-23665-1-1.html
...

VibrationMaster 发表于 2011-10-30 19:19

找峰值,再校正或插值

huaijuliu 发表于 2011-10-31 02:19

本帖最后由 huaijuliu 于 2011-10-31 02:36 编辑

回复 3 # ChaChing 的帖子

感谢您所提供的链接信息 因为我不知道信号的采样频率(不晓得这段信号占据了多少时间) 是不是说就没办法得到真实的角频率 可是这个解析解非常明显 两个主要角频率 是不是可以随意假设一个时间段呢?
为您描述详细些。假设这个信号是一个表面轮廓仪测得的表面粗糙度,只是不知道这个轮廓仪的采样频率,我拿到的只是一个数列,这样是否还能通过FFT得到频率分量成分辨识?

ChaChing 发表于 2011-11-1 00:54

看LZ的详细描述, 感觉LZ并非针对时域的东西!? 而是空间的问题
没细想, 但我想应该可以把距离等效成时间

fzwxjtu 发表于 2011-11-1 11:52

实际上楼主默认了采样率fs=1,而sin(a)中的成分频率为1/(2*pi),而频率间隔为1/500,这就导致了500/(2*pi)点处峰值的出现,个人是这样认为的,不知道对不对?

huaijuliu 发表于 2011-11-1 22:03

感谢楼上两位的帮助 我想楼上的解释应该是成立的 其实把自变量a看做t 然后采样频率默认1 整好能够解释这个图

wenxin841115 发表于 2011-12-31 16:08

学习了,谢了
页: [1]
查看完整版本: 有关MATLAB FFT的应用问题