Fourier Transform- displacement to acceleration graph

4 Ansichten (letzte 30 Tage)
Sunny Math
Sunny Math am 14 Mär. 2016
Bearbeitet: Sunny Math am 15 Mär. 2016
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.

Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by