5

How can I compute the Frequency Response Function (FRF) if I use two three-axis MEMS accelerometer to measure the input excitation and output response?

I have read from some books that the FRF can be computed as the ratio of response to excitation, e.g., $ H(s) = x(s)/F(s)$, where $s$ is the Laplace variable. or a similar way via Fourier transform.

However, those books have not mentioned how to compute FRF when it comes to three-axis accelerometer. As there are three channels of data, i.e., X, Y, Z, should I compute the FRF for each channel separately, or I need to perform some kind of combination of these three axes before computing the FRF?

Trevor Archibald
  • 2,829
  • 2
  • 15
  • 24
ice_lin
  • 153
  • 6

2 Answers2

3

The body of your question (the title is somewhat different) asks about computing the frequency response function (FRF) between a multi-input, multi-output (MIMO) system. First off, the numerical transfer function/FRF between two time domain signals is usually calculated by calculating the cross power spectrum between the two signals and dividing it by the power spectrum of the input $$ FRF_{A\rightarrow B}=\frac{S_{AB}(f)}{S_{AA}(f)}. $$ National Instruments Application Note 41 has a helpful introduction to this type of analysis. It is important to also calculate the coherence of the input and output signals so that you have an idea of how accurate the estimated transfer function is.

To answer your question about how to deal with a MIMO system; usually people think about it as a matrix of transfer functions. In your case there will be 9 independent transfer functions: $$ \begin{pmatrix} FRF_{x\rightarrow x} & FRF_{x\rightarrow y} & FRF_{x\rightarrow z} \\ FRF_{y\rightarrow x} & FRF_{y\rightarrow y} & FRF_{y\rightarrow z} \\ FRF_{z\rightarrow x} & FRF_{z\rightarrow y} & FRF_{z\rightarrow z} \end{pmatrix} $$ Understanding how any excitation shows up at the output is then just a matter of multiplying the x, y, and z inputs (expressed in the frequency domain) by the transfer function matrix.

Chris Mueller
  • 6,456
  • 2
  • 29
  • 56
2

Disclaimer: Base on the question, I am suspecting you are looking for a theoretical explanation. Unfortunately I am not in a position offer any insight in short order.

But I can offer you following two ideas and source code to access data from three axis ADXL345 accelerometer to help you with your endeavors.


Three axis ADXL345 accelerometer implementation using a Embedded Linux platform


Three axis ADXL345 accelerometer implementation using a TIVA ARM Cortex M4

Your are welcome to fork the source code and use them as you wish.

Also I suggest that you use a rate table to generate the input input excitation. Below is a suggestion.

3-axis Rate table

Hope this post with combination of theoretical explanation will give you total solution.


References:

Mahendra Gunawardena
  • 7,155
  • 6
  • 28
  • 68