在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3117|回复: 4

[原创] matlab或R里FFT函数实现快速傅里叶变换

[复制链接]
发表于 2011-10-17 21:24:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
matlab或R里FFT函数实现快速傅里叶变换

文章来源:不详 作者:佚名
该文章讲述了matlab或R里FFT函数实现快速傅里叶变换.


在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.

    总而言之一句话,这些输出的绝对值就是序列对应的二维频域图上的点,它的横坐标是采样点,纵坐标是振幅,由它我们可以计算序列可能的频率或周期等值。
发表于 2012-3-22 09:54:33 | 显示全部楼层
谢谢分享  支持你
发表于 2015-10-25 21:37:49 | 显示全部楼层
不错 哈珀东西
发表于 2019-7-11 16:55:36 | 显示全部楼层
感谢,感谢!!!!
发表于 2021-8-27 19:41:57 | 显示全部楼层
thank  u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 04:22 , Processed in 0.028992 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表