808 lines
30 KiB
Org Mode
808 lines
30 KiB
Org Mode
#+TITLE: Measurements On the Slip-Ring - Electrical Noise
|
|
:DRAWER:
|
|
#+STARTUP: overview
|
|
|
|
#+LANGUAGE: en
|
|
#+EMAIL: dehaeze.thomas@gmail.com
|
|
#+AUTHOR: Dehaeze Thomas
|
|
|
|
#+HTML_LINK_HOME: ../index.html
|
|
#+HTML_LINK_UP: ../index.html
|
|
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
|
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
|
|
|
#+HTML_MATHJAX: align: center tagside: right font: TeX
|
|
|
|
#+PROPERTY: header-args:matlab :session *MATLAB*
|
|
#+PROPERTY: header-args:matlab+ :comments org
|
|
#+PROPERTY: header-args:matlab+ :results none
|
|
#+PROPERTY: header-args:matlab+ :exports both
|
|
#+PROPERTY: header-args:matlab+ :eval no-export
|
|
#+PROPERTY: header-args:matlab+ :output-dir figs
|
|
|
|
#+PROPERTY: header-args:shell :eval no-export
|
|
:END:
|
|
|
|
* Introduction :ignore:
|
|
The noise induced by the slip-ring is measured when using geophones:
|
|
- Section [[sec:meas_slip_ring_geophone]]:
|
|
- A geophone located at the sample location is measured with its signal going directly to the ADC and going through the slip-ring
|
|
- The voltage amplifiers where saturating due to high frequency noise
|
|
- Section [[sec:meas_sr_geophone]]:
|
|
- A Low Pass Filter is added before the voltage amplifiers
|
|
- Using a Oscilloscope, high frequency noise at 40kHz generated by the slip-ring has been identified
|
|
- With the additional low pass filter at the input of the voltage amplifiers, the slip-ring don't add any measurable noise to the signal
|
|
|
|
* Effect of the Slip-Ring on the signal when turned ON - Geophone measurement
|
|
:PROPERTIES:
|
|
:header-args:matlab+: :tangle matlab/meas_slip_ring_geophone.m
|
|
:header-args:matlab+: :comments org :mkdirp yes
|
|
:END:
|
|
<<sec:meas_slip_ring_geophone>>
|
|
|
|
** ZIP file containing the data and matlab files :ignore:
|
|
#+begin_src bash :exports none :results none
|
|
if [ matlab/meas_slip_ring_geophone.m -nt data/meas_slip_ring_geophone.zip ]; then
|
|
cp matlab/meas_slip_ring_geophone.m meas_slip_ring_geophone.m;
|
|
zip data/meas_slip_ring_geophone \
|
|
mat/data_018.mat \
|
|
mat/data_019.mat \
|
|
meas_slip_ring_geophone.m;
|
|
rm meas_slip_ring_geophone.m;
|
|
fi
|
|
#+end_src
|
|
|
|
#+begin_note
|
|
All the files (data and Matlab scripts) are accessible [[file:data/meas_slip_ring_geophone.zip][here]].
|
|
#+end_note
|
|
|
|
** Experimental Setup
|
|
*Goal*:
|
|
The goal is to determine if some noise is added to a signal passing through the slip-ring.
|
|
*Setup*:
|
|
Two measurements are made with the control systems of all the stages turned OFF.
|
|
|
|
One geophone is located on the marble while the other is located at the sample location (figure [[fig:setup_slipring]]).
|
|
|
|
The two signals from the geophones are amplified with voltage amplifiers with the following settings:
|
|
- Gain: 60dB
|
|
- AC/DC switch: AC
|
|
- Low pass filter at the output set at 1kHz
|
|
|
|
#+name: fig:setup_slipring
|
|
#+caption: Experimental Setup
|
|
#+attr_html: :width 500px
|
|
[[file:./img/IMG_20190430_112615.jpg]]
|
|
*Measurements*:
|
|
Two measurements are done:
|
|
| Measurement File | Description |
|
|
|--------------------+------------------------------------------------------------------|
|
|
| =mat/meas_018.mat= | Signal goes through the Slip-ring (as shown on the figure above) |
|
|
| =mat/meas_019.mat= | Signal from the top geophone does not goes through the Slip-ring |
|
|
|
|
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
|
| Column number | Description |
|
|
|---------------+-------------------|
|
|
| 1 | Geophone - Marble |
|
|
| 2 | Geophone - Sample |
|
|
| 3 | Time |
|
|
|
|
** Matlab Init :noexport:ignore:
|
|
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
|
<<matlab-dir>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :exports none :results silent :noweb yes
|
|
<<matlab-init>>
|
|
#+end_src
|
|
|
|
** Load data
|
|
We load the data of the z axis of two geophones.
|
|
|
|
#+begin_src matlab :results none
|
|
meas_sr = load('mat/data_018.mat', 'data'); meas_sr = meas_sr.data;
|
|
meas_di = load('mat/data_019.mat', 'data'); meas_di = meas_di.data;
|
|
#+end_src
|
|
|
|
** Analysis - Time Domain
|
|
First, we compare the time domain signals for the two experiments (figure [[fig:slipring_time]]).
|
|
|
|
#+begin_src matlab :results none
|
|
figure;
|
|
hold on;
|
|
plot(meas_di(:, 3), meas_di(:, 2), 'DisplayName', 'Geophone - Direct');
|
|
plot(meas_sr(:, 3), meas_sr(:, 2), 'DisplayName', 'Geophone - Slip-Ring');
|
|
hold off;
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
xlim([0, 50]);
|
|
legend('location', 'northeast');
|
|
#+end_src
|
|
|
|
#+NAME: fig:slipring_time
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/slipring_time.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:slipring_time
|
|
#+CAPTION: Effect of the Slip-Ring on the measured signal of the geophone at the sample location - Time domain
|
|
#+RESULTS: fig:slipring_time
|
|
[[file:figs/slipring_time.png]]
|
|
|
|
** Analysis - Frequency Domain
|
|
We then compute the Power Spectral Density of the two signals and we compare them (figure [[fig:slipring_asd]]).
|
|
|
|
#+begin_src matlab :results none
|
|
dt = meas_di(2, 3) - meas_di(1, 3);
|
|
Fs = 1/dt;
|
|
|
|
win = hanning(ceil(5*Fs));
|
|
#+end_src
|
|
|
|
#+begin_src matlab :results none
|
|
[px_di, f] = pwelch(meas_di(:, 2), win, [], [], Fs);
|
|
[px_sr, ~] = pwelch(meas_sr(:, 2), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
#+begin_src matlab :results none
|
|
figure;
|
|
hold on;
|
|
plot(f, sqrt(px_sr), 'DisplayName', 'Slip-Ring');
|
|
plot(f, sqrt(px_di), 'DisplayName', 'Wire');
|
|
hold off;
|
|
set(gca, 'xscale', 'log');
|
|
set(gca, 'yscale', 'log');
|
|
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
|
xlim([1, 500]);
|
|
legend('Location', 'southwest');
|
|
#+end_src
|
|
|
|
#+NAME: fig:slipring_asd
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/slipring_asd.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:slipring_asd
|
|
#+CAPTION: Effect of the Slip-Ring on the measured signal of the geophone at the sample location - Frequency domain
|
|
#+RESULTS: fig:slipring_asd
|
|
[[file:figs/slipring_asd.png]]
|
|
|
|
** Conclusion
|
|
#+begin_important
|
|
- The voltage amplifiers are saturating during the measurements (as shown by the LED on figure [[fig:setup_slipring]])
|
|
- This saturation is mainly due to high frequency noise => a LPF will be added at the input of the voltage amplifiers in the further measurements
|
|
- The measurements will be redone
|
|
#+end_important
|
|
|
|
* Measure of the noise induced by the Slip-Ring using voltage amplifiers - Geophone
|
|
:PROPERTIES:
|
|
:header-args:matlab+: :tangle matlab/meas_sr_geophone.m
|
|
:header-args:matlab+: :comments org :mkdirp yes
|
|
:END:
|
|
<<sec:meas_sr_geophone>>
|
|
|
|
** ZIP file containing the data and matlab files :ignore:
|
|
#+begin_src bash :exports none :results none
|
|
if [ matlab/meas_sr_geophone.m -nt data/meas_sr_geophone.zip ]; then
|
|
cp matlab/meas_sr_geophone.m meas_sr_geophone.m;
|
|
zip data/meas_sr_geophone \
|
|
mat/data_012.mat \
|
|
mat/data_013.mat \
|
|
mat/data_016.mat \
|
|
mat/data_017.mat \
|
|
mat/data_035.mat \
|
|
mat/data_036.mat \
|
|
meas_sr_geophone.m;
|
|
rm meas_sr_geophone.m;
|
|
fi
|
|
#+end_src
|
|
|
|
#+begin_note
|
|
All the files (data and Matlab scripts) are accessible [[file:data/meas_sr_geophone.zip][here]].
|
|
#+end_note
|
|
|
|
** Matlab Init :noexport:ignore:
|
|
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
|
<<matlab-dir>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :exports none :results silent :noweb yes
|
|
<<matlab-init>>
|
|
#+end_src
|
|
|
|
** First Measurement without LPF
|
|
*** Measurement Description
|
|
**** Goal :ignore:
|
|
*Goal*:
|
|
- Determine if the noise induced by the slip-ring is a limiting factor when measuring the signal coming from a geophone
|
|
|
|
**** Setup :ignore:
|
|
*Setup*:
|
|
- The geophone is located at the sample location
|
|
- The two Voltage amplifiers have the same following settings:
|
|
- Gain: 60dB
|
|
- AC/DC option: AC
|
|
- Low pass filter at the output set to 1kHz
|
|
- The signal from the geophone is split into two using a T-BNC:
|
|
- One part goes directly to the voltage amplifier and then to the ADC
|
|
- The other part goes to the slip-ring=>voltage amplifier=>ADC
|
|
|
|
**** Measurements :ignore:
|
|
*Measurements*:
|
|
Two measurements are done:
|
|
| Measurement File | Description |
|
|
|------------------+---------------|
|
|
| =data_012= | Slip-Ring OFF |
|
|
| =data_013= | Slip-Ring ON |
|
|
|
|
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
|
| Column number | Description |
|
|
|---------------+----------------------------------------------------------------------------|
|
|
| 1 | Measure of the geophone at the sample position with a direct wire |
|
|
| 2 | Measure of the geophone at the sample position going through the slip-ring |
|
|
| 3 | Time |
|
|
|
|
*** Load data
|
|
We load the data of the z axis of two geophones.
|
|
#+begin_src matlab :results none
|
|
sr_off = load('mat/data_012.mat', 'data'); sr_off = sr_off.data;
|
|
sr_on = load('mat/data_013.mat', 'data'); sr_on = sr_on.data;
|
|
#+end_src
|
|
|
|
*** Time Domain
|
|
We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_geophone_time_off]]) and when it is ON (figure [[fig:sr_geophone_time_on]]).
|
|
|
|
#+begin_src matlab :results none :exports none
|
|
figure;
|
|
hold on;
|
|
plot(sr_off(:, 3), sr_off(:, 1), 'DisplayName', 'Direct');
|
|
plot(sr_off(:, 3), sr_off(:, 2), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]');
|
|
ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_time_off
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_geophone_time_off.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_time_off
|
|
#+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
|
|
#+RESULTS: fig:sr_geophone_time_off
|
|
[[file:figs/sr_geophone_time_off.png]]
|
|
|
|
#+begin_src matlab :results none :exports none
|
|
figure;
|
|
hold on;
|
|
plot(sr_on(:, 3), sr_on(:, 1), 'DisplayName', 'Direct');
|
|
plot(sr_on(:, 3), sr_on(:, 2), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]');
|
|
ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_time_on
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_geophone_time_on.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_time_on
|
|
#+CAPTION: Comparison of the time domain signals when the slip-ring is ON
|
|
#+RESULTS: fig:sr_geophone_time_on
|
|
[[file:figs/sr_geophone_time_on.png]]
|
|
|
|
*** Frequency Domain
|
|
We first compute some parameters that will be used for the PSD computation.
|
|
#+begin_src matlab :results none
|
|
dt = sr_off(2, 3)-sr_off(1, 3);
|
|
|
|
Fs = 1/dt; % [Hz]
|
|
|
|
win = hanning(ceil(10*Fs));
|
|
#+end_src
|
|
|
|
Then we compute the Power Spectral Density using =pwelch= function.
|
|
#+begin_src matlab :results none
|
|
% Direct measure
|
|
[pxdoff, ~] = pwelch(sr_off(:, 1), win, [], [], Fs);
|
|
[pxdon, ~] = pwelch(sr_on(:, 1), win, [], [], Fs);
|
|
|
|
% Slip-Ring measure
|
|
[pxsroff, f] = pwelch(sr_off(:, 2), win, [], [], Fs);
|
|
[pxsron, ~] = pwelch(sr_on(:, 2), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_geophone_asd]]);
|
|
|
|
#+begin_src matlab :results none
|
|
figure;
|
|
hold on;
|
|
plot(f, sqrt(pxdoff), 'DisplayName', 'Direct - OFF');
|
|
plot(f, sqrt(pxsroff), 'DisplayName', 'Slip-Ring - OFF');
|
|
plot(f, sqrt(pxdon), 'DisplayName', 'Direct - ON');
|
|
plot(f, sqrt(pxsron), 'DisplayName', 'Slip-Ring - ON');
|
|
hold off;
|
|
set(gca, 'xscale', 'log');
|
|
set(gca, 'yscale', 'log');
|
|
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'northeast');
|
|
xlim([0.1, 500]);
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_asd
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_geophone_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_asd
|
|
#+CAPTION: Comparison of the Amplitude Spectral Sensity
|
|
#+RESULTS: fig:sr_geophone_asd
|
|
[[file:figs/sr_geophone_asd.png]]
|
|
|
|
#+begin_src matlab :results none :exports none
|
|
xlim([100, 500]);
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_asd_zoom
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_geophone_asd_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_geophone_asd_zoom
|
|
#+CAPTION: Comparison of the Amplitude Spectral Sensity - Zoom
|
|
#+RESULTS: fig:sr_geophone_asd_zoom
|
|
[[file:figs/sr_geophone_asd_zoom.png]]
|
|
|
|
*** Conclusion
|
|
#+begin_important
|
|
- The fact that the Slip-Ring is turned ON adds some noise to the signals
|
|
- The signal going through the Slip-Ring is less noisy than the one going directly to the ADC
|
|
- This could be due to better electromagnetic isolation in the slip-ring
|
|
|
|
*Questions*:
|
|
- Can the sharp peak on figure [[fig:sr_geophone_asd_zoom]] be due to the Aliasing?
|
|
#+end_important
|
|
|
|
** Measurement using an oscilloscope
|
|
*** Measurement Setup
|
|
We are now measuring the same signals than in the previous section, but with an oscilloscope instead of with the Speedgoat ADC.
|
|
|
|
*** Observations
|
|
Then the Slip-Ring is ON (figure [[fig:oscilloscope_sr_on]]), we observe a signal at 40kHz with a peak-to-peak amplitude of 200mV for the direct measure and 100mV for the signal going through the Slip-Ring.
|
|
|
|
Then the Slip-Ring is OFF, we don't observe this noise at 40kHz anymore (figure [[fig:oscilloscope_sr_off]]).
|
|
|
|
#+name: fig:oscilloscope_sr_on
|
|
#+caption: Signals measured by the oscilloscope - Slip-Ring ON - Yellow: Direct measure - Blue: Through Slip-Ring
|
|
#+attr_html: :width 500px
|
|
[[file:./img/IMG_20190506_160420.jpg]]
|
|
|
|
#+name: fig:oscilloscope_sr_off
|
|
#+caption: Signals measured by the oscilloscope - Slip-Ring OFF - Yellow: Direct measure - Blue: Through Slip-Ring
|
|
#+attr_html: :width 500px
|
|
[[file:./img/IMG_20190506_160438.jpg]]
|
|
|
|
*** Conclusion
|
|
#+begin_important
|
|
- By looking at the signals using an oscilloscope, there is a lot of high frequency noise when turning on the Slip-Ring
|
|
- This can eventually saturate the voltage amplifiers (seen by a led indicating saturation)
|
|
- The choice is to *add a Low pass filter before the voltage amplifiers* to not saturate them and filter the noise.
|
|
#+end_important
|
|
|
|
** New measurements with a LPF before the Voltage Amplifiers
|
|
*** Setup description
|
|
**** Goal :ignore:
|
|
*Goal*:
|
|
The goal is to see if we can remove high frequency noise from the signals before the voltage amplifiers in order to not saturate them.
|
|
|
|
**** Setup :ignore:
|
|
*Setup*:
|
|
We are measuring the signal from a geophone put at the sample position.
|
|
Using a BNC slitter, one part is going directly to the Low pass filter, voltage amplifier and ADC (first column), the other part is going through the slip ring before the low pass filter and the voltage amplifier (second column).
|
|
|
|
The two voltage amplifiers have the same following settings:
|
|
- Gain: 60dB
|
|
- AC/DC option: DC
|
|
- Low pass filter at the output set to 1kHz
|
|
|
|
The low pass filter is a first order low pass filter RC circuit. It is added before the Voltage Amplifiers and has the following values:
|
|
\begin{aligned}
|
|
R &= 1k\Omega \\
|
|
C &= 1\mu F
|
|
\end{aligned}
|
|
|
|
And the cut-off frequency is $f_c = \frac{1}{RC} = 160Hz$.
|
|
|
|
**** Measurements :ignore:
|
|
*Measurements*:
|
|
Two measurements are done:
|
|
| Measurement File | Description |
|
|
|--------------------+-----------------------------------------------------------------|
|
|
| =mat/data_016.mat= | Signal from the geophone at the sample location - Slip-Ring OFF |
|
|
| =mat/data_017.mat= | Signal from the geophone at the sample location - Slip-Ring ON |
|
|
|
|
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
|
| Column number | Description |
|
|
|---------------+------------------------------------|
|
|
| 1 | Direct measurement |
|
|
| 2 | Signal going through the slip-ring |
|
|
| 3 | Time |
|
|
|
|
*** Load data
|
|
We load the data of the z axis of two geophones.
|
|
#+begin_src matlab :results none
|
|
sr_lpf_off = load('mat/data_016.mat', 'data'); sr_lpf_off = sr_lpf_off.data;
|
|
sr_lpf_on = load('mat/data_017.mat', 'data'); sr_lpf_on = sr_lpf_on.data;
|
|
#+end_src
|
|
|
|
*** Time Domain
|
|
We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_lpf_geophone_time_off]]) and when it is ON (figure [[fig:sr_lpf_geophone_time_on]]).
|
|
|
|
#+begin_src matlab :results none :exports none
|
|
figure;
|
|
hold on;
|
|
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 1)-mean(sr_lpf_off(:, 1)), 'DisplayName', 'Direct');
|
|
plot(sr_lpf_off(:, 3), sr_lpf_off(:, 2)-mean(sr_lpf_off(:, 2)), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
xlim([0, 100]); ylim([-1, 1]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]');
|
|
ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_time_off
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_geophone_time_off.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_time_off
|
|
#+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
|
|
#+RESULTS: fig:sr_lpf_geophone_time_off
|
|
[[file:figs/sr_lpf_geophone_time_off.png]]
|
|
|
|
#+begin_src matlab :results none :exports none
|
|
figure;
|
|
hold on;
|
|
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 1)-mean(sr_lpf_on(:, 1)), 'DisplayName', 'Direct');
|
|
plot(sr_lpf_on(:, 3), sr_lpf_on(:, 2)-mean(sr_lpf_on(:, 2)), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
xlim([0, 100]); ylim([-1, 1]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]');
|
|
ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_time_on
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_geophone_time_on.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_time_on
|
|
#+CAPTION: Comparison of the time domain signals when the slip-ring is ON
|
|
#+RESULTS: fig:sr_lpf_geophone_time_on
|
|
[[file:figs/sr_lpf_geophone_time_on.png]]
|
|
|
|
*** Frequency Domain
|
|
We first compute some parameters that will be used for the PSD computation.
|
|
#+begin_src matlab :results none
|
|
dt = sr_lpf_off(2, 3)-sr_lpf_off(1, 3);
|
|
|
|
Fs = 1/dt; % [Hz]
|
|
|
|
win = hanning(ceil(10*Fs));
|
|
#+end_src
|
|
|
|
Then we compute the Power Spectral Density using =pwelch= function.
|
|
#+begin_src matlab :results none
|
|
% Direct measure
|
|
[pxd_lpf_off, ~] = pwelch(sr_lpf_off(:, 1), win, [], [], Fs);
|
|
[pxd_lpf_on, ~] = pwelch(sr_lpf_on(:, 1), win, [], [], Fs);
|
|
|
|
% Slip-Ring measure
|
|
[pxsr_lpf_off, f] = pwelch(sr_lpf_off(:, 2), win, [], [], Fs);
|
|
[pxsr_lpf_on, ~] = pwelch(sr_lpf_on(:, 2), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_lpf_geophone_asd]]);
|
|
|
|
#+begin_src matlab :results none
|
|
figure;
|
|
hold on;
|
|
plot(f, sqrt(pxd_lpf_off), 'DisplayName', 'Direct - OFF');
|
|
plot(f, sqrt(pxsr_lpf_off), 'DisplayName', 'Slip-Ring - OFF');
|
|
plot(f, sqrt(pxd_lpf_on), 'DisplayName', 'Direct - ON');
|
|
plot(f, sqrt(pxsr_lpf_on), 'DisplayName', 'Slip-Ring - ON');
|
|
hold off;
|
|
xlim([0.1, 500]);
|
|
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
|
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'southwest');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_asd
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_geophone_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_asd
|
|
#+CAPTION: Comparison of the Amplitude Spectral Sensity
|
|
#+RESULTS: fig:sr_lpf_geophone_asd
|
|
[[file:figs/sr_lpf_geophone_asd.png]]
|
|
|
|
#+begin_src matlab :results none :exports none
|
|
xlim([100, 500]);
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_asd_zoom
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_geophone_asd_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_geophone_asd_zoom
|
|
#+CAPTION: Comparison of the Amplitude Spectral Sensity - Zoom
|
|
#+RESULTS: fig:sr_lpf_geophone_asd_zoom
|
|
[[file:figs/sr_lpf_geophone_asd_zoom.png]]
|
|
|
|
*** Conclusion
|
|
#+begin_important
|
|
- Using the LPF, we don't see any additional noise coming from the slip-ring when it is turned ON
|
|
- However, we should use a smaller value of the capacitor to have a cut-off frequency at $1kHz$
|
|
- We here observe a signal at $50Hz$ and its harmonics
|
|
#+end_important
|
|
|
|
** Measurement of the noise induced by the slip-ring with additional LPF at 1kHz
|
|
*** Measurement description
|
|
**** Setup :ignore:
|
|
*Setup*:
|
|
Voltage amplifier:
|
|
- 60db
|
|
- AC
|
|
- 1kHz
|
|
|
|
Additionnal LPF at 1kHz
|
|
|
|
geophone at the sample location
|
|
slit into 2 BNC:
|
|
- first one (column one): direct wire
|
|
- second one (second column): slip-ring wire
|
|
|
|
Additionnal LPF is added before the voltage amplifiers
|
|
|
|
**** Goal :ignore:
|
|
*Goal*:
|
|
|
|
**** Measurements :ignore:
|
|
*Measurements*:
|
|
|
|
Three measurements are done:
|
|
| Measurement File | Description |
|
|
|--------------------+--------------|
|
|
| =mat/data_035.mat= | All off |
|
|
| =mat/data_036.mat= | Slip-Ring ON |
|
|
|
|
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
|
| Column number | Description |
|
|
|---------------+----------------|
|
|
| 1 | Direct Wire |
|
|
| 2 | Slip-Ring Wire |
|
|
| 3 | Time |
|
|
|
|
*** Load data
|
|
We load the data of the z axis of two geophones.
|
|
#+begin_src matlab :results none
|
|
sr_lpf_1khz_of = load('mat/data_035.mat', 'data'); sr_lpf_1khz_of = sr_lpf_1khz_of.data;
|
|
sr_lpf_1khz_on = load('mat/data_036.mat', 'data'); sr_lpf_1khz_on = sr_lpf_1khz_on.data;
|
|
#+end_src
|
|
|
|
*** Pre-processing
|
|
There is a sign difference between the signal going directly to the ADC and the signal going through the slip-ring. We add a minus sign on the signal going through the slip-ring.
|
|
|
|
We also subtract the mean value as the voltage amplifiers were on the DC option.
|
|
|
|
#+begin_src matlab
|
|
sr_lpf_1khz_of(:, 1) = sr_lpf_1khz_of(:, 1)-mean(sr_lpf_1khz_of(:, 1));
|
|
sr_lpf_1khz_of(:, 2) = -(sr_lpf_1khz_of(:, 2)-mean(sr_lpf_1khz_of(:, 2)));
|
|
|
|
sr_lpf_1khz_on(:, 1) = sr_lpf_1khz_on(:, 1)-mean(sr_lpf_1khz_on(:, 1));
|
|
sr_lpf_1khz_on(:, 2) = -(sr_lpf_1khz_on(:, 2)-mean(sr_lpf_1khz_on(:, 2)));
|
|
#+end_src
|
|
|
|
*** Time Domain
|
|
We compare the signal when the Slip-Ring is OFF (figure [[fig:sr_lpf_1khz_geophone_time_off]]) and when it is ON (figure [[fig:sr_lpf_1khz_geophone_time_on]]).
|
|
|
|
#+begin_src matlab :exports none
|
|
figure;
|
|
subplot(1, 2, 1)
|
|
hold on;
|
|
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1), 'DisplayName', 'Direct');
|
|
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 2), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
xlim([0, 100]); ylim([-1, 1]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
subplot(1, 2, 2)
|
|
hold on;
|
|
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1), 'DisplayName', 'Direct');
|
|
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 2), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
xlim([0, 1]); ylim([-1, 1]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_1khz_geophone_time_off
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_1khz_geophone_time_off.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_1khz_geophone_time_off
|
|
#+CAPTION: Comparison of the time domain signals when the slip-ring is OFF
|
|
#+RESULTS: fig:sr_lpf_1khz_geophone_time_off
|
|
[[file:figs/sr_lpf_1khz_geophone_time_off.png]]
|
|
|
|
#+begin_src matlab :exports none
|
|
figure;
|
|
subplot(1, 2, 1);
|
|
hold on;
|
|
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1), 'DisplayName', 'Direct');
|
|
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 2), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
xlim([0, 100]); ylim([-1, 1]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
subplot(1, 2, 2);
|
|
hold on;
|
|
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1), 'DisplayName', 'Direct');
|
|
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 2), 'DisplayName', 'Slip-Ring');
|
|
hold off;
|
|
xlim([0, 1]); ylim([-1, 1]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_1khz_geophone_time_on
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_1khz_geophone_time_on.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_1khz_geophone_time_on
|
|
#+CAPTION: Comparison of the time domain signals when the slip-ring is ON
|
|
#+RESULTS: fig:sr_lpf_1khz_geophone_time_on
|
|
[[file:figs/sr_lpf_1khz_geophone_time_on.png]]
|
|
|
|
*** Frequency Domain
|
|
We first compute some parameters that will be used for the PSD computation.
|
|
#+begin_src matlab
|
|
dt = sr_lpf_1khz_of(2, 3)-sr_lpf_1khz_of(1, 3);
|
|
|
|
Fs = 1/dt; % [Hz]
|
|
|
|
win = hanning(ceil(10*Fs));
|
|
#+end_src
|
|
|
|
Then we compute the Power Spectral Density using =pwelch= function.
|
|
#+begin_src matlab
|
|
% Direct measure
|
|
[pxdi_lpf_1khz_of, f] = pwelch(sr_lpf_1khz_of(:, 1), win, [], [], Fs);
|
|
[pxdi_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 1), win, [], [], Fs);
|
|
|
|
% Slip-Ring measure
|
|
[pxsr_lpf_1khz_of, ~] = pwelch(sr_lpf_1khz_of(:, 2), win, [], [], Fs);
|
|
[pxsr_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 2), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
Finally, we compare the Amplitude Spectral Density of the signals (figure [[fig:sr_lpf_1khz_geophone_asd]]);
|
|
|
|
#+begin_src matlab
|
|
figure;
|
|
hold on;
|
|
plot(f, sqrt(pxdi_lpf_1khz_of), 'DisplayName', 'Direct - OFF');
|
|
plot(f, sqrt(pxsr_lpf_1khz_of), 'DisplayName', 'Slip-Ring - OFF');
|
|
plot(f, sqrt(pxdi_lpf_1khz_on), 'DisplayName', 'Direct - ON');
|
|
plot(f, sqrt(pxsr_lpf_1khz_on), 'DisplayName', 'Slip-Ring - ON');
|
|
hold off;
|
|
xlim([1, 500]);
|
|
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
|
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'southwest');
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_1khz_geophone_asd
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/sr_lpf_1khz_geophone_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:sr_lpf_1khz_geophone_asd
|
|
#+CAPTION: Comparison of the Amplitude Spectral Sensity
|
|
#+RESULTS: fig:sr_lpf_1khz_geophone_asd
|
|
[[file:figs/sr_lpf_1khz_geophone_asd.png]]
|
|
|
|
*** Difference between the direct signal and the signal going through the slip-ring
|
|
We subtract the signal coming from the direct wire to the signal going through the slip-ring when the slip-ring is ON and when it is OFF (figure [[fig:diff_sr_direct]]).
|
|
|
|
#+begin_src matlab :exports none
|
|
figure;
|
|
subplot(1, 2, 1);
|
|
hold on;
|
|
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1)-sr_lpf_1khz_of(:, 2));
|
|
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1)-sr_lpf_1khz_on(:, 2));
|
|
hold off;
|
|
xlim([0, 100]); ylim([-0.3, 0.3]);
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
|
|
subplot(1, 2, 2);
|
|
hold on;
|
|
plot(sr_lpf_1khz_of(:, 3), sr_lpf_1khz_of(:, 1)-sr_lpf_1khz_of(:, 2), 'DisplayName', 'OFF');
|
|
plot(sr_lpf_1khz_on(:, 3), sr_lpf_1khz_on(:, 1)-sr_lpf_1khz_on(:, 2), 'DisplayName', 'ON');
|
|
hold off;
|
|
xlim([0, 0.1]); ylim([-0.3, 0.3]);
|
|
legend('Location', 'northeast');
|
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
|
#+end_src
|
|
|
|
#+NAME: fig:diff_sr_direct
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/diff_sr_direct.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:diff_sr_direct
|
|
#+CAPTION: Difference between the signal going directly to the ADC and the signal going through the slip-ring before the ADC
|
|
#+RESULTS: fig:diff_sr_direct
|
|
[[file:figs/diff_sr_direct.png]]
|
|
|
|
Then we compute the Power Spectral Density using =pwelch= function (figure [[fig:diff_sr_direct_psd]]).
|
|
#+begin_src matlab
|
|
% Direct measure
|
|
[px_diff_lpf_1khz_of, f] = pwelch(sr_lpf_1khz_of(:, 1)-sr_lpf_1khz_of(:, 2), win, [], [], Fs);
|
|
[px_diff_lpf_1khz_on, ~] = pwelch(sr_lpf_1khz_on(:, 1)-sr_lpf_1khz_on(:, 2), win, [], [], Fs);
|
|
#+end_src
|
|
|
|
#+begin_src matlab :exports none
|
|
figure;
|
|
hold on;
|
|
plot(f, sqrt(px_diff_lpf_1khz_of), 'DisplayName', 'OFF');
|
|
plot(f, sqrt(px_diff_lpf_1khz_on), 'DisplayName', 'ON');
|
|
hold off;
|
|
xlim([1, 500]);
|
|
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
|
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
|
legend('Location', 'southwest');
|
|
#+end_src
|
|
|
|
#+NAME: fig:diff_sr_direct_psd
|
|
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
|
#+begin_src matlab :var filepath="figs/diff_sr_direct_psd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
<<plt-matlab>>
|
|
#+end_src
|
|
|
|
#+NAME: fig:diff_sr_direct_psd
|
|
#+CAPTION: Amplitude Spectral Density of the difference between the signal going directly to the ADC and the signal going through the slip-ring before the ADC
|
|
#+RESULTS: fig:diff_sr_direct_psd
|
|
[[file:figs/diff_sr_direct_psd.png]]
|
|
|
|
*** Conclusion
|
|
#+begin_important
|
|
- Using the LPF, we don't see any additional noise coming from the slip-ring when it is turned ON
|
|
- The signal going through the slip-ring only differs from the direct signal by some 50Hz and its harmonics
|
|
#+end_important
|