MATLAB: Obtain the fourier trasnform doing the fft. Do I need to normalize?

fft fourier trasform normalizationMATLAB

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,:);

Best Answer

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.
Related Question