Compare commits

..

25 commits

Author SHA1 Message Date
7c1a36c83b corrections: Continued 2024-09-03 11:08:23 +02:00
32c6179417 data: add fancy new measurements for 2.4M TIA 2024-09-03 11:08:23 +02:00
379ddb7a33 corrections: finishing touches for now 2024-09-03 11:08:23 +02:00
99bb529642 corrections: citations 2024-09-03 11:08:23 +02:00
293c7274e1 corrections: background image removal 2024-09-03 11:08:23 +02:00
88ed4c4816 corrections(jonas): continue 2024-09-03 11:08:23 +02:00
a4b204d484 corrections(jonas): Continue correcting 2024-09-03 11:08:17 +02:00
297acc7737 Start work on the corrections from Jonas 2024-09-03 11:06:43 +02:00
c0779f748d corrections(mom): done for now 2024-09-03 11:06:43 +02:00
62eeb118cd corrections(mom) 2024-09-03 11:06:43 +02:00
d7b6fccad9 corrections(mom): continue on pg40 on 2024-09-03 11:06:43 +02:00
b6d2445480 corrections: finish first mom chapter 2024-09-03 11:06:43 +02:00
953f514bc3 corrections: continue fixing these up 2024-09-03 11:06:43 +02:00
40e1d3000f fix: tiny tweak 2024-09-03 11:06:43 +02:00
2e7ecdd3ad corrections: picture captions :D 2024-09-03 11:06:43 +02:00
fafd68878c git: removed Arbeit PDF 2024-09-03 11:06:43 +02:00
bea08c6d5b corrections: fix image setting 2024-09-03 11:06:43 +02:00
ac025ab1a7 corrections: Image spacing 2024-09-03 11:06:43 +02:00
79901123df corrections: image setting 2024-09-03 11:06:43 +02:00
d2873d7821 fix: floats can't be H 2024-09-03 11:06:43 +02:00
3e6e4f8953 corrections: work on re-ordering images a bit 2024-09-03 11:06:43 +02:00
281abd02cb corrections(mom): started 2024-09-03 11:06:42 +02:00
Xaseiresh
46e6239b9a fix(plots): properly set legend title 2024-09-03 10:18:01 +02:00
Xaseiresh
9b0520bee8 Added old/new comparison plots 2024-09-02 16:34:09 +02:00
Xaseiresh
d246d15360 data: Add real-world IMS measurements 2024-09-02 15:34:28 +02:00
10 changed files with 18111 additions and 13 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -194,6 +194,9 @@ def decorate_ax(ax, plot_config):
row.mode= "expand"
row.align="right"
if('legend_title' in plot_config):
legend.set_title(plot_config['legend_title']);
ax.grid(True);
def plot_single_graph(fig, plot_config, plot_data):
@ -207,7 +210,7 @@ def plot_single_graph(fig, plot_config, plot_data):
x_data = plot_data[x_key];
y_data = plot_data[y_key];
ax.plot(x_data, y_data);
ax.plot(x_data, y_data, linewidth=plot_config.get('linewidth'));
if(not 'xformatter' in plot_config):
plot_config['xformatter'] = 'engineering';
@ -231,16 +234,19 @@ def plot_lt_sweep(fig, plot_config, plot_data):
if(y_key == None):
raise RuntimeError("No Y-Data Key (`y_key`) specified for plot!")
num_steps = len(plot_data['steps'])
for idx, step in enumerate(plot_data['steps']):
plot_params = dict()
plot_params['label'] = step['step']
if(plot_config.get('colourmap', 'coolwarm') == 'coolwarm'):
num_steps = len(plot_data['steps'])
cmap = plt.cm.coolwarm
if(plot_config.get('colourmap', 'coolwarm') == 'coolwarm'):
cmap = plt.cm.coolwarm
plot_params['color'] = cmap(idx/(num_steps-1))
plot_params['linewidth'] = plot_config.get('linewidth');
for idx, step in enumerate(plot_data['steps']):
ax.plot(step[x_key], step[y_key], color=cmap(idx/(num_steps-1)), label=step['step']);
else:
for idx, step in enumerate(plot_data['steps']):
ax.plot(step[x_key], step[y_key], label=step['step']);
ax.plot(step[x_key], step[y_key], **plot_params)
if(not 'xformatter' in plot_config):
plot_config['xformatter'] = 'engineering';
@ -266,9 +272,45 @@ def perform_bandwidth_normalization(plot_data, plot_config):
step[plot_config['y_key']] = new_y_data
def perform_peak_normalization(plot_data, plot_config):
print("Normalizing peak height to 1")
for step in plot_data['steps']:
y_data = step[plot_config['y_key']]
new_y_data = []
y_max = max(y_data)
y_min = min(y_data)
scaling_factor = 0.1 + 0.9*(y_max if (y_max > (-y_min)) else y_min)
for datapoint in y_data:
new_y_data.append(datapoint / scaling_factor)
step[plot_config['y_key']] = new_y_data
def perform_offset_removal(plot_data, plot_config):
print("Removing offset")
for step in plot_data['steps']:
y_data = step[plot_config['y_key']]
new_y_data = []
offset_value = np.percentile(y_data, 30) * 0.8
for datapoint in y_data:
new_y_data.append(datapoint - offset_value)
step[plot_config['y_key']] = new_y_data
def perform_processing_step(data_process_step, plot_data, plot_config):
if(data_process_step == 'normalize_bandwidth'):
perform_bandwidth_normalization(plot_data, plot_config)
if(data_process_step == 'remove_offset'):
perform_offset_removal(plot_data, plot_config)
if(data_process_step == 'normalize_peak'):
perform_peak_normalization(plot_data, plot_config)
def generate_plot(plot_config):
global YAML_DIR;

