LABO 3

Plot segnale e fit con polinomio

Esempio di fit di un sottorange del segnale

Import dei moduli necessari, lettura dati da file csv, plot segnali.

I dati provengono da onda trianglolare a bassa frequenza (f=10 Hz) attraverso un filtro CR passa-alto con frequenza a 3dB di 10 kHz.

In [1]:
%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
time,v1,v2 = np.loadtxt('dati/passa_alto_signal_triang_wave_10Hz.csv', delimiter=',', unpack=True, skiprows=1)
plt.plot(time,v1, label='Canale 1',c='b')
plt.plot(time,v2, label='Canale 2',c='r')
plt.xlabel('Tempo [s]',fontsize=16)
plt.ylabel('Ampiezza segnali [V]',fontsize=16)
plt.legend(fontsize=16)
plt.show()

Zoom canale 2 e fit con costante (polinomio di grado 0) usando np.polyfit

In [2]:
plt.plot(time,v2, label='Canale 2',c='r')
plt.xlabel('Tempo [s]',fontsize=16)
plt.ylabel('Ampiezza segnali [V]',fontsize=16)

# definizione sottorange per il fit <---- !
# Si possono ricreare degli array usando determinate condizioni
time_sub = time[(time>-0.02) & (time<0.02)]
v2_sub = v2[(time>-0.02) & (time<0.02)]


pars = np.polyfit(time_sub, v2_sub, 0)
print('Parametri risultanti del fit y = p0: ')
print('p0 = %f' % pars[0])
plt.plot(time_sub,0*time_sub + pars[0],label='Fit', linewidth=3, c='black')
plt.legend(fontsize=16)
plt.show()
Parametri risultanti del fit y = p0: 
p0 = 0.020705