Measuring the amplitude of a signal

7 views (last 30 days)
Keyvan
Keyvan on 2 Apr 2015
Edited: Keyvan on 2 Apr 2015
Dear all,
I am working on a project and I need to measure the fluctuations and amplitude of a surface displacement. We have measured the displacement of the surface using some sensors by sampling frequency of 20Hz. Here is my signal, only one point of the surface is considered here not whole surface. I have 200 samples in total and Y axis shows displacements in NM.
I applied two methods for measuring the fluctuations.
1- standard deviation of the signal. In this case I am getting 96 NM.
2- Fourier analysis. My code is here.
Fs = 20;
x = data;
plot(x);
xdft = fft(x,200);
xdft = xdft(1:length(xdft)/2+1);
xdft = xdft/length(x);
xdft(2:end-1) = 2*xdft(2:end-1);
figure
plot(abs(xdft));
[B] = sort(abs(xdft(1:200/2+1))); %order the amplitudes
A2=B(end-2); %amplitude of 2nd peak
After running the code, I am getting 37.47 for the second peak of FFT signal. I am guessing I need to pick different peak of the signal. My concerning is about the amplitude of the signal not the frequencies. Which peak is the close answer? And why Fourier Analysis and standard deviation are too different here ? Here is the FFT of the signal.

Answers (0)

Community Treasure Hunt

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

Start Hunting!