I've built a Michelson interferometer which uses a webcam as screen. This setup shall measure and correct drifts in optical path difference of the two interferometer arms.

I have problems determining the resolution of the setup. So I will describe what I'm doing and my thoughts so far.

The fringe pattern captured by the camera will be Fourier Transformed, in order to get the phase information of the periodic pattern. Now when one axis is moved the pattern moves and this directly translates into the phase that can be gained by the discrete Fourier transform.

Now i want to know what the smallest change in phase is that can be measured with my camera. It has a pixel size of 3 um (micrometer) and a has a output of a 10 bit raw RGB with a S/N of 40 dB. One line has on the camera has a width of 640 pixels.

My approach to calculate the resolution of the setup is the following: I consider the amount of fringes displayed, which is about 20. So I know one fringe has the width of 32 pixels. A change of 2pi in phase needs/translates to a movement of 64 pixels on the camera chip. That means if every pixel only had 1 or 0 as a value the phase could be split in 2pi/64 steps then.

But now every pixel has a 10bit depth resulting in 1024 values instead of two per pixel. Which means - but I'm not sure here - every pixel on its own has a resolution of 2pi/1024 and then the width of a fringe divides this number again through 64, resulting in a resolution of 2pi/(1024*64). This number seem much too low for me and thats's where I'm stuck and couldn't find any good sources that might help me out.

On top of that I think there has to be a more formal way using the Nyquist theorem. Here my considerations were that I take the 3um pixel size of the camera and transform it into the 1/um space. But I'm pretty sure the 3um can only be used if the fringes were exactly that big, which they aren't (such small fringes would make the resolution very bad?). So there must be some scaling factor to the pixel size, but I'm not sure how to determine it.


1 Answer 1


Rather than directly answering your question, I’m going to suggest that you fit your data with a fitting function. Start with a 1D slice across your interferogram. Extract the phase from your fit, and determine the resolution empirically based on the goodness of fit.

You don’t really need a camera to do this. After all, you can do pretty well measuring the amplitude change at a single detector, as long as you’re sitting at the steep part of the error signal (isn’t this essentially what they do at LIGO?). The phase resolution has nothing to do with the pixel size. What matters is the change in signal you can resolve in a single detector (i.e the signal-to-noise ratio).

  • $\begingroup$ Yep. In fact modulating the interferometer and extracting the AC signal is a good way to remove biases and noise. $\endgroup$ Aug 9, 2021 at 17:42
  • $\begingroup$ Thanks! I see the fault in my considerations now. But fitting my data gives me headaches. I used a cosine, which I calculated some time before, when simulating a Michelson interferometer (where it worked just fine). Because the Intensity of the beam has some gaussian underlying i multiplicated the cosine with that. But after trying a lot of different functions I couldn't find one matching the data. My fit function in python is something like that (C+Anp.cos(k*(x+delta_x)-kx*np.cos(theta)))*np.exp(-ds/h), where everything is a parameter. My data can be seen here bit.ly/3iyetCG $\endgroup$ Aug 9, 2021 at 18:58
  • $\begingroup$ theta is double the angle a mirror is away from being perpendicular and is used for calculating the superposition of the two electric fields coming from the mirrors. I fear having overseen a much easier way of fitting $\endgroup$ Aug 9, 2021 at 19:05
  • $\begingroup$ @Radiokucker If you are feeling stymied by the changing amplitude and offset of the data, just fit to a subset of it. E.g., you could fit pretty well to the middle 5 or so fringes of your data, where there's little slope and amplitude variation. Looking at the cleanliness of your data, this should still give you a good phase resolution (just get a confidence interval on the extracted phase from your fitting software). The slope and amplitude variation come from the precise alignment and shape of your beams, which is hard to model analytically unless you work hard to make things close to ideal. $\endgroup$
    – Gilbert
    Aug 10, 2021 at 18:57
  • $\begingroup$ @Gilbert I still had a hard time fitting, but by normalising the intensity and fixing some parameters, I could get a cosine function that is quite similar to the data. The phase has an error of +- 0.2 of 55 (2pi equal 55 values in my analysis). But my r-square is only at 66%, which makes me believe that there still are some misunderstandings from my side $\endgroup$ Aug 11, 2021 at 15:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.