当前位置:编程学习 > Matlab >>

matlab中FFT函数的疑问

在信号的频域转化时 y=fft(x,n); plot(f,abs(y)); 其中N的取值怎么取?一般取512吗? 还有f的具体含义以及它的取值问题,谢谢啦~
答案: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显示的长度可以任取。

上一个:matlab 编制函数 .
下一个:求一本matlab电子书,最好如下,对于函数有使用方法及其对应的一些例子,请发到1226227629@qq.com,有加分

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,