Some years ago, I started what is my harder project: I decided to measure the small change in the wavelength of light when emitted from a moving source. Being not a scientist but a simple software programmer, this happens to be a really hard task.
After a few years of errors, today I have a good idea of what I need to complete this project. I have already built some of the necessary assemblies, but honestly, they are pretty bad. I don’t mean they look bad (what they do), but they work badly. Alignment of the beams is complicated, and then due to what I think is thermal drift I have to re-align again almost every 5 minutes to keep the interferometer working. Even worst, the whole setup must lay on the floor for better stability, so all this work should be done in a very uncomfortable position. I will be lucky if I don’t get permanent injuries in the process.
So, I decided to stop, rethink the whole thing, and start again. The idea is to work every component independently and work on them until getting reasonable stability and ease of use.
What I need is to measure the small change in the wavelength of a moving source of light. To do this I use an unbalanced Michelson interferometer. This is a Michelson interferometer where its arms are different in length. This is crucial because that difference acts as a sort of wavelength amplifier. The expected change in wavelength is so small that we will need to amplify it as much as possible, so I made the short arm just a few centimeters long, and the long arm around 8 meters long (this is why the whole experiment rest on the floor). With this setup, the measured phase shift is of around 0.1 wavelengths.
Now, if you have work with interferometers you probably know the floor is not the best place to play with them. Every single vibration is perceived as a change in the interference fringes. This means must of the time you will see moving fringes instead of a stable one (as usually desired). This is bad, but my design let us get the difference between two beams, which lets us overcome this limitation.
The two beams interferometer
On a Michelson interferometer we usually shine a single laser beam. However in this particular experiment is way better to get the difference between two beams, what is, of course, useful to get rid of the pesky floor vibrations. Well, strictly speaking, the vibrations never go away, but you can take your measurements without being affected by them. Given that both beams traverse the same path in the interferometer, they both exhibit the same vibrations, and that mean they should be in phase if both wavelengths are equal. If there is a difference (what I expect) we should see a phase shift between both signals, and we can measure that difference.
The floor vibrations, however, are too fast to be seen with the naked eye, so we use a photodiode and an oscilloscope to see them. But as soon as you got this signal you will notice that they are way too slow to be useful. As crazy as this could sound, I had to increase the vibrations! A small geared motor hanging from the interferometer do the trick. Now we have sinusoidal signals on the oscilloscope, so we can measure the phase difference.
In order to analyze the so obtained waveforms, we must save them. To me, the most friendly and economical way of doing this is by using a Haasoscope. This is an open-source oscilloscope with both excellent capabilities and low cost. A Python user software let me tweak the oscilloscope to save the data as soon as possible, what in the end let me get 256 readings per second. Each reading contains 4 waveforms (2 interferometer signals, 1 slider position signal, 1 idle). Each waveform is 128 samples wide.
However, due to mechanical vibrations on the slider, the data read near zero velocity is too noisy to be useful. Filtering this data let me save only the relevant data when speed is not zero and the desired phase shift is present.
(This is a work in progress)