| 查看: 836 | 回复: 1 | ||
[求助]
matlab中fft(x)与fft(x,n)的区别 已有1人参与
|
|
matlab中的fft函数主要有两种形式,fft(x)和fft(x,n),当n是2的m次方时,两者的计算结果一致,但有个疑问是,当n不是2的m次方时,对信号进行fft变化应该采用哪种方式?我在网上看到是采用fft(x,n)居多,matlab帮助中采用的也是这种形式,但也发现过采用第一种形式的,那么到底该采用哪种形式呢?还是要具体问题具体分析?这是程序代码 %程序1 clear;clc;fs=100; t=[0:1/fs:83]; p=1.3*sin(0.48*2*pi*t)+0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); figure(1); plot(t,p); grid on; title('信号 p(t)'); xlabel('t'); ylabel('p'); Y=fft(p); mag=abs(Y)*2/length(t); f=(0:length(t)-1)'*fs/length(t); figure(2); plot(f,mag); grid on; title('频谱图 (理想值:[0.48Hz,1.3]、[1.8Hz,0.5]、[2.2Hz,0.9]) '); xlabel('f (Hz)') ylabel('幅值') axis([0,10,0,1.4]); %程序2 clear;clc;fs=100; t=[0:1/fs:83]; p=1.3*sin(0.48*2*pi*t)+0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); figure(1); plot(t,p); grid on; title('信号 p(t)'); xlabel('t'); ylabel('p'); nfft=2^nextpow2(length(t)); Y=fft(p,nfft); mag=abs(Y)*2/length(t); f=(0:nfft-1)'*fs/nfft;%频率序列 figure(2); plot(f,mag); grid on title('频谱图 (理想值:[0.48Hz,1.3]、[1.8Hz,0.5]、[2.2Hz,0.9]) '); xlabel('f (Hz)') ylabel('幅值') axis([0,10,0,1.4]); |
» 猜你喜欢
职称评审没过,求安慰
已经有55人回复
最近几年招的学生写论文不引自己组发的文章
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
弋痕云
铁杆木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 5269.8
- 散金: 75
- 红花: 3
- 帖子: 379
- 在线: 119.8小时
- 虫号: 2534369
- 注册: 2013-07-05
- 性别: GG
- 专业: 机构学与机器人

2楼2016-04-30 17:13:04













回复此楼