필터 지우기
필터 지우기

Fourier Transform- displacement to acceleration graph

조회 수: 3 (최근 30일)
Sunny Math
Sunny Math 2016년 3월 14일
편집: Sunny Math 2016년 3월 15일
Hello,
I am learning how to use fft in Matlab. I have X and Y axis values(Position) w.r.t time. I have carried out approximation derivative to velocity and acceleration. Then I have carried out the Fourier transform by FFT. Check out the attachments for graphs for acceleration. I have some questions:
1. From figure 1 and 2, How to analyse the data from the graph?. Which form is suitable to analyse the data in frequency domain? Hz or radians?
2. In figure 1 and 2, The magnitude is in dB. How to understand this as the input data is displacement array, not communication signal?
3. What is exactly Welch power spectral density mean in this case?..I have gone through the Matlab documentation but I am not sure its use in representing discrete values(time to frequency) .
4. From Figure (sampling_1), Why the sampling starts from x =1.903? Sampling time = 0.0017sec. Any idea of its significance?
5. Since the sampling is too low i.e. 0.0017sec and corresponding figure has too many signals, does windowing will help?..like Tukey, Bartlett etc. Which one I should prefer to use and how to use it?
6. What will be unit of acceleration after FFT in the freqency domain?
Please look at the following code:
>> T = 0.0017; %Sampling Rate in secs
>> fs = 1/T; %Samples per second
>> X = (1115456 x1 double); %Position values along X-axis
>> N = length (x); %length of the samples
>> TotalTime = T * N;
>> df = fs/N; %frequency increment
>> f = (-fs/2: df: fs/2-2*df)'; %frequency axis
>> dX = diff(X); %derivative of samples
>> dt = diff(t); %derivative of time
>> v_x = diff(X)./diff(t); %Velocity
>> fft_v_X = fftshift(fft(v_X)); %Fourier Transform
>> FFT_V_x_magnitude = abs(fft_v_x); %absolute values
>> plot(f,FFT_V_x_magnitude)
>> dt2 = (dt(1:end-1)+dt(2:end))/2; %second derivative of time
>> A_x = diff(v_x)./dt2; %Acceleration
>> fft_A_x = fftshift(fft(A_x)); % Fourier Transform
>> fft_A_x_magnitude = abs(fft(A_x)); %Absolute Values
>> fa = (-fs/2: df: fs/2-3*df)'; %frequency axis for acceleration
>> plot(fa,fft_A_x_magnitude)
Thank you for help.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Discrete Fourier and Cosine Transforms에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by