| 查看: 2083 | 回复: 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)) ) |
» 猜你喜欢
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有7人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有8人回复
申请2026年博士
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有5人回复
2025冷门绝学什么时候出结果
已经有7人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有6人回复
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有7人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
鼠骨髓细胞(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人回复
xunking
银虫 (初入文坛)
- 应助: 3 (幼儿园)
- 金币: 701
- 帖子: 25
- 在线: 77.2小时
- 虫号: 1069384
- 注册: 2010-08-04
- 性别: GG
- 专业: 信号理论与信号处理
7楼2012-04-23 18:34:16
noreason2
新虫 (著名写手)
- 应助: 3 (幼儿园)
- 金币: 3516.6
- 散金: 2784
- 红花: 3
- 帖子: 1138
- 在线: 301.1小时
- 虫号: 1372328
- 注册: 2011-08-19
- 性别: GG
- 专业: 模式识别
2楼2012-04-23 13:11:54
afu2007
铁杆木虫 (职业作家)
- 应助: 19 (小学生)
- 金币: 11217.7
- 散金: 32
- 红花: 1
- 帖子: 3560
- 在线: 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













回复此楼