digital-brain/content/zettels/sensor_noise_estimation.md

5.0 KiB
Raw Blame History

+++ title = "Sensor Noise Estimation" author = ["Thomas Dehaeze"] draft = false +++

Tags :

Estimation of the Noise of Inertial Sensors

Measuring the noise level of inertial sensors is not easy as the seismic motion is usually much larger than the sensor's noise level.

A technique to estimate the sensor noise in such case is proposed in (Barzilai, VanZandt, and Kenny 1998) and well explained in (Poel 2010) (Section 6.1.3).

The idea is to mount two inertial sensors closely together such that they should measure the same quantity.

This is represented in Figure 1 where two identical sensors are measuring the same motion \(x(t)\).

{{< figure src="/ox-hugo/huddle_test_setup.png" caption="Figure 1: Schematic representation of the setup for measuring the noise of inertial sensors." >}}

Few quantities that will be used to estimate the sensor noise are now defined. This include the Coherence, the Power Spectral Density (PSD) and the Cross Spectral Density (CSD).

The coherence between signals \(x\) and \(y\) is defined as follow \[ \gamma^2_{xy}(\omega) = \frac{|C_{xy}(\omega)|^2}{|P_{x}(\omega)| |P_{y}(\omega)|} \] where \(|P_{x}(\omega)|\) is the output PSD of signal \(x(t)\) and \(|C_{xy}(\omega)|\) is the CSD of signals \(x(t)\) and \(y(t)\).

The PSD and CSD are defined as follow:

\begin{align} |P_x(\omega)| &= \frac{2}{n_d T} \sum^{n_d}_{n=1} \left| x_k(\omega, T) \right|^2 \\\ |C_{xy}(\omega)| &= \frac{2}{n_d T} \sum^{n_d}_{n=1} [ x_k^*(\omega, T) ] [ y_k(\omega, T) ] \end{align}

where:

  • \(n_d\) is the number for records averaged
  • \(T\) is the length of each record
  • \(x_k(\omega, T)\) is the finite Fourier transform of the kth record
  • \(x_k^*(\omega, T)\) is its complex conjugate

The Matlab function mscohere can be used to compute the coherence:

%% Parameters
Fs = 1e4; % Sampling Frequency [Hz]
win = hanning(ceil(10*Fs)); % 10 seconds Hanning Windows

%% Coherence between x and y
[pxy, f] = mscohere(x, y, win, [], [], Fs); % Coherence, frequency vector in [Hz]

Alternatively, it can be manually computed using the cpsd and pwelch commands:

%% Manual Computation of the Coherence
[pxy, f] = cpsd(x, y, win, [], [], Fs); % Cross Spectral Density between x and y
[pxx, ~] = pwelch(x, win, [], [], Fs); % Power Spectral Density of x
[pyy, ~] = pwelch(y, win, [], [], Fs); % Power Spectral Density of y

pxy_manual = abs(pxy).^2./abs(pxx)./abs(pyy);

Now suppose that:

  • both sensors are modelled as LTI systems \(H_1(s)\) and \(H_2(s)\)
  • sensor noises are modelled as input noises \(n_1(t)\) and \(n_2(s)\)
  • sensor noises are uncorrelated and each are uncorrelated with \(x(t)\)

Then, the system can be represented by the block diagram in Figure 2, and we can write:

\begin{align} P_{y_1y_1}(\omega) &= |H_1(\omega)|^2 ( P_{x}(\omega) + P_{n_1}(\omega) ) \\\ P_{y_2y_2}(\omega) &= |H_2(\omega)|^2 ( P_{x}(\omega) + P_{n_2}(\omega) ) \\\ C_{y_1y_2}(j\omega) &= H_2^H(j\omega) H_1(j\omega) P_{x}(\omega) \end{align}

And the CSD between \(y_1(t)\) and \(y_2(t)\) is:

\begin{equation} \gamma^2_{y_1y_2}(\omega) = \frac{|C_{y_1y_2}(j\omega)|^2}{P_{y_1}(\omega) P_{y_2}(\omega)} \end{equation}

{{< figure src="/ox-hugo/huddle_test_block_diagram.png" caption="Figure 2: Huddle test block diagram" >}}

Rearranging the equations, we obtain the PSD of \(n_1(t)\) and \(n_2(t)\):

\begin{align} P_{n1}(\omega) = \frac{P_{y_1}(\omega)}{|H_1(j\omega)|^2} \left( 1 - \gamma_{y_1y_2}(\omega) \frac{|H_1(j\omega)|}{|H_2(j\omega)|} \sqrt{\frac{P_{y_2}(\omega)}{P_{y_1}(\omega)}} \right) \\\ P_{n2}(\omega) = \frac{P_{y_2}(\omega)}{|H_2(j\omega)|^2} \left( 1 - \gamma_{y_1y_2}(\omega) \frac{|H_2(j\omega)|}{|H_1(j\omega)|} \sqrt{\frac{P_{y_1}(\omega)}{P_{y_2}(\omega)}} \right) \end{align}

If we assume the two sensor dynamics to be the same \(H_1(s) \approx H_2(s)\) and the PSD of \(n_1(t)\) and \(n_2(t)\) to be the same (\(P_{n_1}(\omega) \approx P_{n_2}(\omega)\)) which is most of the time the case when using two identical sensors, we obtain this approximate equation:

\begin{equation} |P_{n_1}(\omega)| \approx \frac{P_{y_1}}{|H_1(j\omega)|^2} \big( 1 - \gamma_{y_1y_2}(\omega) \big) \end{equation}

Bibliography

Barzilai, Aaron, Tom VanZandt, and Tom Kenny. 1998. “Technique for Measurement of the Noise of a Sensor in the Presence of Large Background Signals.” Review of Scientific Instruments 69 (7):276772. https://doi.org/10.1063/1.1149013.

Poel, Gerrit Wijnand van der. 2010. “An Exploration of Active Hard Mount Vibration Isolation for Precision Equipment.” University of Twente. https://doi.org/10.3990/1.9789036530163.