
import numpy
import numpy.random
from matplotlib.pyplot import *
            

def psi(n,p):
    x = (numpy.random.sample(n)-0.5)*2*numpy.pi
    y = numpy.repeat(x,p)
    return y             
             

n=50000 # nombre de periodes
p=30 # temps de coherence
psi1 = psi(n,p)
psi2 = psi(n,p)

figure(figsize=(12,6))
plot(psi1,'b')
plot(psi2,'r')
ylabel('psi')
xlabel('t')
axis([0,3000,-numpy.pi,numpy.pi])
grid()
             

def interference(tau,psi1,psi2):
    psi = numpy.roll(psi1,int(tau))-psi2
    cos = numpy.cos(2*numpy.pi*tau+psi)
    return numpy.mean(cos)
             

tau = numpy.linspace(0,20,300)
N = tau.size
I = numpy.zeros(N)
for k in range(N):
    I[k] = interference(tau[k],psi1,psi2)
    
figure()
plot(tau,I)
xlabel("tau")
ylabel("Interference")
axis([0,tau.max(),-1,1])

             

for k in range(N):
    I[k] = interference(tau[k],psi1,psi1)
    
figure()
plot(tau,I)
xlabel("tau")
ylabel("Interference")
axis([0,tau.max(),-1,1])

             
