[WIP] Breaking Change - Use Update
Folder name is changed, rework the html templates Change the organisation.
BIN
instrumentation/figs/Glpf_bode.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
instrumentation/figs/Glpf_bode_bis.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
instrumentation/figs/ac_dc_option_asd.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
instrumentation/figs/ac_dc_option_asd_zoom.png
Normal file
After Width: | Height: | Size: 172 KiB |
BIN
instrumentation/figs/ac_dc_option_time.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
instrumentation/figs/ampli_noise_psd.png
Normal file
After Width: | Height: | Size: 144 KiB |
BIN
instrumentation/figs/ampli_noise_time.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
instrumentation/figs/lpf.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
instrumentation/img/IMG_20190503_170936.jpg
Normal file
After Width: | Height: | Size: 4.5 MiB |
BIN
instrumentation/img/IMG_20190507_102756.jpg
Normal file
After Width: | Height: | Size: 3.1 MiB |
972
instrumentation/index.html
Normal 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
@@ -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
|