| 查看: 2203 | 回复: 18 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
xunking银虫 (初入文坛)
|
[求助]
FFT算法的一个问题请教
|
|
|
以下是matlab 的help fft 文档中的实例,有一个问题不太明白,望不吝指教: Fs = 1000; % Sampling frequency T = 1/Fs; % Sample time L = 1000; % Length of signal t = (0:L-1)*T; % Time vector % Sum of a 50 Hz sinusoid and a 120 Hz sinusoid x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); y = x + 2*randn(size(t)); % Sinusoids plus noise plot(Fs*t(1:50),y(1:50)) title('Signal Corrupted with Zero-Mean Random Noise') xlabel('time (milliseconds)') NFFT = 2^nextpow2(L); % Next power of 2 from length of y Y = fft(y,NFFT)/L; f = Fs/2*linspace(0,1,NFFT/2); % Plot single-sided amplitude spectrum. plot(f,2*abs(Y(1:NFFT/2))) title('Single-Sided Amplitude Spectrum of y(t)') xlabel('Frequency (Hz)') ylabel('|Y(f)|') 请问这里"Y = fft(y,NFFT)/L;” 为什么是除以L,而不是除以NFFT。 L点x序列补零后使之成为长NFFT点的序列,由IFFT的定义应该是除以NFFT才对啊?但是实验情况确实除以L,不知道是不是MATLAB里补零后FFT的定义不一样了。 我实验中验证了,确实应该除以L而不应该是NFFT。 (NFFT=2^15长度的FFT变换,fft除以长度L,幅值才大概是对的大概,除以NFFT反而不对,实验如下: n=1:1024; LL=1024; Vs=sin(2*pi*100*n/1000); y=fft(Vs,2^15)/LL;%y=fft(Vs,2^15)/2^15 figure;plot((1:2^15)/2^15*1000,2*abs(y)) ) |
» 猜你喜欢
酰胺脱乙酰基
已经有11人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有4人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有10人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有5人回复
有院领导为了换新车,用横向课题经费买了俩车
已经有5人回复
CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优
已经有6人回复
面上项目申报
已经有3人回复
博士延得我,科研能力直往上蹿
已经有7人回复
面上基金申报没有其他的参与者成吗
已经有5人回复
遇见不省心的家人很难过
已经有22人回复
» 本主题相关价值贴推荐,对您同样有帮助:
鼠骨髓细胞(rat bone marrow cell)培养的一个问题,请教大家。谢谢
已经有30人回复
请教大家一个积分问题
已经有6人回复
请教一个关于遗传算法的简单问题
已经有12人回复
请教一个Mathematica积分的问题(重金求解)
已经有6人回复
请教bader分析中FFT grid (NGXF, NGYF, and NGZF)的设置
已经有24人回复
想大家请教一个问题。。
已经有25人回复
请教各位一个问题,希望能给点建议,先谢谢了!
已经有7人回复
公派出国德国签证一个小问题请教
已经有14人回复
请教各位大侠一个位错问题
已经有4人回复
第一次投稿SCI收到的Decision Letter,另请教问题一个
已经有11人回复
【求助】问个FFT问题
已经有3人回复
【请教】重金求助HRTEM中的FFT如何分析
已经有12人回复
【交流】VC++, C#, VB答疑专贴
已经有145人回复
【交流】Fortran语言答疑专帖
已经有157人回复
noreason2
新虫 (著名写手)
- 应助: 3 (幼儿园)
- 金币: 3516.6
- 散金: 2784
- 红花: 3
- 帖子: 1138
- 在线: 301.1小时
- 虫号: 1372328
- 注册: 2011-08-19
- 性别: GG
- 专业: 模式识别
9楼2012-04-23 22:19:37
noreason2
新虫 (著名写手)
- 应助: 3 (幼儿园)
- 金币: 3516.6
- 散金: 2784
- 红花: 3
- 帖子: 1138
- 在线: 301.1小时
- 虫号: 1372328
- 注册: 2011-08-19
- 性别: GG
- 专业: 模式识别
2楼2012-04-23 13:11:54
afu2007
铁杆木虫 (职业作家)
- 应助: 19 (小学生)
- 金币: 11222.7
- 散金: 32
- 红花: 1
- 帖子: 3561
- 在线: 729.8小时
- 虫号: 801526
- 注册: 2009-06-30
- 性别: GG
- 专业: 导航、制导与传感技术
3楼2012-04-23 13:20:35
xunking
银虫 (初入文坛)
- 应助: 3 (幼儿园)
- 金币: 701
- 帖子: 25
- 在线: 77.2小时
- 虫号: 1069384
- 注册: 2010-08-04
- 性别: GG
- 专业: 信号理论与信号处理
|
谢谢你的回复。 我大概理解了,这确实是一个好问题,可能很多人在学习中忽略了。我觉得应该如下理解: 从帕斯瓦尔定理,即sum(Vs(n)^2)=sum(|y(k)|^2)/NFFT,当补充零点后每个转换的“幅值”确实应该下降的。因为补零后频域更密集的采样,如果原来对应的幅值仍然不变的话,能量就不守恒了。所以补零后由y(k)计算的信号幅值不是原始信号幅值,其中需要一个比例的变换。 所以正确的理解过程应该如下: n=1:1024; LL=1024; Vs=sin(2*pi*100*n/1000); y=fft(Vs,2^15)/2^15 y_real=y*2^15/LL %增加一个比例变换 figure;plot((1:2^15)/2^15*1000,2*abs(y_real)) |
4楼2012-04-23 16:00:54













回复此楼