-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinterferometer2.m
48 lines (37 loc) · 1.14 KB
/
interferometer2.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
len = 10000;
% Parameters
lambda = linspace(1400e-9, 1600e-9, len);
freq = physconst('LightSpeed')./lambda;
w = 2*pi*freq;
k = 2*pi./lambda;
T = 1/freq(end); % maior tempo necessário par verificar toda a extensão da onda
Temp = 27;
dist = 2e-2;
dz = 0.05e-6*(Temp-27) + 0.1e-3;
z = [dist dist+dz];
t = linspace(0,T,100);
A = zeros(len,1);
for m = 1:len
wave1 = exp(-1j*( k(m)*z(1) - w(m).*t )); % short path
wave2 = exp(-1j*( k(m)*z(2) - w(m).*t )); % long path
A(m) = max( real(wave1 + wave2) ); % amplitude
end
nm = 1e-9;
figure(1)
plot(lambda/nm, A);
xlabel('Comprimento de Onda (nm)');
ylabel('Amplitude (u.a.)');
title('Interferômetro Mach-Zehnder');
figure(2)
plot(lambda/nm, db(A,'power'));
xlabel('Comprimento de Onda (nm)');
ylabel('Amplitude (dB)');
title('Interferômetro Mach-Zehnder');
axis([1400 1600 -40 10])
Temp = 27:50;
ddz = 0.05e-6*(Temp-27);
figure(3)
plot(Temp, ddz/nm);
xlabel('Temperatura (ºC)');
ylabel('Dilatamento (nm)');
title('Dilatamento linear da fibra em função da Temperatura ');