Example #1
0
    def retrievePhase(self):
        y1, A1 = self.initiateMatrix1()
        results1 = np.linalg.lstsq(A1, y1)
        ajsodd = results1[0]
        A1tA1inv = np.linalg.inv(np.matmul(np.transpose(A1), A1))
        n_p = y1.size - 1
        ste1 = np.sqrt(results1[1] / n_p * np.diagonal(A1tA1inv))

        deltaphi = fs.deltaPhi(self.N, self.deltaZ, self.F,
                               2 * self.pupilRadius, self.lbda, self.dxp)
        y2, A2 = self.initiateMatrix2(deltaphi)
        results2 = np.linalg.lstsq(A2, y2)
        ajseven = results2[0]
        A2tA2inv = np.linalg.inv(np.matmul(np.transpose(A2), A2))
        n_p = y2.size - 1
        ste2 = np.sqrt(results2[1] / n_p * np.diagonal(A2tA2inv))

        js = np.append(self.oddjs, self.evenjs)
        ajs = np.append(ajsodd, ajseven)
        ajsSte = np.append(ste1, ste2)

        Ixjs = np.argsort(js)
        result = {
            'js': js[Ixjs],
            'ajs': ajs[Ixjs],
            'ajsSte': ajsSte[Ixjs]
        }  #,'wavefront':phase}
        return result
Example #2
0
    def retrievePhase(self):
        y1,A1 = self.initiateMatrix1()
        results1 = np.linalg.lstsq(A1,y1)
        ajsodd = results1[0]
        deltaphi = fs.deltaPhi(self.N,self.deltaZ,self.F,2*self.pupilRadius,self.lbda,self.dxp)
        y2,A2 = self.initiateMatrix2(ajsodd,deltaphi)
        results2 = np.linalg.lstsq(A2,y2)
        ajseven = results2[0]

        js = np.append(self.oddjs,self.evenjs)
        ajs = np.append(ajsodd,ajseven)

        Ixjs = np.argsort(js)
        result = {'js': js[Ixjs], 'ajs': ajs[Ixjs]} #,'wavefront':phase}
        return result
    def retrievePhase(self):
        y1,A1 = self.initiateMatrix1()
        results1 = np.linalg.lstsq(A1,y1)
        ajsodd = results1[0]
        
        deltaphi = fs.deltaPhi(self.N,self.deltaZ,self.F,2*self.pupilRadius,self.lbda,self.dxp)
        
        if all(np.abs(ajsodd*1e9*self.lbda/2/np.pi) < 5e-2): #if all ajsodd are smaller than 1e-3nm then the phase is purely even.
            print 'phase purely even'
            y2,A2 = self.initiateMatrix2_2defIm(deltaphi)
        else:
            print 'mixed phase'
            y2,A2 = self.initiateMatrix2(ajsodd,deltaphi)
     
        results2 = np.linalg.lstsq(A2,y2)
        ajseven = results2[0]

        js = np.append(self.oddjs,self.evenjs)
        ajs = np.append(ajsodd,ajseven)

        Ixjs = np.argsort(js)
        result = {'js': js[Ixjs], 'ajs': ajs[Ixjs]} #,'wavefront':phase}
        return result
Example #4
0
import numpy as np
import fs
import matplotlib.pyplot as plt
import phasor as ph
import PSF as psf

pupilRadius = 1.6e-3
lbda = 0.6375e-6
F = 80e-3
pxsize = 5.3e-6
N = 400
dxp = lbda * F / (N * pxsize)
deltaZ = 3.19e-3
jmax = 15
deltaphi = fs.deltaPhi(N, deltaZ, F, 2 * pupilRadius, lbda, dxp)

j = 4

jspresent = np.array([7])
ajspresent = np.array([10e-9 / lbda * 2 * np.pi])

js = np.linspace(1, jmax, num=jmax)
ajs = js * 0.

for ij, j in enumerate(jspresent):
    ajs[js == jspresent[ij]] = ajspresent[ij]

P2Vdephasing = np.pi * deltaZ / lbda * (2 * pupilRadius / F)**2 / 4.
a4dephasing = P2Vdephasing / 2 / np.sqrt(3)