COHERENCE demonstrates coherence effects

by Chuck DiMarzio Northeastern University July 2009

SYNTAX; coherence;

Contents

Multiple cavity modes in a laser -

Use 1-2 GHz for illustration because otherwise it is hard to display results for one full cycle.

!! This file may be copied, used, or modified for educational and
!! research purposes provided that this header information is not
!! removed or altered, and provided that the book is cited in
!! publications, as DiMarzio, Charles A., Optics for Engineers,
!! CRC Press, Boca Raton, FL, 2011.
!! http://www.crcpress.com
!! Other distribution is prohibited without permission.
Set parameters
fcenter=15e9;  % Center of gain line
fsr=80e6;  % Free spectral range
f=fcenter+(-12:12)*fsr;  % Frequency
ezero=ones(size(f));  % Amplitudes all 1 the first time
t=(0:1/10/fcenter:2/fsr);  % Time in seconds
if(length(t)>1e6);disp('Too many points');return;end; % Don't let me start
                                                      % a calculation that
                                                      % will run too long.
rand('twister',5489); % Initialize random number generator
%  Line above needs to be changed to prevent mlint warning.  Not sure how
%  to make the change.
%
%  Make an array of data
%
[~,f2]=meshgrid(t,f);
[t2,ezero2]=meshgrid(t,ezero);
%
% Compute the field contributions
efield=ezero2.*exp(1i*2*pi*f2.*t2);
etotal=sum(efield);
irradiance=abs(etotal).^2;  % Irradiance

%  Compute and display the mean irradiance
meanirradiance=mean(irradiance)

shorttimeindex=find(t<4/fsr/length(f));
offsetindex=find(irradiance==max(irradiance),1);
fig1=figure;plot(t(shorttimeindex+offsetindex)*1e9,...
                 real(etotal(shorttimeindex+offsetindex)));grid on;
xlabel('t, Time, ns');ylabel('Real Field');
fig2=figure;plot(t*1e9,irradiance,...
                 t([1,end])*1e9,meanirradiance*[1,1]);grid on;
xlabel('t, Time, ns');ylabel('Irradiance');
meanirradiance =
   25.1600

Chirped pulse

dtdf=-1/fcenter/fsr/2.5;  % Time delay per unit frequency (chirp)

% Compute the field contributions
efield=ezero2.*exp(1i*2*pi*f2.*(t2+(f2-fcenter)*dtdf));
etotal=sum(efield);
irradiance=abs(etotal).^2;  % Irradiance

%  Compute and display the mean irradiance
meanirradiance=mean(irradiance)
offsetindex=find(irradiance==max(irradiance),1);
fig3=figure;plot(t(shorttimeindex+offsetindex)*1e9,...
                 real(etotal(shorttimeindex+offsetindex)));grid on;
xlabel('t, Time, ns');ylabel('Real Field');
fig4=figure;plot(t*1e9,irradiance,...
                 t([1,end])*1e9,meanirradiance*[1,1]);grid on;
xlabel('t, Time, ns');ylabel('Irradiance');
meanirradiance =
   24.9933

Now let contributions be random in phase;

ezero=exp(1i*2*pi*rand(size(f)));  % Amplitudes all 1 the first time
%
%  Update the array of ezero2
[t2,ezero2]=meshgrid(t,ezero);

% Compute the field contributions
efield=ezero2.*exp(1i*2*pi*f2.*t2);
etotal=sum(efield);
irradiance=abs(etotal).^2;  % Irradiance

%  Compute and display the mean irradiance
meanirradiance=mean(irradiance)

fig5=figure;plot(t(shorttimeindex)*1e9,real(etotal(shorttimeindex)));grid on;
xlabel('t, Time, ns');ylabel('Real Field');
fig6=figure;plot(t*1e9,irradiance,...
                 t([1,end])*1e9,meanirradiance*[1,1]);grid on;
xlabel('t, Time, ns');ylabel('Irradiance');
meanirradiance =
   25.0207

Now add more modes

fsr=5e6;  % Free spectral range
f=fcenter+(-100:100)*fsr;  % Frequency
t=(0:1/10/fcenter:2/fsr);  % Time in seconds
if(length(t)>1e6);disp('Too many points');return;end; % Don't let me start
                                                      % a calculation that
                                                      % will run too long.
ezero=exp(1i*2*pi*rand(size(f)));  % Amplitudes all 1 the first time
%
%  Update the arrays
[~,f2]=meshgrid(t,f);
[t2,ezero2]=meshgrid(t,ezero);

% Compute the field contributions
efield=ezero2.*exp(1i*2*pi*f2.*t2);
etotal=sum(efield);
irradiance=abs(etotal).^2;  % Irradiance

%  Compute and display the mean irradiance
meanirradiance=mean(irradiance)

fig7=figure;plot(t(shorttimeindex)*1e9,real(etotal(shorttimeindex)));grid on;
xlabel('t, Time, ns');ylabel('Real Field');
fig8=figure;plot(t*1e9,irradiance,...
                 t([1,end])*1e9,meanirradiance*[1,1]);grid on;
xlabel('t, Time, ns');ylabel('Irradiance');
meanirradiance =
  200.9991

Interferometry example using last field: Two examples

dt=10e-12;  % Time difference between paths
dti=length(find(t<dt));  % Comput time index to shift
t1i=shorttimeindex;
t2i=shorttimeindex+dti;
e1=etotal(t1i);
e2=etotal(t2i);

fig9=figure;plot(t(t1i)*1e9,real(e1),t(t1i)*1e9,real(e2));
xlabel('t, Time, ns');ylabel('Real Field');
meane1e2star=e1*e2'/length(e1);
gamma1=meane1e2star/sqrt(mean(abs(e1).^2)*mean(abs(e2).^2));
display(gamma1);

%
dt=2e-9;  % Time difference between paths
dti=length(find(t<dt));  % Comput time index to shift
t1i=shorttimeindex;
t2i=shorttimeindex+dti;
e1=etotal(t1i);
e2=etotal(t2i);

fig10=figure;plot(t(t1i)*1e9,real(e1),t(t1i)*1e9,real(e2));
xlabel('t, Time, ns');ylabel('Real Field');
meane1e2star=e1*e2'/length(e1);
gamma1=meane1e2star/sqrt(mean(abs(e1).^2)*mean(abs(e2).^2));
display(gamma1);
gamma1 =
   0.3004 - 0.9535i
gamma1 =
   0.1051 + 0.3699i