Compare commits

..

21 commits

Author SHA1 Message Date
85e61d1e3a data: add fancy new measurements for 2.4M TIA 2024-08-29 16:14:26 +02:00
6fe16edd27 corrections: finishing touches for now 2024-08-29 16:14:11 +02:00
597a5ffee0 corrections: citations 2024-08-28 17:21:50 +02:00
674d07f702 corrections: background image removal 2024-08-28 17:20:13 +02:00
99f6b1e218 corrections(jonas): continue 2024-08-23 16:16:13 +02:00
71a4fb2c83 corrections(jonas): Continue correcting 2024-08-23 15:29:14 +02:00
64646c9752 Start work on the corrections from Jonas 2024-08-23 15:18:46 +02:00
e1d0a79f78 corrections(mom): done for now 2024-08-23 15:00:36 +02:00
5d841d8df8 corrections(mom) 2024-08-23 10:52:28 +02:00
535d5d1c04 corrections(mom): continue on pg40 on 2024-08-22 17:07:42 +02:00
cf98f0d790 corrections: finish first mom chapter 2024-08-22 16:01:58 +02:00
bd0e544619 corrections: continue fixing these up 2024-08-21 17:04:47 +02:00
055cdb60df fix: tiny tweak 2024-08-21 12:53:09 +02:00
bd92539cde corrections: picture captions :D 2024-08-21 12:48:06 +02:00
51824b6ec6 git: removed Arbeit PDF 2024-08-21 12:30:44 +02:00
19f6572ff1 corrections: fix image setting 2024-08-21 12:29:48 +02:00
851908f272 corrections: Image spacing 2024-08-21 11:23:46 +02:00
8b2469a54a corrections: image setting 2024-08-20 12:50:27 +02:00
4a84f87ce4 fix: floats can't be H 2024-08-19 12:41:21 +02:00
246875c926 corrections: work on re-ordering images a bit 2024-08-19 12:36:36 +02:00
68e66d621b corrections(mom): started 2024-08-16 16:51:15 +02:00
10 changed files with 13 additions and 18111 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,9 +194,6 @@ def decorate_ax(ax, plot_config):
row.mode= "expand" row.mode= "expand"
row.align="right" row.align="right"
if('legend_title' in plot_config):
legend.set_title(plot_config['legend_title']);
ax.grid(True); ax.grid(True);
def plot_single_graph(fig, plot_config, plot_data): def plot_single_graph(fig, plot_config, plot_data):
@ -210,7 +207,7 @@ def plot_single_graph(fig, plot_config, plot_data):
x_data = plot_data[x_key]; x_data = plot_data[x_key];
y_data = plot_data[y_key]; y_data = plot_data[y_key];
ax.plot(x_data, y_data, linewidth=plot_config.get('linewidth')); ax.plot(x_data, y_data);
if(not 'xformatter' in plot_config): if(not 'xformatter' in plot_config):
plot_config['xformatter'] = 'engineering'; plot_config['xformatter'] = 'engineering';
@ -234,19 +231,16 @@ def plot_lt_sweep(fig, plot_config, plot_data):
if(y_key == None): if(y_key == None):
raise RuntimeError("No Y-Data Key (`y_key`) specified for plot!") 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'): if(plot_config.get('colourmap', 'coolwarm') == 'coolwarm'):
num_steps = len(plot_data['steps'])
cmap = plt.cm.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']);
ax.plot(step[x_key], step[y_key], **plot_params) else:
for idx, step in enumerate(plot_data['steps']):
ax.plot(step[x_key], step[y_key], label=step['step']);
if(not 'xformatter' in plot_config): if(not 'xformatter' in plot_config):
plot_config['xformatter'] = 'engineering'; plot_config['xformatter'] = 'engineering';
@ -272,45 +266,9 @@ def perform_bandwidth_normalization(plot_data, plot_config):
step[plot_config['y_key']] = new_y_data 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): def perform_processing_step(data_process_step, plot_data, plot_config):
if(data_process_step == 'normalize_bandwidth'): if(data_process_step == 'normalize_bandwidth'):
perform_bandwidth_normalization(plot_data, plot_config) 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): def generate_plot(plot_config):
global YAML_DIR; global YAML_DIR;

View file

@ -7,56 +7,6 @@ defaults:
Cin: $C_{in}$ Cin: $C_{in}$
plots: 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 - load: Parasitics/SingleStage_noise_example.txt
loadtype: ltspice loadtype: ltspice
type: single type: single
@ -79,6 +29,7 @@ plots:
xscale: log xscale: log
ofile: Parasitics/SingleStage_noise_example.png ofile: Parasitics/SingleStage_noise_example.png
- load: - load:
47M N.1: V1_Measurements/V1.1-a1/47M_cap/linearity_1.csv 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 47M N.2: V1_Measurements/V1.1-a1/47M_cap/linearity_2.csv
@ -740,7 +691,6 @@ plots:
y_key: V(n002) dB y_key: V(n002) dB
title: Verstärkung bei variiertem GBWP title: Verstärkung bei variiertem GBWP
legend_title: GBWP
ylabel: Normalisierte Verstärkung (dB) ylabel: Normalisierte Verstärkung (dB)
- load: DesignEstimate/CompositeStage_ADA4817_StageAmpSweep_bandwidth.txt - load: DesignEstimate/CompositeStage_ADA4817_StageAmpSweep_bandwidth.txt

View file

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

View file

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