View file

@ -7,6 +7,56 @@ defaults:
Cin: $C_{in}$
plots:
- loadtype: multicsv
load:
Gemitiv: IMS Measurements/Spectrum_7.csv
HighTIME: IMS Measurements/Spectrum_23.csv
load_values: ["time", "voltage"]
type: lt_sweep
data_processing_steps:
- normalize_peak
- remove_offset
- normalize_peak
y_key: voltage
x_key: time
xscale: linear
xlabel: Zeit (s)
ylabel: Normalisierter Messwert (a.u.)
linewidth: 1
ofile: IMS Measurements/averaged_compare.png
- loadtype: multicsv
load:
Gemitiv: IMS Measurements/Spectrum_59.csv
HighTIME: IMS Measurements/Spectrum_37.csv
load_values: ["time", "voltage"]
type: lt_sweep
data_processing_steps:
- normalize_peak
- remove_offset
- normalize_peak
y_key: voltage
x_key: time
xscale: linear
xlabel: Zeit (s)
ylabel: Normalisierter Messwert (a.u.)
linewidth: 0.8
ofile: IMS Measurements/raw_compare.png
- load: Parasitics/SingleStage_noise_example.txt
loadtype: ltspice
type: single
@ -29,7 +79,6 @@ plots:
xscale: log
ofile: Parasitics/SingleStage_noise_example.png
- load:
47M N.1: V1_Measurements/V1.1-a1/47M_cap/linearity_1.csv
47M N.2: V1_Measurements/V1.1-a1/47M_cap/linearity_2.csv
@ -691,6 +740,7 @@ plots:
y_key: V(n002) dB
title: Verstärkung bei variiertem GBWP
legend_title: GBWP
ylabel: Normalisierte Verstärkung (dB)
- load: DesignEstimate/CompositeStage_ADA4817_StageAmpSweep_bandwidth.txt
@ -725,4 +775,4 @@ plots:
y_key: V(vout) dB
title: Verstärkung bei variierter Eingangskapazität
ylabel: Normalisierte Verstärkung (dB)
ylabel: Normalisierte Verstärkung (dB)

View file

@ -32,7 +32,7 @@
%\documentclass[12pt, a4paper, openany, DIV=16, BCOR=20mm, bibliography=totoc, captions=tableheading, numbers=noenddot]{scrbook}
%Book - Digitalversion (doppelseitig)
\documentclass[12pt, a4paper, openany, bibliography=totoc,,captions=tableheading, numbers=noenddot]{scrbook}
\documentclass[12pt, a4paper, openany, bibliography=totoc, captions=tableheading, numbers=noenddot]{scrreport}

View file

@ -348,7 +348,7 @@ Somit wird die Verstärkung der Schaltung in $\Omega$ angegeben. Die grundlegend
\centering
\includegraphics[scale=0.2]{grundlagen/OpAmp_TIA.drawio.png}
\caption[Grundlegender Schaltkreis eines Transimpedanzverstärkers,
eigene Darstellung nach \cite{Reinecke2018Oct} und \cite[S.S. 233]{Horowitz:1981307}]{
eigene Darstellung]{
\label{fig:example_tia_circuit}Grundlegender Schaltkreis eines Transimpedanzverstärkers,
eigene Darstellung nach \cite{Reinecke2018Oct} und \cite[S.S. 233]{Horowitz:1981307}.}
\end{figure}