#+TITLE:SpeedGoat :DRAWER: #+STARTUP: overview #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+LATEX_CLASS: cleanreport #+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted] #+LaTeX_HEADER: \usepackage{svg} #+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas} #+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze} #+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com} #+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :exports both #+PROPERTY: header-args:matlab+ :eval no-export #+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :mkdirp yes :END: * Matlab Init :noexport:ignore: #+begin_src matlab :exports none :results silent :noweb yes <> #+end_src * Load data #+begin_src matlab :results none load('mat/data_001.mat', 't', 'x1', 'x2'); dt = t(2) - t(1); #+end_src * Time Domain Data #+begin_src matlab :results none figure; hold on; plot(t, x1); plot(t, x2); hold off; xlabel('Time [s]'); ylabel('Voltage [V]'); xlim([t(1), t(end)]); #+end_src #+NAME: fig:data_time_domain #+HEADER: :tangle no :exports results :results value raw replace :noweb yes #+begin_src matlab :var filepath="figs/data_time_domain.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png") <> #+end_src #+NAME: fig:data_time_domain #+CAPTION: Time domain Data #+RESULTS: fig:data_time_domain [[file:figs/data_time_domain.png]] #+begin_src matlab :results none figure; hold on; plot(t, x1); plot(t, x2); hold off; xlabel('Time [s]'); ylabel('Voltage [V]'); xlim([0 1]); #+end_src #+NAME: fig:data_time_domain_zoom #+HEADER: :tangle no :exports results :results value raw replace :noweb yes #+begin_src matlab :var filepath="figs/data_time_domain_zoom.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png") <> #+end_src #+NAME: fig:data_time_domain_zoom #+CAPTION: Time domain Data - Zoom #+RESULTS: fig:data_time_domain_zoom [[file:figs/data_time_domain_zoom.png]] * Compute PSD #+begin_src matlab :results none [pxx1, f1] = pwelch(x1, hanning(ceil(length(t)/100)), 0, [], 1/dt); [pxx2, f2] = pwelch(x2, hanning(ceil(length(t)/100)), 0, [], 1/dt); #+end_src * Take into account sensibility of Geophone The Geophone used are L22. #+begin_src matlab :results none S0 = 88; % Sensitivity [V/(m/s)] f0 = 2; % Cut-off frequnecy [Hz] S = (s/2/pi/f0)/(1+s/2/pi/f0); #+end_src #+begin_src matlab :results none figure; bodeFig({S}); ylabel('Amplitude [V/(m/s)]') #+end_src #+NAME: fig:geophone_sensibility #+HEADER: :tangle no :exports results :results value raw replace :noweb yes #+begin_src matlab :var filepath="figs/geophone_sensibility.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png") <> #+end_src #+NAME: fig:geophone_sensibility #+CAPTION: Sensibility of the Geophone #+RESULTS: fig:geophone_sensibility [[file:figs/geophone_sensibility.png]] We take into account the gain of the electronics. The cut-off frequency is set at 1kHz. - [ ] Check what is the order of the filter - [ ] Maybe I should not use this filter as there is no high frequencies anyway? #+begin_src matlab :results none G0 = 60; % [dB] G = G0/(1+s/2/pi/1000); #+end_src #+begin_src matlab :results none figure; hold on; plot(f1, sqrt(pxx1)./squeeze(abs(freqresp(G, f1, 'Hz')))./squeeze(abs(freqresp(S, f1, 'Hz')))); plot(f2, sqrt(pxx2)./squeeze(abs(freqresp(G, f2, 'Hz')))./squeeze(abs(freqresp(S, f2, 'Hz')))); hold off; set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]') #+end_src #+NAME: fig:psd_velocity #+HEADER: :tangle no :exports results :results value raw replace :noweb yes #+begin_src matlab :var filepath="figs/psd_velocity.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") <> #+end_src #+NAME: fig:psd_velocity #+CAPTION: Spectral density of the velocity #+RESULTS: fig:psd_velocity [[file:figs/psd_velocity.png]]