Compare commits
21 commits
7c1a36c83b
...
85e61d1e3a
Author | SHA1 | Date | |
---|---|---|---|
85e61d1e3a | |||
6fe16edd27 | |||
597a5ffee0 | |||
674d07f702 | |||
99f6b1e218 | |||
71a4fb2c83 | |||
64646c9752 | |||
e1d0a79f78 | |||
5d841d8df8 | |||
535d5d1c04 | |||
cf98f0d790 | |||
bd0e544619 | |||
055cdb60df | |||
bd92539cde | |||
51824b6ec6 | |||
19f6572ff1 | |||
851908f272 | |||
8b2469a54a | |||
4a84f87ce4 | |||
246875c926 | |||
68e66d621b |
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
|
@ -194,9 +194,6 @@ 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):
|
||||
|
@ -210,7 +207,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, linewidth=plot_config.get('linewidth'));
|
||||
ax.plot(x_data, y_data);
|
||||
|
||||
if(not 'xformatter' in plot_config):
|
||||
plot_config['xformatter'] = 'engineering';
|
||||
|
@ -234,19 +231,16 @@ 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
|
||||
plot_params['color'] = cmap(idx/(num_steps-1))
|
||||
|
||||
plot_params['linewidth'] = plot_config.get('linewidth');
|
||||
|
||||
ax.plot(step[x_key], step[y_key], **plot_params)
|
||||
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']);
|
||||
|
||||
if(not 'xformatter' in plot_config):
|
||||
plot_config['xformatter'] = 'engineering';
|
||||
|
@ -272,45 +266,9 @@ 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;
|
||||
|
|
|
@ -7,56 +7,6 @@ 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
|
||||
|
@ -79,6 +29,7 @@ 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
|
||||
|
@ -740,7 +691,6 @@ 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
|
||||
|
|
|
@ -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]{scrreport}
|
||||
\documentclass[12pt, a4paper, openany, bibliography=totoc,,captions=tableheading, numbers=noenddot]{scrbook}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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]{
|
||||
eigene Darstellung nach \cite{Reinecke2018Oct} und \cite[S.S. 233]{Horowitz:1981307}]{
|
||||
\label{fig:example_tia_circuit}Grundlegender Schaltkreis eines Transimpedanzverstärkers,
|
||||
eigene Darstellung nach \cite{Reinecke2018Oct} und \cite[S.S. 233]{Horowitz:1981307}.}
|
||||
\end{figure}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue