I’m a student studying on vibration analysis & testing. I’ve performed low level sine sweep test of a simple rectangular PCB with clamped boundary conditions on two ends of it. That test was performed with an amplitude of 0.5 g (g=9.8m/s^2) and a frequency range was from 20 to 500Hz).

From the accelerometer attached at the center of the PCB, I obtained following time profile (Sampling frequency: Approx. 1600 Hz) (see Fig. 1).

Fig. 1: Time-domain Acceleration Profile of PCB

Then, I’ve created this MATLAB code to perform the FFT, to find amplitudes at 1st and 2nd eigenfrequencies of the tested PCB.


clear all; close all; clc;

t=acc(:,1);             % input t (time) data
x=acc(:,2);             % input x (magnitude) data

dt=(t(2)-t(1));         % sampling frequency
L=length(t);            % time data length

X=fft(x,L)/L;           % fft of magnitude x


plot(t,x);              % accelerattion x (time domain)
xlabel('Time (s)'); ylabel('Acceleration (g)');

loglog(freq,amp);       % accelerattion X (freq domain)
xlabel('Frequency (Hz)'); ylabel('Acceleration (g)');
xlim([20 500])


The result of FFT shows unreasonably low amplitude of 0.1352 g at 1st eigenfrequency. In addition, there is many unidentified errors in the FFT processed signal (see Fig. 2).

Fig. 2: FFT Results from time profile shown in Fig. 1

I believe that I’ve implemented basic FFT functions required to perform a correct amplitude in frequency domain. So, I tried again by using following combination of cosine functions as an input:

t=0:1/1000:200-1/1000;      % input t (time) data
x=36*cos(2*pi*50*t)+100*cos(2*pi*100*t)+150*cos(2*pi*200*t);    % input x (magnitude) data

In this case, however, the results give the correct amplitudes for each peak of the spectrum (see Fig. 3).

Fig. 3: FFT Results from combination of cosine functions

So there are two questions to improve the FFT results; 1) Why the FFT results from my accelerometer signal produces unreasonably low amplitude, even if those of cosine function gives correct results? 2) How to get rid of the dirty noise signals, in order to obtain clear signal (Does the window function is effective to reduce such kind of error?). Thank you for your advice in advance.

  • 3
    $\begingroup$ If I understand correctly from your testing, you swept the sine input signal. Wouldn't this explain the low level output compared to your second test where you have the sine wave constant throughout your data? $\endgroup$ – Dan Boschen May 7 '19 at 2:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.