obtain the fourier trasnform doing the fft. Do I need to normalize??
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi,
I have a signal in time domain, actually, specific kinetic energy was calculated in time domain and its medium value is 10 m2/s2 (with some peak at 60 m2/s2). I wanted to obtain the Fourier transform of this signal in time domain. Then I did an FFT on the signal and converted to frequency domain; but the amplitude of this kinetic energy in frequency domain is at the magnitude order of 10e6. Why this difference? Should I normalize this FFT in some way to obtain the Fourier trasform? If I do the fft the unit lenght is m2/s2, while if I do the Fourier trasform the unit lenght should be m2/s, so I thought that my problem could be due to a normalization
This is the code (the tket.txt contain the signal, which can be read at the 34th column) can you help me?
tket1=readtable('tket.txt');
tket=table2array(tket1);
Tinc=0.001;
% Tinc is the time step
Fs=1/Tinc;
L=length(tket);
f = Fs*(0:(L/2))/L;
tkef1= fft(tket(:,34:34),L);
fl=length(f);
tkef=tkef1(1:fl,:);
댓글 수: 3
채택된 답변
Matt J
2019년 6월 24일
편집: Matt J
2019년 6월 24일
To approximate a continuous Fourier transform integral, you need to multiply by the time step,
tkef1= fft(tket(:,34:34),L) * Tinc;
Depending on whether you are an engineer or a physicist, you may also need to multiply by 1/sqrt(2*pi), as different professions define the Fourier Transform scaling differently.
댓글 수: 4
Matt J
2019년 6월 25일
편집: Matt J
2019년 6월 25일
Dviding by L gives the Discrete Time Fourier Series coefficients. Possibly, that is what they were trying to compute.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 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!