matlab中FFT函数的疑问
在信号的频域转化时y=fft(x,n);plot(f,abs(y));其中N的取值怎么取?一般取512吗?还有f的具体含义以及它的取值问题,谢谢啦~...
在信号的频域转化时
y=fft(x,n);
plot(f,abs(y));
其中N的取值怎么取?一般取512吗?
还有f的具体含义以及它的取值问题,谢谢啦~ 展开
y=fft(x,n);
plot(f,abs(y));
其中N的取值怎么取?一般取512吗?
还有f的具体含义以及它的取值问题,谢谢啦~ 展开
1个回答
展开全部
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显示的长度可以任取。
f为表示频率的横轴,它的长度必须和abs(y)的长度相等,它们都是在图形上显示的长度。比如,f显示n的一半,abs(y)也要取n的一半:plot(f(1:n/2),Y(1:n/2)),其中Y=abs(y)。
注意:做fft的数据长度是整个的数据长度,plot显示的长度可以任取。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询