全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
24535 4
2013-01-26

在matlab或R里我们可以直接调用FFT函数实现快速傅里叶变换,然而FFT的输出到底是什么含义,经常让初学者们一头雾水。实际上,它不过是每个采样点(共N个)对应的振幅(可能叫振幅不是很贴切,准确地讲它们的绝对值才是振幅)或者能量值(该值的绝对值越大,说明该点对应的周期越明显)。

注意:在这些输出值中,第一个值是对应的直流分量的振幅(其实就是周期为无穷的可能性),那么第2个值对应第1个采样点,第3个对应第2个。。第n个对应第n-1个采样点。而且这个输出是对称的,也就是大家直接关注前N/2个才样点就可以了。那么第n个点的频率是多少呢,它的计算公式是Fn=(n-1)*Fs/N,其中Fs是采样频率。由此就可以计算出n点对应的周期了,它是频率的倒数,即Tn=N/((n-1)*Fs)。下面给出两个例子:

例一:>>A=[1,2,1,2,1,2];

          >>fft(A)

           ans= 9 0 0 -3 0 0

         这里输出的意思是,序列A有很大的可能没有周期(第一个点的频率为0,它对应的数字是9),还有一个可能的周期是-3对应的周期,这个周期的计算方法是:-3对应于n=4,默认Fs=1,这里T=6/(3*1)=2,即周期为2。看明白了吗?

       例二: Fn=5; %频率

N=300; %caiyang dian

Fs=40; %cai yang pinlv

t=[0:1/Fs:N/Fs];

S=cos(2*pi*Fn*t);

abs(fft(S));

plot(abs(fft((S))));

如果按照以上的公式计算一下,就会得到该函数的对应频率Fn=5.

    总而言之一句话,这些输出的绝对值就是序列对应的二维频域图上的点,它的横坐标是采样点,纵坐标是振幅,由它我们可以计算序列可能的频率或周期等值。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-1-28 19:44:58
顶啊,楼主,傅立叶变换里面带宽限制是什么意思啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-29 16:05:26
syler 发表于 2013-1-28 19:44
顶啊,楼主,傅立叶变换里面带宽限制是什么意思啊
sorry,,我也不知道,我也刚学fft,这是我从别处转过来的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-9 01:14:29
感觉楼上说的有问题

傅立叶变换,是从低频到高频的叠加,第一个是直流分量没有问题,第二个值应该是采样点能够代表的最低频率函数的振幅,一直到最高频率(最高频率等于相邻两个采样点的代表一个波峰/谷)的叠加
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-9 01:26:57
另外,一个6个点的fft,结果会是6个值,但是只有前四个值有意义。按照cos2nf(备注:n代表派)的含义,f越大,角速度越快,频率也就越大,在第四个值就达到的最大速度。后边两个值,在转换为(-派,0)的这个范围内是,会恰好发现属于对阵频率。所以在频域角度,可以不关注。(但是数值肯定是有用的,在反fft时需要参与计算)

个人小白理解,请大家指正。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群