Use online CSS and JS
This commit is contained in:
parent
14b54fb912
commit
9c1d16e11a
@ -1,49 +0,0 @@
|
|||||||
.figure p{
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.figure img{
|
|
||||||
max-width:100%;
|
|
||||||
display: block;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.org-src-container > pre.src:before {
|
|
||||||
display: inline;
|
|
||||||
position: absolute;
|
|
||||||
color: #808080;
|
|
||||||
background-color: white;
|
|
||||||
top: -10px;
|
|
||||||
left: 10px;
|
|
||||||
padding: 0px 4px;
|
|
||||||
border: 1px solid #d0d0d0;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.org-src-container > pre {
|
|
||||||
margin-top: 1.5em;
|
|
||||||
position: relative;
|
|
||||||
overflow: visible;
|
|
||||||
}
|
|
||||||
.org-src-container > pre > code.src:before {
|
|
||||||
display: inline;
|
|
||||||
position: absolute;
|
|
||||||
color: #808080;
|
|
||||||
background-color: white;
|
|
||||||
top: -10px;
|
|
||||||
left: 10px;
|
|
||||||
padding: 0px 4px;
|
|
||||||
border: 1px solid #d0d0d0;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
.org-src-container > pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
|
|
||||||
.org-src-container > pre.src-elisp:before { content: 'Emacs Lisp'; }
|
|
||||||
.org-src-container > pre.src-sh:before { content: 'shell'; }
|
|
||||||
.org-src-container > pre.src-bash:before { content: 'bash'; }
|
|
||||||
.org-src-container > pre.src-org:before { content: 'Org mode'; }
|
|
||||||
.org-src-container > pre.src-python:before { content: 'Python'; }
|
|
||||||
.org-src-container > pre.src-matlab:before { content: 'Matlab'; }
|
|
145
css/htmlize.css
145
css/htmlize.css
@ -1,145 +0,0 @@
|
|||||||
.org-bold { /* bold */ font-weight: bold; }
|
|
||||||
.org-bold-italic { /* bold-italic */ font-weight: bold; font-style: italic; }
|
|
||||||
.org-buffer-menu-buffer { /* buffer-menu-buffer */ font-weight: bold; }
|
|
||||||
.org-builtin { /* font-lock-builtin-face */ color: #7a378b; }
|
|
||||||
.org-button { /* button */ text-decoration: underline; }
|
|
||||||
.org-calendar-today { /* calendar-today */ text-decoration: underline; }
|
|
||||||
.org-change-log-acknowledgement { /* change-log-acknowledgement */ color: #b22222; }
|
|
||||||
.org-change-log-conditionals { /* change-log-conditionals */ color: #a0522d; }
|
|
||||||
.org-change-log-date { /* change-log-date */ color: #8b2252; }
|
|
||||||
.org-change-log-email { /* change-log-email */ color: #a0522d; }
|
|
||||||
.org-change-log-file { /* change-log-file */ color: #0000ff; }
|
|
||||||
.org-change-log-function { /* change-log-function */ color: #a0522d; }
|
|
||||||
.org-change-log-list { /* change-log-list */ color: #a020f0; }
|
|
||||||
.org-change-log-name { /* change-log-name */ color: #008b8b; }
|
|
||||||
.org-comint-highlight-input { /* comint-highlight-input */ font-weight: bold; }
|
|
||||||
.org-comint-highlight-prompt { /* comint-highlight-prompt */ color: #00008b; }
|
|
||||||
.org-comment { /* font-lock-comment-face */ color: #999988; font-style: italic; }
|
|
||||||
.org-comment-delimiter { /* font-lock-comment-delimiter-face */ color: #999988; font-style: italic; }
|
|
||||||
.org-completions-annotations { /* completions-annotations */ font-style: italic; }
|
|
||||||
.org-completions-common-part { /* completions-common-part */ color: #000000; background-color: #ffffff; }
|
|
||||||
.org-completions-first-difference { /* completions-first-difference */ font-weight: bold; }
|
|
||||||
.org-constant { /* font-lock-constant-face */ color: #008b8b; }
|
|
||||||
.org-diary { /* diary */ color: #ff0000; }
|
|
||||||
.org-diff-context { /* diff-context */ color: #7f7f7f; }
|
|
||||||
.org-diff-file-header { /* diff-file-header */ background-color: #b3b3b3; font-weight: bold; }
|
|
||||||
.org-diff-function { /* diff-function */ background-color: #cccccc; }
|
|
||||||
.org-diff-header { /* diff-header */ background-color: #cccccc; }
|
|
||||||
.org-diff-hunk-header { /* diff-hunk-header */ background-color: #cccccc; }
|
|
||||||
.org-diff-index { /* diff-index */ background-color: #b3b3b3; font-weight: bold; }
|
|
||||||
.org-diff-nonexistent { /* diff-nonexistent */ background-color: #b3b3b3; font-weight: bold; }
|
|
||||||
.org-diff-refine-change { /* diff-refine-change */ background-color: #d9d9d9; }
|
|
||||||
.org-dired-directory { /* dired-directory */ color: #0000ff; }
|
|
||||||
.org-dired-flagged { /* dired-flagged */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-dired-header { /* dired-header */ color: #228b22; }
|
|
||||||
.org-dired-ignored { /* dired-ignored */ color: #7f7f7f; }
|
|
||||||
.org-dired-mark { /* dired-mark */ color: #008b8b; }
|
|
||||||
.org-dired-marked { /* dired-marked */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-dired-perm-write { /* dired-perm-write */ color: #b22222; }
|
|
||||||
.org-dired-symlink { /* dired-symlink */ color: #a020f0; }
|
|
||||||
.org-dired-warning { /* dired-warning */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-doc { /* font-lock-doc-face */ color: #8b2252; }
|
|
||||||
.org-escape-glyph { /* escape-glyph */ color: #a52a2a; }
|
|
||||||
.org-file-name-shadow { /* file-name-shadow */ color: #7f7f7f; }
|
|
||||||
.org-flyspell-duplicate { /* flyspell-duplicate */ color: #cdad00; font-weight: bold; text-decoration: underline; }
|
|
||||||
.org-flyspell-incorrect { /* flyspell-incorrect */ color: #ff4500; font-weight: bold; text-decoration: underline; }
|
|
||||||
.org-fringe { /* fringe */ background-color: #f2f2f2; }
|
|
||||||
.org-function-name { /* font-lock-function-name-face */ color: teal; }
|
|
||||||
.org-header-line { /* header-line */ color: #333333; background-color: #e5e5e5; }
|
|
||||||
.org-help-argument-name { /* help-argument-name */ font-style: italic; }
|
|
||||||
.org-highlight { /* highlight */ background-color: #b4eeb4; }
|
|
||||||
.org-holiday { /* holiday */ background-color: #ffc0cb; }
|
|
||||||
.org-isearch { /* isearch */ color: #b0e2ff; background-color: #cd00cd; }
|
|
||||||
.org-isearch-fail { /* isearch-fail */ background-color: #ffc1c1; }
|
|
||||||
.org-italic { /* italic */ font-style: italic; }
|
|
||||||
.org-keyword { /* font-lock-keyword-face */ color: #0086b3; }
|
|
||||||
.org-lazy-highlight { /* lazy-highlight */ background-color: #afeeee; }
|
|
||||||
.org-link { /* link */ color: #0000ff; text-decoration: underline; }
|
|
||||||
.org-link-visited { /* link-visited */ color: #8b008b; text-decoration: underline; }
|
|
||||||
.org-log-edit-header { /* log-edit-header */ color: #a020f0; }
|
|
||||||
.org-log-edit-summary { /* log-edit-summary */ color: #0000ff; }
|
|
||||||
.org-log-edit-unknown-header { /* log-edit-unknown-header */ color: #b22222; }
|
|
||||||
.org-match { /* match */ background-color: #ffff00; }
|
|
||||||
.org-next-error { /* next-error */ background-color: #eedc82; }
|
|
||||||
.org-nobreak-space { /* nobreak-space */ color: #a52a2a; text-decoration: underline; }
|
|
||||||
.org-org-archived { /* org-archived */ color: #7f7f7f; }
|
|
||||||
.org-org-block { /* org-block */ color: #7f7f7f; }
|
|
||||||
.org-org-block-begin-line { /* org-block-begin-line */ color: #b22222; }
|
|
||||||
.org-org-block-end-line { /* org-block-end-line */ color: #b22222; }
|
|
||||||
.org-org-checkbox { /* org-checkbox */ font-weight: bold; }
|
|
||||||
.org-org-checkbox-statistics-done { /* org-checkbox-statistics-done */ color: #228b22; font-weight: bold; }
|
|
||||||
.org-org-checkbox-statistics-todo { /* org-checkbox-statistics-todo */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-org-clock-overlay { /* org-clock-overlay */ background-color: #ffff00; }
|
|
||||||
.org-org-code { /* org-code */ color: #7f7f7f; }
|
|
||||||
.org-org-column { /* org-column */ background-color: #e5e5e5; }
|
|
||||||
.org-org-column-title { /* org-column-title */ background-color: #e5e5e5; font-weight: bold; text-decoration: underline; }
|
|
||||||
.org-org-date { /* org-date */ color: #a020f0; text-decoration: underline; }
|
|
||||||
.org-org-document-info { /* org-document-info */ color: #191970; }
|
|
||||||
.org-org-document-info-keyword { /* org-document-info-keyword */ color: #7f7f7f; }
|
|
||||||
.org-org-document-title { /* org-document-title */ color: #191970; font-size: 144%; font-weight: bold; }
|
|
||||||
.org-org-done { /* org-done */ color: #228b22; font-weight: bold; }
|
|
||||||
.org-org-drawer { /* org-drawer */ color: #0000ff; }
|
|
||||||
.org-org-ellipsis { /* org-ellipsis */ color: #b8860b; text-decoration: underline; }
|
|
||||||
.org-org-footnote { /* org-footnote */ color: #a020f0; text-decoration: underline; }
|
|
||||||
.org-org-formula { /* org-formula */ color: #b22222; }
|
|
||||||
.org-org-headline-done { /* org-headline-done */ color: #bc8f8f; }
|
|
||||||
.org-org-hide { /* org-hide */ color: #ffffff; }
|
|
||||||
.org-org-latex-and-export-specials { /* org-latex-and-export-specials */ color: #8b4513; }
|
|
||||||
.org-org-level-1 { /* org-level-1 */ color: #0000ff; }
|
|
||||||
.org-org-level-2 { /* org-level-2 */ color: #a0522d; }
|
|
||||||
.org-org-level-3 { /* org-level-3 */ color: #a020f0; }
|
|
||||||
.org-org-level-4 { /* org-level-4 */ color: #b22222; }
|
|
||||||
.org-org-level-5 { /* org-level-5 */ color: #228b22; }
|
|
||||||
.org-org-level-6 { /* org-level-6 */ color: #008b8b; }
|
|
||||||
.org-org-level-7 { /* org-level-7 */ color: #7a378b; }
|
|
||||||
.org-org-level-8 { /* org-level-8 */ color: #8b2252; }
|
|
||||||
.org-org-link { /* org-link */ color: #0000ff; text-decoration: underline; }
|
|
||||||
.org-org-meta-line { /* org-meta-line */ color: #b22222; }
|
|
||||||
.org-org-mode-line-clock { /* org-mode-line-clock */ color: #000000; background-color: #bfbfbf; }
|
|
||||||
.org-org-mode-line-clock-overrun { /* org-mode-line-clock-overrun */ color: #000000; background-color: #ff0000; }
|
|
||||||
.org-org-quote { /* org-quote */ color: #7f7f7f; }
|
|
||||||
.org-org-scheduled { /* org-scheduled */ color: #006400; }
|
|
||||||
.org-org-scheduled-previously { /* org-scheduled-previously */ color: #b22222; }
|
|
||||||
.org-org-scheduled-today { /* org-scheduled-today */ color: #006400; }
|
|
||||||
.org-org-sexp-date { /* org-sexp-date */ color: #a020f0; }
|
|
||||||
.org-org-special-keyword { /* org-special-keyword */ color: #a020f0; }
|
|
||||||
.org-org-table { /* org-table */ color: #0000ff; }
|
|
||||||
.org-org-tag { /* org-tag */ font-weight: bold; }
|
|
||||||
.org-org-target { /* org-target */ text-decoration: underline; }
|
|
||||||
.org-org-time-grid { /* org-time-grid */ color: #b8860b; }
|
|
||||||
.org-org-todo { /* org-todo */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-org-upcoming-deadline { /* org-upcoming-deadline */ color: #b22222; }
|
|
||||||
.org-org-verbatim { /* org-verbatim */ color: #7f7f7f; }
|
|
||||||
.org-org-verse { /* org-verse */ color: #7f7f7f; }
|
|
||||||
.org-org-warning { /* org-warning */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-outline-1 { /* outline-1 */ color: #0000ff; }
|
|
||||||
.org-outline-2 { /* outline-2 */ color: #a0522d; }
|
|
||||||
.org-outline-3 { /* outline-3 */ color: #a020f0; }
|
|
||||||
.org-outline-4 { /* outline-4 */ color: #b22222; }
|
|
||||||
.org-outline-5 { /* outline-5 */ color: #228b22; }
|
|
||||||
.org-outline-6 { /* outline-6 */ color: #008b8b; }
|
|
||||||
.org-outline-7 { /* outline-7 */ color: #7a378b; }
|
|
||||||
.org-outline-8 { /* outline-8 */ color: #8b2252; }
|
|
||||||
.org-preprocessor { /* font-lock-preprocessor-face */ color: #7a378b; }
|
|
||||||
.org-query-replace { /* query-replace */ color: #b0e2ff; background-color: #cd00cd; }
|
|
||||||
.org-regexp-grouping-backslash { /* font-lock-regexp-grouping-backslash */ font-weight: bold; }
|
|
||||||
.org-regexp-grouping-construct { /* font-lock-regexp-grouping-construct */ font-weight: bold; }
|
|
||||||
.org-region { /* region */ background-color: #eedc82; }
|
|
||||||
.org-secondary-selection { /* secondary-selection */ background-color: #ffff00; }
|
|
||||||
.org-shadow { /* shadow */ color: #7f7f7f; }
|
|
||||||
.org-show-paren-match { /* show-paren-match */ background-color: #40e0d0; }
|
|
||||||
.org-show-paren-mismatch { /* show-paren-mismatch */ color: #ffffff; background-color: #a020f0; }
|
|
||||||
.org-string { /* font-lock-string-face */ color: #dd1144; }
|
|
||||||
.org-tool-bar { /* tool-bar */ color: #000000; background-color: #bfbfbf; }
|
|
||||||
.org-tooltip { /* tooltip */ color: #000000; background-color: #ffffe0; }
|
|
||||||
.org-trailing-whitespace { /* trailing-whitespace */ background-color: #ff0000; }
|
|
||||||
.org-type { /* font-lock-type-face */ color: #228b22; }
|
|
||||||
.org-underline { /* underline */ text-decoration: underline; }
|
|
||||||
.org-variable-name { /* font-lock-variable-name-face */ color: teal; }
|
|
||||||
.org-warning { /* font-lock-warning-face */ color: #ff0000; font-weight: bold; }
|
|
||||||
.org-widget-button { /* widget-button */ font-weight: bold; }
|
|
||||||
.org-widget-button-pressed { /* widget-button-pressed */ color: #ff0000; }
|
|
||||||
.org-widget-documentation { /* widget-documentation */ color: #006400; }
|
|
||||||
.org-widget-field { /* widget-field */ background-color: #d9d9d9; }
|
|
||||||
.org-widget-inactive { /* widget-inactive */ color: #7f7f7f; }
|
|
||||||
.org-widget-single-line-field { /* widget-single-line-field */ background-color: #d9d9d9; }
|
|
1108
css/readtheorg.css
1108
css/readtheorg.css
File diff suppressed because it is too large
Load Diff
100
index.org
100
index.org
@ -7,12 +7,8 @@
|
|||||||
#+HTML_LINK_HOME: ../index.html
|
#+HTML_LINK_HOME: ../index.html
|
||||||
#+HTML_LINK_UP: ../index.html
|
#+HTML_LINK_UP: ../index.html
|
||||||
|
|
||||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/custom.css"/>
|
|
||||||
#+HTML_HEAD: <script type="text/javascript" src="./js/jquery.min.js"></script>
|
|
||||||
#+HTML_HEAD: <script type="text/javascript" src="./js/bootstrap.min.js"></script>
|
|
||||||
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
|
|
||||||
|
|
||||||
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
|
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
|
||||||
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
|
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
|
||||||
@ -22,6 +18,7 @@
|
|||||||
#+PROPERTY: header-args:latex+ :eval no-export
|
#+PROPERTY: header-args:latex+ :eval no-export
|
||||||
#+PROPERTY: header-args:latex+ :exports both
|
#+PROPERTY: header-args:latex+ :exports both
|
||||||
#+PROPERTY: header-args:latex+ :mkdirp yes
|
#+PROPERTY: header-args:latex+ :mkdirp yes
|
||||||
|
#+PROPERTY: header-args:latex+ :tangle no
|
||||||
#+PROPERTY: header-args:latex+ :output-dir figs
|
#+PROPERTY: header-args:latex+ :output-dir figs
|
||||||
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
|
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
|
||||||
|
|
||||||
@ -55,21 +52,6 @@ Finally, some notes are done on how to compute the noise level and signal level
|
|||||||
:END:
|
:END:
|
||||||
<<sec:spectral_analysis_basics>>
|
<<sec:spectral_analysis_basics>>
|
||||||
|
|
||||||
** ZIP file containing the data and matlab files :ignore:
|
|
||||||
#+begin_src bash :exports none :results none
|
|
||||||
if [ matlab/spectral_analysis_basics.m -nt data/spectral_analysis_basics.zip ]; then
|
|
||||||
cp matlab/spectral_analysis_basics.m spectral_analysis_basics.m;
|
|
||||||
zip data/spectral_analysis_basics \
|
|
||||||
mat/data_028.mat \
|
|
||||||
spectral_analysis_basics.m
|
|
||||||
rm spectral_analysis_basics.m;
|
|
||||||
fi
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_note
|
|
||||||
All the files (data and Matlab scripts) are accessible [[file:data/spectral_analysis_basics.zip][here]].
|
|
||||||
#+end_note
|
|
||||||
|
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
In this section, the basics of spectral analysis is presented with the associated Matlab commands.
|
In this section, the basics of spectral analysis is presented with the associated Matlab commands.
|
||||||
|
|
||||||
@ -87,6 +69,14 @@ This include:
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Sensitivity of the instrumentation
|
** Sensitivity of the instrumentation
|
||||||
A typical measurement setup is shown in figure [[fig:velocity_to_voltage]] where we measure a physical signal which is here a velocity $v(t)$ using a geophone.
|
A typical measurement setup is shown in figure [[fig:velocity_to_voltage]] where we measure a physical signal which is here a velocity $v(t)$ using a geophone.
|
||||||
The geophone has some dynamics that we represent with $G_g(s)$, its output a voltage.
|
The geophone has some dynamics that we represent with $G_g(s)$, its output a voltage.
|
||||||
@ -483,21 +473,6 @@ With Matlab, the Cumulative Power Spectrum can be computed with the below formul
|
|||||||
:END:
|
:END:
|
||||||
<<sec:approximate_tf>>
|
<<sec:approximate_tf>>
|
||||||
|
|
||||||
** ZIP file containing the data and matlab files :ignore:
|
|
||||||
#+begin_src bash :exports none :results none
|
|
||||||
if [ matlab/approximate_psd_tf.m -nt data/approximate_psd_tf.zip ]; then
|
|
||||||
cp matlab/approximate_psd_tf.m approximate_psd_tf.m;
|
|
||||||
zip data/approximate_psd_tf \
|
|
||||||
mat/dist_psd.mat \
|
|
||||||
approximate_psd_tf.m
|
|
||||||
rm approximate_psd_tf.m;
|
|
||||||
fi
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_note
|
|
||||||
All the files (data and Matlab scripts) are accessible [[file:data/approximate_psd_tf.zip][here]].
|
|
||||||
#+end_note
|
|
||||||
|
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
|
|
||||||
** Matlab Init :noexport:ignore:
|
** Matlab Init :noexport:ignore:
|
||||||
@ -509,6 +484,14 @@ With Matlab, the Cumulative Power Spectrum can be computed with the below formul
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Signal's PSD
|
** Signal's PSD
|
||||||
We load the PSD of the signal we wish to replicate.
|
We load the PSD of the signal we wish to replicate.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
@ -703,21 +686,6 @@ Finally, we compare the PSD of the generated signal with the original PSD in fig
|
|||||||
:END:
|
:END:
|
||||||
<<sec:approximate_ifft>>
|
<<sec:approximate_ifft>>
|
||||||
|
|
||||||
** ZIP file containing the data and matlab files :ignore:
|
|
||||||
#+begin_src bash :exports none :results none
|
|
||||||
if [ matlab/approximate_psd_ifft.m -nt data/approximate_psd_ifft.zip ]; then
|
|
||||||
cp matlab/approximate_psd_ifft.m approximate_psd_ifft.m;
|
|
||||||
zip data/approximate_psd_ifft \
|
|
||||||
mat/dist_psd.mat \
|
|
||||||
approximate_psd_ifft.m
|
|
||||||
rm approximate_psd_ifft.m;
|
|
||||||
fi
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_note
|
|
||||||
All the files (data and Matlab scripts) are accessible [[file:data/approximate_psd_ifft.zip][here]].
|
|
||||||
#+end_note
|
|
||||||
|
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
The technique comes from cite:preumont94_random_vibrat_spect_analy (section 12.11).
|
The technique comes from cite:preumont94_random_vibrat_spect_analy (section 12.11).
|
||||||
It is used to compute a periodic signal that has any Power Spectral Density defined.
|
It is used to compute a periodic signal that has any Power Spectral Density defined.
|
||||||
@ -732,6 +700,14 @@ It makes used of the Unversed Fast Fourier Transform (IFFT).
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Signal's PSD
|
** Signal's PSD
|
||||||
We load the PSD of the signal we wish to replicate.
|
We load the PSD of the signal we wish to replicate.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
@ -867,20 +843,6 @@ Finally, we compare the PSD of the original signal and the obtained signal on fi
|
|||||||
:END:
|
:END:
|
||||||
<<sec:compute_psd_levels>>
|
<<sec:compute_psd_levels>>
|
||||||
|
|
||||||
** ZIP file containing the data and matlab files :ignore:
|
|
||||||
#+begin_src bash :exports none :results none
|
|
||||||
if [ matlab/compute_psd_levels.m -nt data/compute_psd_levels.zip ]; then
|
|
||||||
cp matlab/compute_psd_levels.m compute_psd_levels.m;
|
|
||||||
zip data/compute_psd_levels \
|
|
||||||
compute_psd_levels.m
|
|
||||||
rm compute_psd_levels.m;
|
|
||||||
fi
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_note
|
|
||||||
All the files (data and Matlab scripts) are accessible [[file:data/compute_psd_levels.zip][here]].
|
|
||||||
#+end_note
|
|
||||||
|
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
We here make use of the Power Spectral Density to estimate either the noise level or the amplitude of a deterministic signal.
|
We here make use of the Power Spectral Density to estimate either the noise level or the amplitude of a deterministic signal.
|
||||||
Everything is explained in cite:schmid12_how_to_use_fft_matlab sections 5 and 6.
|
Everything is explained in cite:schmid12_how_to_use_fft_matlab sections 5 and 6.
|
||||||
@ -894,6 +856,14 @@ Everything is explained in cite:schmid12_how_to_use_fft_matlab sections 5 and 6.
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Time Domain Signal
|
** Time Domain Signal
|
||||||
Let's first define the number of sample and the sampling time.
|
Let's first define the number of sample and the sampling time.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
|
7
js/bootstrap.min.js
vendored
7
js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
4
js/jquery.min.js
vendored
4
js/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,87 +0,0 @@
|
|||||||
$(function() {
|
|
||||||
$('.note').before("<p class='admonition-title note'>Note</p>");
|
|
||||||
$('.seealso').before("<p class='admonition-title seealso'>See also</p>");
|
|
||||||
$('.warning').before("<p class='admonition-title warning'>Warning</p>");
|
|
||||||
$('.caution').before("<p class='admonition-title caution'>Caution</p>");
|
|
||||||
$('.attention').before("<p class='admonition-title attention'>Attention</p>");
|
|
||||||
$('.tip').before("<p class='admonition-title tip'>Tip</p>");
|
|
||||||
$('.important').before("<p class='admonition-title important'>Important</p>");
|
|
||||||
$('.hint').before("<p class='admonition-title hint'>Hint</p>");
|
|
||||||
$('.error').before("<p class='admonition-title error'>Error</p>");
|
|
||||||
$('.danger').before("<p class='admonition-title danger'>Danger</p>");
|
|
||||||
$('.question').before("<p class='admonition-title question'>Question</p>");
|
|
||||||
$('.summary').before("<p class='admonition-title hint'>Summary</p>");
|
|
||||||
});
|
|
||||||
|
|
||||||
$( document ).ready(function() {
|
|
||||||
|
|
||||||
// Shift nav in mobile when clicking the menu.
|
|
||||||
$(document).on('click', "[data-toggle='wy-nav-top']", function() {
|
|
||||||
$("[data-toggle='wy-nav-shift']").toggleClass("shift");
|
|
||||||
$("[data-toggle='rst-versions']").toggleClass("shift");
|
|
||||||
});
|
|
||||||
// Close menu when you click a link.
|
|
||||||
$(document).on('click', ".wy-menu-vertical .current ul li a", function() {
|
|
||||||
$("[data-toggle='wy-nav-shift']").removeClass("shift");
|
|
||||||
$("[data-toggle='rst-versions']").toggleClass("shift");
|
|
||||||
});
|
|
||||||
$(document).on('click', "[data-toggle='rst-current-version']", function() {
|
|
||||||
$("[data-toggle='rst-versions']").toggleClass("shift-up");
|
|
||||||
});
|
|
||||||
// Make tables responsive
|
|
||||||
$("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
|
|
||||||
});
|
|
||||||
|
|
||||||
$( document ).ready(function() {
|
|
||||||
$('#text-table-of-contents ul').first().addClass('nav');
|
|
||||||
// ScrollSpy also requires that we use
|
|
||||||
// a Bootstrap nav component.
|
|
||||||
$('body').scrollspy({target: '#text-table-of-contents'});
|
|
||||||
|
|
||||||
// add sticky table headers
|
|
||||||
$('table').stickyTableHeaders();
|
|
||||||
|
|
||||||
// set the height of tableOfContents
|
|
||||||
var $postamble = $('#postamble');
|
|
||||||
var $tableOfContents = $('#table-of-contents');
|
|
||||||
$tableOfContents.css({paddingBottom: $postamble.outerHeight()});
|
|
||||||
|
|
||||||
// add TOC button
|
|
||||||
var toggleSidebar = $('<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>');
|
|
||||||
$('#content').prepend(toggleSidebar);
|
|
||||||
|
|
||||||
// add close button when sidebar showed in mobile screen
|
|
||||||
var closeBtn = $('<a class="close-sidebar" href="#">Close</a>');
|
|
||||||
var tocTitle = $('#table-of-contents').find('h2');
|
|
||||||
tocTitle.append(closeBtn);
|
|
||||||
});
|
|
||||||
|
|
||||||
window.SphinxRtdTheme = (function (jquery) {
|
|
||||||
var stickyNav = (function () {
|
|
||||||
var navBar,
|
|
||||||
win,
|
|
||||||
stickyNavCssClass = 'stickynav',
|
|
||||||
applyStickNav = function () {
|
|
||||||
if (navBar.height() <= win.height()) {
|
|
||||||
navBar.addClass(stickyNavCssClass);
|
|
||||||
} else {
|
|
||||||
navBar.removeClass(stickyNavCssClass);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
enable = function () {
|
|
||||||
applyStickNav();
|
|
||||||
win.on('resize', applyStickNav);
|
|
||||||
},
|
|
||||||
init = function () {
|
|
||||||
navBar = jquery('nav.wy-nav-side:first');
|
|
||||||
win = jquery(window);
|
|
||||||
};
|
|
||||||
jquery(init);
|
|
||||||
return {
|
|
||||||
enable : enable
|
|
||||||
};
|
|
||||||
}());
|
|
||||||
return {
|
|
||||||
StickyNav : stickyNav
|
|
||||||
};
|
|
||||||
}($));
|
|
@ -4,6 +4,8 @@ clear; close all; clc;
|
|||||||
%% Intialize Laplace variable
|
%% Intialize Laplace variable
|
||||||
s = zpk('s');
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
% Signal's PSD
|
% Signal's PSD
|
||||||
% We load the PSD of the signal we wish to replicate.
|
% We load the PSD of the signal we wish to replicate.
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ clear; close all; clc;
|
|||||||
%% Intialize Laplace variable
|
%% Intialize Laplace variable
|
||||||
s = zpk('s');
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
% Signal's PSD
|
% Signal's PSD
|
||||||
% We load the PSD of the signal we wish to replicate.
|
% We load the PSD of the signal we wish to replicate.
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ clear; close all; clc;
|
|||||||
%% Intialize Laplace variable
|
%% Intialize Laplace variable
|
||||||
s = zpk('s');
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
% Time Domain Signal
|
% Time Domain Signal
|
||||||
% Let's first define the number of sample and the sampling time.
|
% Let's first define the number of sample and the sampling time.
|
||||||
|
|
||||||
|
@ -4,10 +4,9 @@ clear; close all; clc;
|
|||||||
%% Intialize Laplace variable
|
%% Intialize Laplace variable
|
||||||
s = zpk('s');
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
|
|
||||||
% #+RESULTS:
|
|
||||||
% [[file:figs/velocity_to_voltage.png]]
|
|
||||||
|
|
||||||
% #+NAME: fig:velocity_to_voltage
|
% #+NAME: fig:velocity_to_voltage
|
||||||
% #+CAPTION: Schematic of the instrumentation used for the measurement
|
% #+CAPTION: Schematic of the instrumentation used for the measurement
|
||||||
@ -69,8 +68,7 @@ ylabel("Velocity [m/s]");
|
|||||||
% The goal of spectral estimation is to describe the distribution (over frequency) of the power contained in a signal, based on a finite set of data.
|
% The goal of spectral estimation is to describe the distribution (over frequency) of the power contained in a signal, based on a finite set of data.
|
||||||
% #+end_quote
|
% #+end_quote
|
||||||
|
|
||||||
% We now have the velocity $v$ in the time domain:
|
% We now have the velocity $v(t)\ [m/s]$ in the time domain.
|
||||||
% \[ v(t)\ [m/s] \]
|
|
||||||
|
|
||||||
% The Power Spectral Density (PSD) $S_v(f)$ of the time domain $v(t)$ can be computed using the following equation:
|
% The Power Spectral Density (PSD) $S_v(f)$ of the time domain $v(t)$ can be computed using the following equation:
|
||||||
% \[ S_v(f) = \frac{1}{f_s} \sum_{m=-\infty}^{\infty} R_{xx}(m) e^{-j 2 \pi m f / f_s} \ \left[\frac{(m/s)^2}{Hz}\right] \]
|
% \[ S_v(f) = \frac{1}{f_s} \sum_{m=-\infty}^{\infty} R_{xx}(m) e^{-j 2 \pi m f / f_s} \ \left[\frac{(m/s)^2}{Hz}\right] \]
|
||||||
@ -85,7 +83,7 @@ ylabel("Velocity [m/s]");
|
|||||||
% To compute the Power Spectral Density with matlab, we use the =pwelch= function ([[https://fr.mathworks.com/help/signal/ref/pwelch.html?s_tid=doc_ta][documentation]]).
|
% To compute the Power Spectral Density with matlab, we use the =pwelch= function ([[https://fr.mathworks.com/help/signal/ref/pwelch.html?s_tid=doc_ta][documentation]]).
|
||||||
% The use of the =pwelch= function is:
|
% The use of the =pwelch= function is:
|
||||||
% =[pxx,w] = pwelch(x,window,noverlap,nfft, fs)=
|
% =[pxx,w] = pwelch(x,window,noverlap,nfft, fs)=
|
||||||
% With:
|
% with:
|
||||||
% - =x= is the discrete time signal
|
% - =x= is the discrete time signal
|
||||||
% - =window= is a window that is used to smooth the obtained PSD
|
% - =window= is a window that is used to smooth the obtained PSD
|
||||||
% - =overlap= can be used to have some overlap from section to section
|
% - =overlap= can be used to have some overlap from section to section
|
||||||
|
Loading…
Reference in New Issue
Block a user