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

