qjhktk的个人空间 https://blog.eetop.cn/403144 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

【转】 matlab(或R)里FFT函数输出的物理意义

已有 2259 次阅读| 2011-12-30 20:13

【转】 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.

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


点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 1

    评论
  • 202

    访问数
关闭

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

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

GMT+8, 2024-5-6 17:54 , Processed in 0.021248 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部