| 查看: 902 | 回复: 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]); |
» 猜你喜欢
268求调剂
已经有7人回复
一志愿重庆大学085700资源与环境总分308求调剂
已经有4人回复
302求调剂
已经有11人回复
306求调剂
已经有4人回复
材料学学硕080502 337求调剂-一志愿华中科技大学
已经有4人回复
求调剂
已经有6人回复
313求调剂
已经有3人回复
南昌大学材料专硕311分求调剂
已经有6人回复
316求调剂
已经有6人回复
346求调剂[0856]
已经有7人回复
弋痕云
铁杆木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 5269.8
- 散金: 75
- 红花: 3
- 帖子: 379
- 在线: 119.8小时
- 虫号: 2534369
- 注册: 2013-07-05
- 性别: GG
- 专业: 机构学与机器人

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













回复此楼