fft matlab, scaling amplitude problem
显示 更早的评论
Hi I've faced a problem in my homework coding. please help me to solve it.
I wrote a code for a problem, which i have its results. but after taking fft function from input, the amplitude of output is twice more than expected result.
what are the reasons that might be caused this?
I really appreciate it.
回答(2 个)
Wayne King
2013-5-30
You should always show your code:
fs = 1000;
t = 0:1/fs:1-1/fs;
L = length(x);
xdft = fft(x)/L;
plot(abs(xdft))
Exactly as I expect two peaks with amplitude 0.5
Or
xdft = 2*fft(x)/L;
xdft = xdft(1:length(x)/2+1);
plot(abs(xdft))
4 个评论
Bob GH
2013-5-30
Wayne King
2013-5-30
Again, you're not showing your code (not sure why). If you are using the fft() for amplitude estimation, you want to divide by the length of the input signal.
Bob GH
2013-5-30
Bob GH
2013-5-30
Azzi Abdelmalek
2013-5-30
0 个投票
That means that, before calculating the fft, you've made some errors, which we can't find, because you have not posted the code.
2 个评论
Bob GH
2013-5-30
Wayne King
2013-5-30
编辑:Wayne King
2013-5-30
Does 10++ mean 12 lines? If it is a reasonable number, please post it all. Did you look at the code I posted below?
类别
在 帮助中心 和 File Exchange 中查找有关 Get Started with Signal Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!