ACCELERATION, VELOCITY & DISPLACEMENT SPECTRA – OMEGA ARITHMETIC
By Dr Colin Mercer, Technical Director, Prosig
Accelerometers are robust, simple to use and readily available transducers. Measuring velocity and displacement directly is not simple. In a laboratory test rig we could use one of the modern potentiometer or LVDT transducers to measure absolute displacement directly as static reference points are available. But on a moving vehicle this is not possible.
More here… OmegaArithmetic.pdf

Dear Dr Mercer:
I read your article about Omega Arithmatic and try to apply it on my experiment results, and met some problems really need your help!! I use accelerometer to collect data. Following the article, I do the Fourier transform and divided by -w^2 to get the displacement spectrum. After that when i do the inverse Fourier transform to get displacement time sequence, the result is a “complex vector”. So my question is how can I convert this “complex vector” to a displacement time sequence?? Is it correct to get the magnitude of each complex number, or just keep the real part and leave the imaginary part?? I really appreciate your kindly help!!
Comment by Linus Lin — August 26, 2008 @ 11:25 am
must do the complex calculation, use both parts. u can only use the multiplicaion and addition, basic calculation rules are:
(a+jb)*(c+jd) = a*c-b*d + j(a*d+b*c); (a+jb) + (c+jd) = (a+c) + j(b+d);
if use c, u can use two arrays to hold the real part and imaginary part separately, input spectrum vactors are acc_real[N], acc_imagine[N], N is the number of vectors.
in yr programm what u only need to calculate are: omega_disp_real[N], omega_disp_imagine[N].
Omega_disp_factor_real = -1.0/w^2; Omega_disp_factor_imagine = 0;
for each n
omega_disp_real[n] = acc_real[n]*Omega_disp_factor_real - acc_imagine[n]*Omega_disp_factor_imagine + acc_real[n]*Omega_disp_factor_imagine + acc_imagine[n]*Omega_disp_factor_real ;
omega_disp_imagine[n] = acc_real[n]*Omega_disp_factor_real - acc_imagine[n]*Omega_disp_factor_imagine;
omega_disp_real[n] = acc_real[n]*Omega_disp_factor_imagine + acc_imagine[n]*Omega_disp_factor_real ;
time squence magitude value use: magitude_disp[n] = sqrtf(omega_disp_real[n]^2 + omega_disp_imagine[n]^2); phase[n]=…
if use matlab, the vectors can be directly devided by -w^2, Omega_disp = acc_fft_vector./(-w^2).
matlab takes care of the complex calculation automatically.
time squence magitude value use magitude_disp = |Omega_disp|; phase value: …
Comment by Sun Xioachang — September 15, 2008 @ 7:31 am