[WIP] Breaking Change - Use Update

Folder name is changed, rework the html templates
Change the organisation.
This commit is contained in:
2019-05-10 16:06:43 +02:00
parent 8d8c03773c
commit 6e3677eb29
162 changed files with 3800 additions and 582492 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

972
instrumentation/index.html Normal file
View File

@@ -0,0 +1,972 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-05-10 ven. 10:07 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Measurements on the instrumentation</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
<link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
<script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="../js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<h1 class="title">Measurements on the instrumentation</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org9b0dd42">1. Measure of the noise of the Voltage Amplifier</a>
<ul>
<li><a href="#org494f3b2">1.1. Measurement Description</a></li>
<li><a href="#orgf9402f3">1.2. Load data</a></li>
<li><a href="#orgd0212e2">1.3. Time Domain</a></li>
<li><a href="#org18fa6ce">1.4. Frequency Domain</a></li>
<li><a href="#org36eaef7">1.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org15e4c95">2. Measure of the influence of the AC/DC option on the voltage amplifiers</a>
<ul>
<li><a href="#org313898e">2.1. Measurement Description</a></li>
<li><a href="#org86b59a1">2.2. Load data</a></li>
<li><a href="#org22f801c">2.3. Time Domain</a></li>
<li><a href="#orgbd72638">2.4. Frequency Domain</a></li>
<li><a href="#org2647596">2.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org9623ca1">3. Transfer function of the Low Pass Filter</a>
<ul>
<li><a href="#org921fe36">3.1. First LPF with a Cut-off frequency of 160Hz</a>
<ul>
<li><a href="#org122c7a6">3.1.1. Measurement Description</a></li>
<li><a href="#orgba94437">3.1.2. Load data</a></li>
<li><a href="#org087582c">3.1.3. Transfer function of the LPF</a></li>
<li><a href="#orgf2dc541">3.1.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgd6132bd">3.2. Second LPF with a Cut-off frequency of 1000Hz</a>
<ul>
<li><a href="#org76b4e0d">3.2.1. Measurement description</a></li>
<li><a href="#org2941697">3.2.2. Load data</a></li>
<li><a href="#org45462d2">3.2.3. Transfer function of the LPF</a></li>
<li><a href="#org438a172">3.2.4. Conclusion</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org9b0dd42" class="outline-2">
<h2 id="org9b0dd42"><span class="section-number-2">1</span> Measure of the noise of the Voltage Amplifier</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="orgbd691e3"></a>
</p>
<p>
The data and matlab files are accessible <a href="data/meas_volt_amp.zip">here</a>.
</p>
</div>
<div id="outline-container-org494f3b2" class="outline-3">
<h3 id="org494f3b2"><span class="section-number-3">1.1</span> Measurement Description</h3>
<div class="outline-text-3" id="text-1-1">
<p>
<b>Goal</b>:
</p>
<ul class="org-ul">
<li>Determine the Voltage Amplifier noise</li>
</ul>
<p>
<b>Setup</b>:
</p>
<ul class="org-ul">
<li>The two inputs (differential) of the voltage amplifier are shunted with 50Ohms</li>
<li>The AC/DC option of the Voltage amplifier is on AC</li>
<li>The low pass filter is set to 1hHz</li>
<li>We measure the output of the voltage amplifier with a 16bits ADC of the Speedgoat</li>
</ul>
<p>
<b>Measurements</b>:
</p>
<ul class="org-ul">
<li><code>data_003</code>: Ampli OFF</li>
<li><code>data_004</code>: Ampli ON set to 20dB</li>
<li><code>data_005</code>: Ampli ON set to 40dB</li>
<li><code>data_006</code>: Ampli ON set to 60dB</li>
</ul>
</div>
</div>
<div id="outline-container-orgf9402f3" class="outline-3">
<h3 id="orgf9402f3"><span class="section-number-3">1.2</span> Load data</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-matlab">amp_off = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_003.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_off = amp_off.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
amp_20d = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_004.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_20d = amp_20d.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
amp_40d = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_005.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_40d = amp_40d.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
amp_60d = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_006.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; amp_60d = amp_60d.data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd0212e2" class="outline-3">
<h3 id="orgd0212e2"><span class="section-number-3">1.3</span> Time Domain</h3>
<div class="outline-text-3" id="text-1-3">
<p>
The time domain signals are shown on figure <a href="#org98f097d">1</a>.
</p>
<div id="org98f097d" class="figure">
<p><img src="figs/ampli_noise_time.png" alt="ampli_noise_time.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Output of the amplifier</p>
</div>
</div>
</div>
<div id="outline-container-org18fa6ce" class="outline-3">
<h3 id="org18fa6ce"><span class="section-number-3">1.4</span> Frequency Domain</h3>
<div class="outline-text-3" id="text-1-4">
<p>
We first compute some parameters that will be used for the PSD computation.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = amp_off<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>amp_off<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
Then we compute the Power Spectral Density using <code>pwelch</code> function.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxoff, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_off<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>px20d, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_20d<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>px40d, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_40d<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>px60d, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>amp_60d<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
We compute the theoretical ADC noise.
</p>
<div class="org-src-container">
<pre class="src src-matlab">q = <span class="org-highlight-numbers-number">20</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">^</span><span class="org-highlight-numbers-number">16</span>; <span class="org-comment">% quantization</span>
Sq = q<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-highlight-numbers-number">12</span><span class="org-type">/</span><span class="org-highlight-numbers-number">1000</span>; <span class="org-comment">% PSD of the ADC noise</span>
</pre>
</div>
<p>
Finally, the ASD is shown on figure <a href="#orga4734ea">2</a>.
</p>
<div id="orga4734ea" class="figure">
<p><img src="figs/ampli_noise_psd.png" alt="ampli_noise_psd.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Amplitude Spectral Density of the measured voltage at the output of the voltage amplifier</p>
</div>
</div>
</div>
<div id="outline-container-org36eaef7" class="outline-3">
<h3 id="org36eaef7"><span class="section-number-3">1.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-5">
<div class="important">
<p>
<b>Questions</b>:
</p>
<ul class="org-ul">
<li>Where does those sharp peaks comes from? Can this be due to aliasing?</li>
</ul>
<p>
Noise induced by the voltage amplifiers seems not to be a limiting factor as we have the same noise when they are OFF and ON.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org15e4c95" class="outline-2">
<h2 id="org15e4c95"><span class="section-number-2">2</span> Measure of the influence of the AC/DC option on the voltage amplifiers</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org1e85a61"></a>
</p>
<p>
The data and matlab files are accessible <a href="data/meas_noise_ac_dc.zip">here</a>.
</p>
</div>
<div id="outline-container-org313898e" class="outline-3">
<h3 id="org313898e"><span class="section-number-3">2.1</span> Measurement Description</h3>
<div class="outline-text-3" id="text-2-1">
<p>
<b>Goal</b>:
</p>
<ul class="org-ul">
<li>Measure the influence of the high-pass filter option of the voltage amplifiers</li>
</ul>
<p>
<b>Setup</b>:
</p>
<ul class="org-ul">
<li>One geophone is located on the marble.</li>
<li>It's signal goes to two voltage amplifiers with a gain of 60dB.</li>
<li>One voltage amplifier is on the AC option, the other is on the DC option.</li>
</ul>
<p>
<b>Measurements</b>:
First measurement (<code>mat/data_014.mat</code> file):
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Column</th>
<th scope="col" class="org-left">Signal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-left">Amplifier 1 with AC option</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-left">Amplifier 2 with DC option</td>
</tr>
<tr>
<td class="org-right">3</td>
<td class="org-left">Time</td>
</tr>
</tbody>
</table>
<p>
Second measurement (<code>mat/data_015.mat</code> file):
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Column</th>
<th scope="col" class="org-left">Signal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-left">Amplifier 1 with DC option</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-left">Amplifier 2 with AC option</td>
</tr>
<tr>
<td class="org-right">3</td>
<td class="org-left">Time</td>
</tr>
</tbody>
</table>
<div id="org6faa1f8" class="figure">
<p><img src="./img/IMG_20190503_170936.jpg" alt="IMG_20190503_170936.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 3: </span>Picture of the two voltages amplifiers</p>
</div>
</div>
</div>
<div id="outline-container-org86b59a1" class="outline-3">
<h3 id="org86b59a1"><span class="section-number-3">2.2</span> Load data</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We load the data of the z axis of two geophones.
</p>
<div class="org-src-container">
<pre class="src src-matlab">meas14 = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_014.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; meas14 = meas14.data;
meas15 = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_015.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; meas15 = meas15.data;
</pre>
</div>
</div>
</div>
<div id="outline-container-org22f801c" class="outline-3">
<h3 id="org22f801c"><span class="section-number-3">2.3</span> Time Domain</h3>
<div class="outline-text-3" id="text-2-3">
<p>
The signals are shown on figure <a href="#org4a464f5">4</a>.
</p>
<div id="org4a464f5" class="figure">
<p><img src="figs/ac_dc_option_time.png" alt="ac_dc_option_time.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Comparison of the signals going through the Voltage amplifiers</p>
</div>
</div>
</div>
<div id="outline-container-orgbd72638" class="outline-3">
<h3 id="orgbd72638"><span class="section-number-3">2.4</span> Frequency Domain</h3>
<div class="outline-text-3" id="text-2-4">
<p>
We first compute some parameters that will be used for the PSD computation.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = meas14<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>meas14<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
Then we compute the Power Spectral Density using <code>pwelch</code> function.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxamp1ac, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas14<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>pxamp2dc, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas14<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>pxamp1dc, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas15<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-rainbow-delimiters-depth-1">[</span>pxamp2ac, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>meas15<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
The ASD of the signals are compare on figure <a href="#org73d3360">5</a>.
</p>
<div id="org73d3360" class="figure">
<p><img src="figs/ac_dc_option_asd.png" alt="ac_dc_option_asd.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the measured signals</p>
</div>
</div>
</div>
<div id="outline-container-org2647596" class="outline-3">
<h3 id="org2647596"><span class="section-number-3">2.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-5">
<div class="important">
<ul class="org-ul">
<li>The voltage amplifiers include some very sharp high pass filters at 1.5Hz (maybe 4th order)</li>
<li>There is a DC offset on the time domain signal because the DC-offset knob was not set to zero</li>
</ul>
</div>
</div>
</div>
</div>
<div id="outline-container-org9623ca1" class="outline-2">
<h2 id="org9623ca1"><span class="section-number-2">3</span> Transfer function of the Low Pass Filter</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org5eb1733"></a>
</p>
<p>
The computation files for this section are accessible <a href="data/low_pass_filter_measurements.zip">here</a>.
</p>
</div>
<div id="outline-container-org921fe36" class="outline-3">
<h3 id="org921fe36"><span class="section-number-3">3.1</span> First LPF with a Cut-off frequency of 160Hz</h3>
<div class="outline-text-3" id="text-3-1">
</div>
<div id="outline-container-org122c7a6" class="outline-4">
<h4 id="org122c7a6"><span class="section-number-4">3.1.1</span> Measurement Description</h4>
<div class="outline-text-4" id="text-3-1-1">
<p>
<b>Goal</b>:
</p>
<ul class="org-ul">
<li>Measure the Low Pass Filter Transfer Function</li>
</ul>
<p>
The values of the components are:
</p>
\begin{aligned}
R &= 1k\Omega \\
C &= 1\mu F
\end{aligned}
<p>
Which makes a cut-off frequency of \(f_c = \frac{1}{RC} = 1000 rad/s = 160Hz\).
</p>
<div class="org-src-container">
<pre class="src src-latex" id="org336f6c8"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\draw</span> (0,2)
to [R=<span class="org-font-latex-sedate"><span class="org-font-latex-math">\(R\)</span></span>] ++(2,0) node[circ]
to ++(2,0)
++(-2,0)
to [C=<span class="org-font-latex-sedate"><span class="org-font-latex-math">\(C\)</span></span>] ++(0,-2) node[circ]
++(-2,0)
to ++(2,0)
to ++(2,0)
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgda67620" class="figure">
<p><img src="figs/lpf.png" alt="lpf.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Schematic of the Low Pass Filter used</p>
</div>
<p>
<b>Setup</b>:
</p>
<ul class="org-ul">
<li>We are measuring the signal from from Geophone with a BNC T</li>
<li>On part goes to column 1 through the LPF</li>
<li>The other part goes to column 2 without the LPF</li>
</ul>
<p>
<b>Measurements</b>:
<code>mat/data_018.mat</code>:
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Column</th>
<th scope="col" class="org-left">Signal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-left">Amplifier 1 with LPF</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-left">Amplifier 2</td>
</tr>
<tr>
<td class="org-right">3</td>
<td class="org-left">Time</td>
</tr>
</tbody>
</table>
<div id="org5022f0b" class="figure">
<p><img src="./img/IMG_20190507_102756.jpg" alt="IMG_20190507_102756.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 7: </span>Picture of the low pass filter used</p>
</div>
</div>
</div>
<div id="outline-container-orgba94437" class="outline-4">
<h4 id="orgba94437"><span class="section-number-4">3.1.2</span> Load data</h4>
<div class="outline-text-4" id="text-3-1-2">
<p>
We load the data of the z axis of two geophones.
</p>
<div class="org-src-container">
<pre class="src src-matlab">data = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_018.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; data = data.data;
</pre>
</div>
</div>
</div>
<div id="outline-container-org087582c" class="outline-4">
<h4 id="org087582c"><span class="section-number-4">3.1.3</span> Transfer function of the LPF</h4>
<div class="outline-text-4" id="text-3-1-3">
<p>
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>Glpf, f<span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of \(1000rad/s\).
We obtain the result on figure <a href="#orgeb8ea3c">8</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Gth = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">+</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
ax1 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>Glpf<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,<span class="org-rainbow-delimiters-depth-2">[]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Magnitude'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ax2 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>Glpf<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>unwrap<span class="org-rainbow-delimiters-depth-2">(</span>angle<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>freqresp<span class="org-rainbow-delimiters-depth-5">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
yticks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Phase'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
linkaxes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>ax1,ax2<span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-string">'x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="orgeb8ea3c" class="figure">
<p><img src="figs/Glpf_bode.png" alt="Glpf_bode.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Bode Diagram of the measured Low Pass filter and the theoritical one</p>
</div>
</div>
</div>
<div id="outline-container-orgf2dc541" class="outline-4">
<h4 id="orgf2dc541"><span class="section-number-4">3.1.4</span> Conclusion</h4>
<div class="outline-text-4" id="text-3-1-4">
<div class="important">
<p>
As we want to measure things up to \(500Hz\), we chose to change the value of the capacitor to obtain a cut-off frequency of \(1kHz\).
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgd6132bd" class="outline-3">
<h3 id="orgd6132bd"><span class="section-number-3">3.2</span> Second LPF with a Cut-off frequency of 1000Hz</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org76b4e0d" class="outline-4">
<h4 id="org76b4e0d"><span class="section-number-4">3.2.1</span> Measurement description</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
This time, the value are
</p>
\begin{aligned}
R &= 1k\Omega \\
C &= 150nF
\end{aligned}
<p>
Which makes a low pass filter with a cut-off frequency of \(f_c = 1060Hz\).
</p>
</div>
</div>
<div id="outline-container-org2941697" class="outline-4">
<h4 id="org2941697"><span class="section-number-4">3.2.2</span> Load data</h4>
<div class="outline-text-4" id="text-3-2-2">
<p>
We load the data of the z axis of two geophones.
</p>
<div class="org-src-container">
<pre class="src src-matlab">data = load<span class="org-rainbow-delimiters-depth-1">(</span>'mat<span class="org-type">/</span>data_019.mat', <span class="org-string">'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; data = data.data;
</pre>
</div>
</div>
</div>
<div id="outline-container-org45462d2" class="outline-4">
<h4 id="org45462d2"><span class="section-number-4">3.2.3</span> Transfer function of the LPF</h4>
<div class="outline-text-4" id="text-3-2-3">
<p>
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
</p>
<div class="org-src-container">
<pre class="src src-matlab">dt = data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>Glpf, f<span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<p>
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of \(1060Hz\).
We obtain the result on figure <a href="#org19f2e2d">9</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Gth = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">+</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">1060</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
ax1 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>Glpf<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,<span class="org-rainbow-delimiters-depth-2">[]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Magnitude'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ax2 = subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>Glpf<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>unwrap<span class="org-rainbow-delimiters-depth-2">(</span>angle<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>freqresp<span class="org-rainbow-delimiters-depth-5">(</span>Gth, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
yticks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Phase'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
linkaxes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>ax1,ax2<span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-string">'x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="org19f2e2d" class="figure">
<p><img src="figs/Glpf_bode_bis.png" alt="Glpf_bode_bis.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Bode Diagram of the measured Low Pass filter and the theoritical one</p>
</div>
</div>
</div>
<div id="outline-container-org438a172" class="outline-4">
<h4 id="org438a172"><span class="section-number-4">3.2.4</span> Conclusion</h4>
<div class="outline-text-4" id="text-3-2-4">
<div class="important">
<p>
The added LPF has the expected behavior.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-05-10 ven. 10:07</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

510
instrumentation/index.org Normal file
View File

@@ -0,0 +1,510 @@
#+TITLE: Measurements on the instrumentation
#+SETUPFILE: ../config.org
* Measure of the noise of the Voltage Amplifier
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_volt_amp.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_volt_amp>>
#+begin_src bash :exports none :results none
if [ meas_volt_amp.m -nt data/meas_volt_amp.zip ]; then
zip data/meas_volt_amp \
mat/data_003.mat \
mat/data_004.mat \
mat/data_005.mat \
mat/data_006.mat \
meas_volt_amp.m
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_volt_amp.zip][here]].
#+end_note
** Measurement Description
*Goal*:
- Determine the Voltage Amplifier noise
*Setup*:
- The two inputs (differential) of the voltage amplifier are shunted with 50Ohms
- The AC/DC option of the Voltage amplifier is on AC
- The low pass filter is set to 1hHz
- We measure the output of the voltage amplifier with a 16bits ADC of the Speedgoat
*Measurements*:
- =data_003=: Ampli OFF
- =data_004=: Ampli ON set to 20dB
- =data_005=: Ampli ON set to 40dB
- =data_006=: Ampli ON set to 60dB
** 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
#+begin_src matlab :results none
amp_off = load('mat/data_003.mat', 'data'); amp_off = amp_off.data(:, [1,3]);
amp_20d = load('mat/data_004.mat', 'data'); amp_20d = amp_20d.data(:, [1,3]);
amp_40d = load('mat/data_005.mat', 'data'); amp_40d = amp_40d.data(:, [1,3]);
amp_60d = load('mat/data_006.mat', 'data'); amp_60d = amp_60d.data(:, [1,3]);
#+end_src
** Time Domain
The time domain signals are shown on figure [[fig:ampli_noise_time]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(amp_off(:, 2), amp_off(:, 1), 'DisplayName', 'OFF');
plot(amp_20d(:, 2), amp_20d(:, 1), 'DisplayName', '20dB');
plot(amp_40d(:, 2), amp_40d(:, 1), 'DisplayName', '40dB');
plot(amp_60d(:, 2), amp_60d(:, 1), 'DisplayName', '60dB');
hold off;
legend('Location', 'northeast');
xlabel('Time [s]');
ylabel('Voltage [V]');
#+end_src
#+NAME: fig:ampli_noise_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ampli_noise_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ampli_noise_time
#+CAPTION: Output of the amplifier
#+RESULTS: fig:ampli_noise_time
[[file:figs/ampli_noise_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = amp_off(2, 2)-amp_off(1, 2);
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
[pxoff, f] = pwelch(amp_off(:,1), win, [], [], Fs);
[px20d, ~] = pwelch(amp_20d(:,1), win, [], [], Fs);
[px40d, ~] = pwelch(amp_40d(:,1), win, [], [], Fs);
[px60d, ~] = pwelch(amp_60d(:,1), win, [], [], Fs);
#+end_src
We compute the theoretical ADC noise.
#+begin_src matlab :results none
q = 20/2^16; % quantization
Sq = q^2/12/1000; % PSD of the ADC noise
#+end_src
Finally, the ASD is shown on figure [[fig:ampli_noise_psd]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxoff), 'DisplayName', 'OFF');
plot(f, sqrt(px20d), 'DisplayName', '20dB');
plot(f, sqrt(px40d), 'DisplayName', '40dB');
plot(f, sqrt(px60d), 'DisplayName', '60dB');
plot([0.1, 500], [sqrt(Sq), sqrt(Sq)], 'k--');
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:ampli_noise_psd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ampli_noise_psd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ampli_noise_psd
#+CAPTION: Amplitude Spectral Density of the measured voltage at the output of the voltage amplifier
#+RESULTS: fig:ampli_noise_psd
[[file:figs/ampli_noise_psd.png]]
** Conclusion
#+begin_important
*Questions*:
- Where does those sharp peaks comes from? Can this be due to aliasing?
Noise induced by the voltage amplifiers seems not to be a limiting factor as we have the same noise when they are OFF and ON.
#+end_important
* Measure of the influence of the AC/DC option on the voltage amplifiers
:PROPERTIES:
:header-args:matlab+: :tangle matlab/meas_noise_ac_dc.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:meas_noise_ac_dc>>
#+begin_src bash :exports none :results none
if [ meas_noise_ac_dc.m -nt data/meas_noise_ac_dc.zip ]; then
zip data/meas_noise_ac_dc \
mat/data_012.mat \
mat/data_013.mat \
meas_noise_ac_dc.m
fi
#+end_src
#+begin_note
All the files (data and Matlab scripts) are accessible [[file:data/meas_noise_ac_dc.zip][here]].
#+end_note
** Measurement Description
*Goal*:
- Measure the influence of the high-pass filter option of the voltage amplifiers
*Setup*:
- One geophone is located on the marble.
- It's signal goes to two voltage amplifiers with a gain of 60dB.
- One voltage amplifier is on the AC option, the other is on the DC option.
*Measurements*:
First measurement (=mat/data_014.mat= file):
| Column | Signal |
|--------+----------------------------|
| 1 | Amplifier 1 with AC option |
| 2 | Amplifier 2 with DC option |
| 3 | Time |
Second measurement (=mat/data_015.mat= file):
| Column | Signal |
|--------+----------------------------|
| 1 | Amplifier 1 with DC option |
| 2 | Amplifier 2 with AC option |
| 3 | Time |
#+name: fig:volt_amp_setup
#+caption: Picture of the two voltages amplifiers
#+attr_html: :width 500px
[[file:./img/IMG_20190503_170936.jpg]]
** 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
meas14 = load('mat/data_014.mat', 'data'); meas14 = meas14.data;
meas15 = load('mat/data_015.mat', 'data'); meas15 = meas15.data;
#+end_src
** Time Domain
The signals are shown on figure [[fig:ac_dc_option_time]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(meas14(:, 3), meas14(:, 1), 'DisplayName', 'Amp1 - AC');
plot(meas14(:, 3), meas14(:, 2), 'DisplayName', 'Amp2 - DC');
plot(meas15(:, 3), meas15(:, 1), 'DisplayName', 'Amp1 - DC');
plot(meas15(:, 3), meas15(:, 2), 'DisplayName', 'Amp2 - AC');
hold off;
legend('Location', 'bestoutside');
xlabel('Time [s]');
ylabel('Voltage [V]');
xlim([0, 100]);
#+end_src
#+NAME: fig:ac_dc_option_time
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ac_dc_option_time.pdf" :var figsize="full-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ac_dc_option_time
#+CAPTION: Comparison of the signals going through the Voltage amplifiers
#+RESULTS: fig:ac_dc_option_time
[[file:figs/ac_dc_option_time.png]]
** Frequency Domain
We first compute some parameters that will be used for the PSD computation.
#+begin_src matlab :results none
dt = meas14(2, 3)-meas14(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
[pxamp1ac, f] = pwelch(meas14(:, 1), win, [], [], Fs);
[pxamp2dc, ~] = pwelch(meas14(:, 2), win, [], [], Fs);
[pxamp1dc, ~] = pwelch(meas15(:, 1), win, [], [], Fs);
[pxamp2ac, ~] = pwelch(meas15(:, 2), win, [], [], Fs);
#+end_src
The ASD of the signals are compare on figure [[fig:ac_dc_option_asd]].
#+begin_src matlab :results none :exports none
figure;
hold on;
plot(f, sqrt(pxamp1ac), 'DisplayName', 'Amp1 - AC');
plot(f, sqrt(pxamp2dc), 'DisplayName', 'Amp2 - DC');
plot(f, sqrt(pxamp1dc), 'DisplayName', 'Amp1 - DC');
plot(f, sqrt(pxamp2ac), 'DisplayName', 'Amp2 - AC');
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:ac_dc_option_asd
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/ac_dc_option_asd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:ac_dc_option_asd
#+CAPTION: Amplitude Spectral Density of the measured signals
#+RESULTS: fig:ac_dc_option_asd
[[file:figs/ac_dc_option_asd.png]]
** Conclusion
#+begin_important
- The voltage amplifiers include some very sharp high pass filters at 1.5Hz (maybe 4th order)
- There is a DC offset on the time domain signal because the DC-offset knob was not set to zero
#+end_important
* Transfer function of the Low Pass Filter
:PROPERTIES:
:header-args:matlab+: :tangle matlab/low_pass_filter_measurements.m
:header-args:matlab+: :comments org :mkdirp yes
:END:
<<sec:low_pass_filter_measurements>>
#+begin_src bash :exports none :results none
if [ low_pass_filter_measurements.m -nt data/low_pass_filter_measurements.zip ]; then
zip data/low_pass_filter_measurements \
mat/data_018.mat \
mat/data_019.mat \
low_pass_filter_measurements.m
fi
#+end_src
The computation files for this section are accessible [[file:data/low_pass_filter_measurements.zip][here]].
** First LPF with a Cut-off frequency of 160Hz
*** Measurement Description
*Goal*:
- Measure the Low Pass Filter Transfer Function
The values of the components are:
\begin{aligned}
R &= 1k\Omega \\
C &= 1\mu F
\end{aligned}
Which makes a cut-off frequency of $f_c = \frac{1}{RC} = 1000 rad/s = 160Hz$.
#+NAME: fig:lpf
#+HEADER: :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/MEGA/These/LaTeX/}{config.tex}")
#+HEADER: :imagemagick t :fit yes :iminoptions -scale 100% -density 150 :imoutoptions -quality 100
#+HEADER: :results raw replace :buffer no :eval no-export :exports both :mkdirp yes
#+HEADER: :output-dir figs
#+begin_src latex :file lpf.pdf :post pdf2svg(file=*this*, ext="png") :exports both
\begin{tikzpicture}
\draw (0,2)
to [R=\(R\)] ++(2,0) node[circ]
to ++(2,0)
++(-2,0)
to [C=\(C\)] ++(0,-2) node[circ]
++(-2,0)
to ++(2,0)
to ++(2,0)
\end{tikzpicture}
#+end_src
#+NAME: fig:lpf
#+CAPTION: Schematic of the Low Pass Filter used
#+RESULTS: fig:lpf
[[file:figs/lpf.png]]
*Setup*:
- We are measuring the signal from from Geophone with a BNC T
- On part goes to column 1 through the LPF
- The other part goes to column 2 without the LPF
*Measurements*:
=mat/data_018.mat=:
| Column | Signal |
|--------+----------------------|
| 1 | Amplifier 1 with LPF |
| 2 | Amplifier 2 |
| 3 | Time |
#+name: fig:lpf_picture
#+caption: Picture of the low pass filter used
#+attr_html: :width 500px
[[file:./img/IMG_20190507_102756.jpg]]
*** 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
data = load('mat/data_018.mat', 'data'); data = data.data;
#+end_src
*** Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
#+begin_src matlab :results none
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
#+begin_src matlab :results none
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
#+end_src
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1000rad/s$.
We obtain the result on figure [[fig:Glpf_bode]].
#+begin_src matlab :results none
Gth = 1/(1+s/1000)
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude');
ax2 = subplot(2, 1, 2);
hold on;
plot(f, mod(180+180/pi*phase(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
hold off;
set(gca, 'xscale', 'log');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase');
linkaxes([ax1,ax2],'x');
xlim([1, 500]);
#+end_src
#+NAME: fig:Glpf_bode
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/Glpf_bode.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:Glpf_bode
#+CAPTION: Bode Diagram of the measured Low Pass filter and the theoritical one
#+RESULTS: fig:Glpf_bode
[[file:figs/Glpf_bode.png]]
*** Conclusion
#+begin_important
As we want to measure things up to $500Hz$, we chose to change the value of the capacitor to obtain a cut-off frequency of $1kHz$.
#+end_important
** Second LPF with a Cut-off frequency of 1000Hz
*** Measurement description
This time, the value are
\begin{aligned}
R &= 1k\Omega \\
C &= 150nF
\end{aligned}
Which makes a low pass filter with a cut-off frequency of $f_c = 1060Hz$.
*** Load data
We load the data of the z axis of two geophones.
#+begin_src matlab :results none
data = load('mat/data_019.mat', 'data'); data = data.data;
#+end_src
*** Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
#+begin_src matlab :results none
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
#+end_src
#+begin_src matlab :results none
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
#+end_src
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1060Hz$.
We obtain the result on figure [[fig:Glpf_bode_bis]].
#+begin_src matlab :results none
Gth = 1/(1+s/1060/2/pi);
#+end_src
#+begin_src matlab :results none
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude');
ax2 = subplot(2, 1, 2);
hold on;
plot(f, mod(180+180/pi*phase(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
hold off;
set(gca, 'xscale', 'log');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase');
linkaxes([ax1,ax2],'x');
xlim([1, 500]);
#+end_src
#+NAME: fig:Glpf_bode_bis
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
#+begin_src matlab :var filepath="figs/Glpf_bode_bis.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:Glpf_bode_bis
#+CAPTION: Bode Diagram of the measured Low Pass filter and the theoritical one
#+RESULTS: fig:Glpf_bode_bis
[[file:figs/Glpf_bode_bis.png]]
*** Conclusion
#+begin_important
The added LPF has the expected behavior.
#+end_important

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.