24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2336  |  回复: 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))
)
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

noreason2

新虫 (著名写手)

引用回帖:
5楼: Originally posted by xunking at 2012-04-23 16:10:03:
DFT变换后频谱有正负分量,他们的幅值恰好共轭对称,全部折算为正频分量才具有实际意义!
关于这个问题的理解欢迎继续讨论交流!

不是吧,DFT的X(k),k取0~(N-1)啊,这可不是普通的FT啊
8楼2012-04-23 22:19:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 19 个回答

noreason2

新虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xunking: 金币+5, 有帮助, 谢谢 2012-04-23 16:04:23
xunking: 金币+8, ★★★很有帮助 2012-04-25 18:58:08
虽然用FFT算出的点由于填0的原因数量多了,但是只有前L点有效,所以应该除以L。看看这篇论文:
2楼2012-04-23 13:11:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

afu2007

铁杆木虫 (职业作家)

请教:
plot((1:2^15)/2^15*1000,2*abs(y))
这条语句里面为什么是2*abs(y),而不是abs(y)
3楼2012-04-23 13:20:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xunking

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by noreason2 at 2012-04-23 13:11:54:
虽然用FFT算出的点由于填0的原因数量多了,但是只有前L点有效,所以应该除以L。看看这篇论文:
<FFT补零充位问题的补充>

谢谢你的回复。
我大概理解了,这确实是一个好问题,可能很多人在学习中忽略了。我觉得应该如下理解:
从帕斯瓦尔定理,即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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +11 花田半亩~白 2026-04-21 11/550 2026-04-22 18:21 by maolC
[考博] 华师大读博 +3 xq83 2026-04-22 5/250 2026-04-22 10:42 by xq83
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +5 yexuqing 2026-04-19 5/250 2026-04-22 10:01 by easeheart
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +11 否极泰来2026 2026-04-15 13/650 2026-04-20 22:31 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 300求调剂 +12 橙a777 2026-04-15 12/600 2026-04-18 23:51 by 路病情
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
信息提示
请填处理意见