Compare commits
3 commits
ecb444e430
...
46e6239b9a
Author | SHA1 | Date | |
---|---|---|---|
|
46e6239b9a | ||
|
9b0520bee8 | ||
|
d246d15360 |
8 changed files with 18108 additions and 9 deletions
3001
Images/Datavis/IMS Measurements/Spectrum_23.csv
Normal file
3001
Images/Datavis/IMS Measurements/Spectrum_23.csv
Normal file
File diff suppressed because it is too large
Load diff
3001
Images/Datavis/IMS Measurements/Spectrum_37.csv
Normal file
3001
Images/Datavis/IMS Measurements/Spectrum_37.csv
Normal file
File diff suppressed because it is too large
Load diff
3001
Images/Datavis/IMS Measurements/Spectrum_45.csv
Normal file
3001
Images/Datavis/IMS Measurements/Spectrum_45.csv
Normal file
File diff suppressed because it is too large
Load diff
3001
Images/Datavis/IMS Measurements/Spectrum_54.csv
Normal file
3001
Images/Datavis/IMS Measurements/Spectrum_54.csv
Normal file
File diff suppressed because it is too large
Load diff
3001
Images/Datavis/IMS Measurements/Spectrum_59.csv
Normal file
3001
Images/Datavis/IMS Measurements/Spectrum_59.csv
Normal file
File diff suppressed because it is too large
Load diff
3001
Images/Datavis/IMS Measurements/Spectrum_7.csv
Normal file
3001
Images/Datavis/IMS Measurements/Spectrum_7.csv
Normal file
File diff suppressed because it is too large
Load diff
|
@ -194,6 +194,9 @@ 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):
|
||||||
|
@ -207,7 +210,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);
|
ax.plot(x_data, y_data, linewidth=plot_config.get('linewidth'));
|
||||||
|
|
||||||
if(not 'xformatter' in plot_config):
|
if(not 'xformatter' in plot_config):
|
||||||
plot_config['xformatter'] = 'engineering';
|
plot_config['xformatter'] = 'engineering';
|
||||||
|
@ -231,16 +234,19 @@ 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], **plot_params)
|
||||||
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):
|
if(not 'xformatter' in plot_config):
|
||||||
plot_config['xformatter'] = 'engineering';
|
plot_config['xformatter'] = 'engineering';
|
||||||
|
@ -266,9 +272,45 @@ 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;
|
||||||
|
|
|
@ -7,6 +7,56 @@ 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:
|
- 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
|
||||||
|
@ -668,6 +718,7 @@ 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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue