用 Matlab 编写一个函数,实现FFT。

[复制链接]
查看11 | 回复1 | 2009-10-13 13:52:07 | 显示全部楼层 |阅读模式
网上真的很多这样的代码。这里有一个比较详细的解释:


回复

使用道具 举报

千问 | 2009-10-13 13:52:07 | 显示全部楼层
n要取最接近数据长度的2的整数次方,命令是2^nextpow2(n),其中n是实际数据长度,因为这样的n可以使fft更快。比如,n=1021,执行n=2^nextpow2(n)后,n=2^10=1024。而你说的512也是这个道理。f为表示频率的横轴,它的长度必须和abs(y)的长度相等,它们都是在图形上显示的长度。比如,f显示n的一半,abs(y)也要取n的一半:plot(f(1:n/2),y(1:n/2)),其中y=abs(y)。注意:做fft的数据长度是整个的数据长度,plot显示的长度可以任取。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行