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에서 Fourier Analysis and Filtering에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!