| 查看: 904 | 回复: 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]); |
» 猜你喜欢
初试 317
已经有3人回复
279分求调剂 一志愿211
已经有15人回复
286求调剂
已经有4人回复
279求调剂
已经有4人回复
求调剂
已经有3人回复
求调剂
已经有3人回复
299求调剂
已经有3人回复
330求调剂0854
已经有3人回复
299求调剂
已经有6人回复
286分人工智能专业请求调剂愿意跨考!
已经有5人回复
弋痕云
铁杆木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 5269.8
- 散金: 75
- 红花: 3
- 帖子: 379
- 在线: 119.8小时
- 虫号: 2534369
- 注册: 2013-07-05
- 性别: GG
- 专业: 机构学与机器人

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













回复此楼