3

On the LCD screens a flash makes 2 strips of color, 2 strips of white light, and a rainbow colored strip. This latest has weirdly a pink color in it. How is it possible? The pink color is not part of the rainbow.

enter image description here

Qmechanic
  • 201,751
Kush
  • 39

1 Answers1

9

When white light is diffracted by a grating, every color gets its own spatial frequency. As soon as you are more than a small distance from the optical axis (where you have a white maximum), you will start to see the effect of multiple colors overlapping. This is further exacerbated by having an extended source - imperfectly collimated light will "smear" the light more.

The result of all this is that you will see not simply the colors of the rainbow, but mixed colors. This is actually something that can be computed with a few lines of code. You can then convert the wavelength intensities to RGB values using conversion utilities available online (for example, see spectrumRGB.m). The result (a bit of a hack... someone might want to do this more carefully):

enter image description here

But while this shows what the RGB components may look like, it doesn't really tell you what your eyes would see. But this next plot does...:

enter image description here

As you can see - the "pink" color you see can be arrived at with this simple calculation. Matlab code that I used for this:

% white light diffraction exercise
% assume diffraction pattern of the form I = cos^2( k x / lambda)
N = 400; 
% for lambda = 400 nm, assume 4 complete cycles
lambda_0 = 400;
k = lambda_0/2;
I = zeros(3,N);
x = linspace(0,8*pi, N);

for lambda = 400:800
    rgb = spectrumRGB(lambda);
    I0 = cos(k*x/lambda).^2;
    I = I + rgb(:) * I0;
end

%%
I = I / max(I(:));

figure
image('cdata', repmat(reshape(I', [N 1 3]),[1 10 1]))
axis off

%%
figure
plot(I(1,:),'r')
hold on
plot(I(2,:),'g')
plot(I(3,:),'b')
title 'RGB values of diffracted white light'
xlabel 'angle (arb units)'
ylabel 'intensity (arb units)'
Floris
  • 118,905