diff --git a/quad8/electro/lab/p12/data/12_3_1.dat b/quad8/electro/lab/p12/data/12_3_1.dat
new file mode 100644
index 0000000..2afac62
--- /dev/null
+++ b/quad8/electro/lab/p12/data/12_3_1.dat
@@ -0,0 +1,32 @@
+# t	V	log V
+0	2778	7.929486523
+10	2521.9	7.832767865
+20	2301.5	7.741316363
+30	2093.8	7.646735876
+40	1909.1	7.554387206
+50	1740.6	7.46198516
+60	1589	7.370860167
+70	1452.5	7.281041489
+80	1325.3	7.189394128
+90	1210.4	7.098706162
+100	1104.9	7.007510112
+110	1010.8	6.918497376
+120	921.96	6.826501839
+130	843.4	6.737441341
+140	770.85	6.647493802
+150	704.44	6.557403161
+160	645.16	6.469498348
+170	589.95	6.380037788
+180	539.97	6.291513582
+190	494.4	6.203344906
+200	452.23	6.1141909
+210	413.96	6.025769351
+220	378.99	5.93750982
+230	346.94	5.849151854
+240	318.27	5.762900079
+250	291.68	5.675657311
+260	266.93	5.586986452
+270	244.69	5.499992103
+280	224.64	5.414499121
+290	205.82	5.327002
+300	188.89	5.241164835
diff --git a/quad8/electro/lab/p12/data/12_3_2.dat b/quad8/electro/lab/p12/data/12_3_2.dat
new file mode 100644
index 0000000..ea60bc3
--- /dev/null
+++ b/quad8/electro/lab/p12/data/12_3_2.dat
@@ -0,0 +1,22 @@
+# t (us)	V (V)	log V
+0	3.91	1.363537374
+3	3.78	1.32972401
+6	3.68	1.302912752
+8.99	3.56	1.269760545
+12	3.45	1.238374231
+15	3.35	1.208960346
+18	3.23	1.172482137
+21	3.15	1.147402453
+24	3.05	1.115141591
+27	2.95	1.08180517
+30	2.88	1.057790294
+33	2.78	1.022450928
+36	2.7	0.993251773
+39	2.61	0.9593502213
+42	2.51	0.9202827531
+45	2.45	0.8960880246
+48	2.36	0.858661619
+51	2.28	0.824175443
+54	2.21	0.7929925155
+57	2.16	0.7701082217
+59.9	2.08	0.7323678937
diff --git a/quad8/electro/lab/p12/data/12_3_3.dat b/quad8/electro/lab/p12/data/12_3_3.dat
new file mode 100644
index 0000000..5fb83e5
--- /dev/null
+++ b/quad8/electro/lab/p12/data/12_3_3.dat
@@ -0,0 +1,10 @@
+# Freq (Hz)	V (V)
+100	3.04
+200	3.04
+500	3
+1000	2.92
+2000	2.44
+5000	1.2
+10000	0.66
+20000	0.35
+50000	0.146
diff --git a/quad8/electro/lab/p12/graphs/12_3_1.gnu b/quad8/electro/lab/p12/graphs/12_3_1.gnu
new file mode 100755
index 0000000..d801e35
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/12_3_1.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/12_3_1' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/12_3_1.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 't $(\si{\second})$'
+set ylabel '$\log(V)$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:3 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:3 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$\log V(t) = %.'.sd_error_a.'f t + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:3 t "Dades experimentals" w p, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p12/graphs/12_3_2.gnu b/quad8/electro/lab/p12/graphs/12_3_2.gnu
new file mode 100755
index 0000000..f0fe21f
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/12_3_2.gnu
@@ -0,0 +1,58 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/12_3_2' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/12_3_2.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 't $(\si{\micro\second})$'
+set ylabel '$\log(V)$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+# == CONFIGURACIÓ DEL FIT ==
+set fit quiet
+
+f(x) = a*x + b # Funció a fitar
+fit f(x) datafile u 1:3 via a, b # Fem el fit de les dades
+
+# Això s'usa per obtenir el valor del coeficient de correlació "r", que estarà
+# guardat a la var. "STATS_correlation"
+stats datafile u 1:3 name "STATS" nooutput
+
+# Funció per obtenir els dígits significatius d'una expressió
+f_sd(n, i) = (int(n) == 0 ? f_sd(n*10, i+1) : (int(n) == 1 ? i+1 : i))
+significant_digits(n) = f_sd(n - 10*int(n/10), 0)
+
+significant_digits_r(n) = (n == 1 ? 0 : significant_digits(1 - abs(n)))
+
+error_a = STATS_slope_err
+sd_error_a = significant_digits(error_a)
+error_b = STATS_intercept_err
+sd_error_b = significant_digits(error_b)
+r = STATS_correlation
+sd_r = significant_digits_r(r)
+
+print("=== ".datafile." ===")
+print(sprintf('delta(a) = %.'.sd_error_a.'f, sd=%.0f', error_a, sd_error_a))
+print(sprintf('delta(b) = %.'.sd_error_b.'f, sd=%.0f', error_b, sd_error_b))
+
+# Aquesta funció escriu, a partir dels valors del paràmetres a, b i r,
+# l'equació de la regressió:
+title_f(a, b, r) = sprintf('$\log V(t) = %.'.sd_error_a.'f t + (%.'.sd_error_b.'f)$, $r = %.'.sd_r.'f$', a, b, r);
+
+plot datafile u 1:3 t "Dades experimentals" w p, f(x) t title_f(a, b, r)
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p12/graphs/12_3_3.gnu b/quad8/electro/lab/p12/graphs/12_3_3.gnu
new file mode 100755
index 0000000..edc96e9
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/12_3_3.gnu
@@ -0,0 +1,29 @@
+#!/usr/bin/env gnuplot -c
+# == DEFINICIONS ==
+outputfile = '../output/12_3_3' # Nom de la imatge resultant (sense extensió)
+datafile = '../data/12_3_3.dat' # Nom del fitxer de dades que es vol usar
+
+# == CONFIGURACIÓ DE L'OUTPUT PEL LATEX ==
+set terminal cairolatex size 10cm, 7.5cm font ",10"
+set output outputfile.'.tex'
+
+# == CONFIGURACIÓ DEL PLOT ==
+set xlabel 't $(\si{\micro\second})$'
+set ylabel 'V $(\si{\volt})$'
+
+# Opcions per la llegenda:
+set key above
+set key spacing 1.5
+set key font ",8.5"
+
+set logscale xy
+
+plot datafile u 1:2 t "Dades experimentals" w p
+
+# == CONFIGURACIÓ DE L'OUTPUT PER SVG ==
+# Això ho uso per generar també una imatge de previsualització que puc carregar
+# a l'ordinador per veure més o menys com a sortit el plot sense haver
+# d'inserir-ho al LaTeX per veure-ho.
+set terminal svg dashed size 600, 600 font "Computer Modern,Tinos,Helvetica,15"
+set output outputfile.'.svg'
+replot
diff --git a/quad8/electro/lab/p12/graphs/generate.bash b/quad8/electro/lab/p12/graphs/generate.bash
new file mode 100755
index 0000000..3a4ef9e
--- /dev/null
+++ b/quad8/electro/lab/p12/graphs/generate.bash
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+mkdir -p ../output
+
+./12_3_1.gnu
+./12_3_2.gnu
+./12_3_3.gnu
diff --git a/quad8/electro/lab/p12/informe/main.tex b/quad8/electro/lab/p12/informe/main.tex
new file mode 100644
index 0000000..c6fb694
--- /dev/null
+++ b/quad8/electro/lab/p12/informe/main.tex
@@ -0,0 +1,120 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{margin=20mm}
+
+\graphicspath{ {./img/} }
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 12}
+\rfoot{\thepage}
+%%%% Title %%%%
+\title{Pràctica 12. Transistori RC. Filtre RC passa-baixos.}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \section{Descàrrega d'un condensador}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$t (\si{\second})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V (\si{\milli\volt})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\log(V)$, fixed, fixed zerofill, precision=2}
+    ]{../data/12_3_1.dat}
+
+    \captionof{figure}{Taula dels valors presos manualment amb un cronòmetre.}
+  \end{center}
+
+  La regressió és:
+  \[ V(t) = V_1 e^{\frac{-t}{RC}} \implies \log(V) = \underbrace{\log(V_1)}_{b} + \underbrace{\left(- \frac{1}{RC}\right)}_{a} t. \]
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/12_3_1.tex}
+    \caption{Gràfica que mostra la situació en què un condensador s'està descarregant.}
+  \end{figure}
+
+  En aquest cas tenim:
+  \[ a = \SI{-0.008946(17)e-3}{\per\second}, \]
+  \[ b = \SI{7.909(3)}{}, \]
+  \[ \tau = RC = - \frac{1}{a} = \SI{111.8(2)}{\second}, \]
+  \[ C = \frac{\tau}{R} = \SI{1.118(2)}{\milli\farad}.  \]
+
+  Amb el mètode alternatiu:
+  \[ V_0 = \SI{2.78}{\volt}, \]
+  \[ V_0/e = \SI{1.02}{\volt}, \]
+  \[ \tau = \SI{110}{\second} \]
+
+  \newpage
+
+  \section{Càrregues successives per aplicació d'un $V(t)$ de forma quadrada}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$t (\si{\micro\second})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V (\si{\milli\volt})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\log(V)$, fixed, fixed zerofill, precision=2}
+    ]{../data/12_3_2.dat}
+
+    \captionof{figure}{Taula dels valors presos manualment amb els cursors de l'oscil·loscopi.}
+  \end{center}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/12_3_2.tex}
+    \caption{Gràfica que mostra la situació en què un condensador s'està descarregant en mig d'un cicle de càrrega-descàrrega molt més curt que $\tau$.}
+  \end{figure}
+
+  En aquest cas tenim:
+  \[ a = \SI{-0.01051(5)}{\per\micro\second}, \]
+  \[ b = \SI{1.3656(4)}{}, \]
+  \[ \tau = RC = - \frac{1}{a} = \SI{-95.15(15)}{\micro\second}, \]
+  \[ C = \frac{\tau}{R} = \SI{0.951(2)}{\nano\farad}.  \]
+
+  \section{Filtre RC passa-baixos}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$\nu (\si{\hertz})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V (\si{\volt})$, fixed, fixed zerofill, precision=2}
+    ]{../data/12_3_3.dat}
+
+    \captionof{figure}{Taula dels valors presos amb l'oscil·loscopi.}
+  \end{center}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/12_3_3.tex}
+    \caption{Gràfica que mostra el grau de filtració de les freqüències provades.}
+  \end{figure}
+
+  \newpage
+
+  \section{Qüestions}
+
+  \textbf{(a) Demostreu que $RC$ té dimensions de temps:}
+  \[ \left.\begin{array}{r}
+    {[R]} = \si{\ohm} = \si{\kilogram\meter\squared\per\second\cubed\per\ampere\squared} \\
+    {[C]} = \si{\farad} = \si{\ampere\squared\second\tothe{4}\per\kilogram\per\meter\squared}
+  \end{array}\right\} \implies [RC] = \si{\second} \]
+
+  \textbf{(b) Calculeu el temps que ha de passar, mesurat en termes de la constant de temps, perquè la tensió d'un condensador, en descarregar-se, arribi a un 1\% de la tensió inicial.}
+  \[ V_f(t_f) = \alpha V_i(t_i) \implies \exp\left(-\frac{t_f}{RC}\right) = \alpha \exp\left(-\frac{t_i}{RC}\right) \implies - t_f = RC \log(\alpha) - t_i \implies \]
+  \[ \implies \Delta t = t_f - t_i = - RC \log(\alpha) \notate[X]{{}={}}{1}{\scriptstyle \alpha = 0.01 = 1\%} - RC \log(0.01) \]
+
+  \textbf{(c) A partir del resultat de la qüestió anterior, indiqueu quina limitació existeix en el valor màxim de la freqüència del senyal quadrat, per a un valor determinat de $R$ i $C$, si es vol mesurar la constant de temps.}
+
+  Per una determinada freqüència $\nu$ tindrem un període $T = \frac{1}{\nu}$ en què ha de donar temps a carregar-se i descarregar-se ``completament'' (al 99\%) el condensador. Per tant:
+  \[ \frac{T}{2} \geq - RC \log(0.01) \implies T \geq - 2RC \log(0.01) \implies \nu \leq - \frac{1}{2RC \log(0.01)}. \]
+
+\end{document}
