In[]:=
Clear["Global`*"](*clearallMMvariables*)
In[]:=
SetDirectory[NotebookDirectory[]](*setworkingdirectory*)
In[]:=
gauge=0.250;(*linepairgaugespacing[lp/cm]*)k=2Pigauge;(*spatialfrequency[cm/cycle]]*)
In[]:=
SqWave[x_,a_,x0_,b_]:=aSign[Sin[k(x-x0)]]+b(*squarewave*)
LPGdata=Import["LPG 07-1.txt","Table"];(*simulatedLPGdata*)
In[]:=
{times,values}=Transpose[LPGdata];
In[]:=
timesinbetween=DeleteDuplicates[Mod[MovingAverage[times,2],2Pi/k]];
In[]:=
x0=MinimalBy[Table[{x0,Norm[values-Table[SqWave[x,1,x0,0],{x,times}]]},{x0,timesinbetween}],Last][[1,1]]
Out[]=
2.5
In[]:=
ffit=FindFit[LPGdata,SqWave[x,a,x0,b],{a,b},x]
Out[]=
{a0.0145495,b0.0236}
In[]:=
Show[ListPlot[LPGdata,PlotStyle->Red],Plot[SqWave[x,a,x0,b]/.ffit,{x,-8,+8},PlotStyle->Blue]]
Out[]=