obtain the fourier trasnform doing the fft. Do I need to normalize??

6 ビュー (過去 30 日間)
SYML2nd
SYML2nd 2019 年 6 月 24 日
編集済み: Matt J 2019 年 6 月 25 日
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 件のコメント
SYML2nd
SYML2nd 2019 年 6 月 24 日
Ok. Thank you very much for your detailed answer. I tried to solve the fact that is a complex quantity by doing
y=abs(tkef)
Do you think it is a proper way to do that??
dpb
dpb 2019 年 6 月 24 日
As Matt J says, "it all depends" on what you're actually trying to compute.

サインインしてコメントする。

採用された回答

Matt J
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 件のコメント
SYML2nd
SYML2nd 2019 年 6 月 25 日
Ok, I tried to study and this solution of multiplying by Tinc seems to me have sense.
Indeed using this method is verified the fact that, if take the frequency 0 of the fourier trasform I should obtain the integral of the time history, as stated below:
But I am still confused about the fact that here https://it.mathworks.com/help/matlab/ref/fft.html it is recommended to divide by L. Can you explain me why?
Matt J
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 ExchangeFourier Analysis and Filtering についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by