def G1Michelson_to_G1Sagnac( FT ) : L = 16.6782 f = FT.s1.Offset1 + FT.s1.Cadence1 * np.arange( FT.s1.data.shape[0] ) fdict = { 'Offset1' : FT.s1.Offset1 , 'Cadence1' : FT.s1.Cadence1 } Xdata , Ydata , Zdata = FT.s1.data , FT.s2.data , FT.s3.data e1 = np.exp( - 1j * 2 * np.pi * L * f ) e2 = np.exp( - 1j * 4 * np.pi * L * f ) e3 = np.exp( - 1j * 6 * np.pi * L * f ) A = 1 - e1 + e2 B = 1 - e1 - e2 + e3 alphadata = ( A*Xdata + e1 * ( Ydata + Zdata ) ) / B betadata = ( A*Ydata + e1 * ( Zdata + Xdata ) ) / B gammadata = ( A*Zdata + e1 * ( Xdata + Ydata ) ) / B alpha = AS.Coarsable( alphadata , **fdict ) beta = AS.Coarsable( betadata , **fdict ) gamma = AS.Coarsable( gammadata , **fdict ) SagnacFT = AS.ShortTermFT( alpha , beta , gamma ) return SagnacFT
def FracPhase_to_FracFreq( FT ) : f = FT.s1.Offset1 + FT.s1.Cadence1 * np.arange( FT.s1.data.shape[0] ) fdict = { 'Offset1' : FT.s1.Offset1 , 'Cadence1' : FT.s1.Cadence1 } phase1data , phase2data , phase3data = FT.s1.data , FT.s2.data , FT.s3.data a = 1 / ( 1j * 2 * np.pi * f ) freq1data = phase1data * a freq2data = phase2data * a freq3data = phase3data * a freq1 = AS.Coarsable( freq1data , **fdict ) freq2 = AS.Coarsable( freq2data , **fdict ) freq3 = AS.Coarsable( freq3data , **fdict ) freqFT = AS.ShortTermFT( freq1 , freq2 , freq3 ) return freqFT
def G1Sagnac_to_GmSagnac( FT ) : L = 16.6782 f = FT.s1.Offset1 + FT.s1.Cadence1 * np.arange( FT.s1.data.shape[0] ) fdict = { 'Offset1' : FT.s1.Offset1 , 'Cadence1' : FT.s1.Cadence1 } G1adata , G1bdata , G1cdata = FT.s1.data , FT.s2.data , FT.s3.data e3 = np.exp( - 1j * 6 * np.pi * L * f ) Gmadata = ( e3 - 1 ) * G1adata Gmbdata = ( e3 - 1 ) * G1bdata Gmcdata = ( e3 - 1 ) * G1cdata Gma = AS.Coarsable( Gmadata , **fdict ) Gmb = AS.Coarsable( Gmbdata , **fdict ) Gmc = AS.Coarsable( Gmcdata , **fdict ) GmSagnac = AS.ShortTermFT( Gma , Gmb , Gmc ) return GmSagnac
def GpretdiMichelson_to_G1Michelson( FT ) : L = 16.6782 f = FT.s1.Offset1 + FT.s1.Cadence1 * np.arange( FT.s1.data.shape[0] ) fdict = { 'Offset1' : FT.s1.Offset1 , 'Cadence1' : FT.s1.Cadence1 } Xdata , Ydata , Zdata = FT.s1.data , FT.s2.data , FT.s3.data e2 = np.exp( - 1j * 4 * np.pi * L * f ) G1Xdata = ( e2 - 1 ) * Xdata G1Ydata = ( e2 - 1 ) * Ydata G1Zdata = ( e2 - 1 ) * Zdata G1X = AS.Coarsable( G1Xdata , **fdict ) G1Y = AS.Coarsable( G1Ydata , **fdict ) G1Z = AS.Coarsable( G1Zdata , **fdict ) G1Michelson = AS.ShortTermFT( G1X , G1Y , G1Z ) return G1Michelson