| 查看: 2172 | 回复: 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)) ) |
» 猜你喜欢
基金申报
已经有5人回复
基金委咋了?2026年的指南还没有出来?
已经有7人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复
常年博士招收(双一流,工科)
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
鼠骨髓细胞(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
- 专业: 模式识别
2楼2012-04-23 13:11:54
xunking
银虫 (初入文坛)
- 应助: 3 (幼儿园)
- 金币: 701
- 帖子: 25
- 在线: 77.2小时
- 虫号: 1069384
- 注册: 2010-08-04
- 性别: GG
- 专业: 信号理论与信号处理
11楼2012-04-24 07:12:09
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
xunking
银虫 (初入文坛)
- 应助: 3 (幼儿园)
- 金币: 701
- 帖子: 25
- 在线: 77.2小时
- 虫号: 1069384
- 注册: 2010-08-04
- 性别: GG
- 专业: 信号理论与信号处理
5楼2012-04-23 16:10:03
nakada3861
新虫 (正式写手)
- 应助: 50 (小学生)
- 金币: 848.1
- 帖子: 303
- 在线: 39.5小时
- 虫号: 792398
- 注册: 2009-06-11
- 专业: 信息理论与信息系统
6楼2012-04-23 18:07:54
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
- 专业: 模式识别
8楼2012-04-23 22:19:29
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
- 专业: 模式识别
10楼2012-04-23 22:31:00











回复此楼