#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Traitement des données sur la manip des domaines de Weiss
"""

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

A = np.loadtxt('Results.txt')

f = 1/15

t = A[:,0]*f
I = A[:,1]

plt.figure()

# On moyenne période par période, un seul moyennage suffit si on renseigne les bons paramètres.

def moyenne_periode(I,t,T,N):
    B = np.zeros(N*T)
    for i in range(N):
        B[i*T:(i+1)*T] = I[i*T:(i+1)*T]-np.mean(I[i*T:(i+1)*T])
    t = t[:N*T]
    return (B,t)

(I,t) = moyenne_periode(I,t,15,9)
plt.plot(t,I)

# On fit la réponse par une sinusoïde pour récupérer le signal générateur

def cosinus(x,A,omega,phi):
    return A*np.cos(omega*x+phi)

popt, pcov = curve_fit(cosinus,t,I,p0 = (18,2*np.pi,0))

A = popt[0]
omega = popt[1]
phi = popt[2]

B = cosinus(t,A,omega,phi)


plt.plot(t,B)

plt.figure()
plt.plot(B,I)







    