Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Transfer matrix method
- % Author: Shuakat
- % ITMO University.
- close all;
- clear all;
- N = 1e3;
- lam = linspace(50,100,N);
- k = (2*pi)./lam;
- er_layer = [2 3];
- ur_layer = [1 1];
- len_layer = [0.5 0.5].*sqrt(3);
- k_layer = k.*sqrt(er_layer(1)*ur_layer(1));
- incW = zeros(1,N);
- refW = zeros(1,N);
- incW_tmp = zeros(1,2);
- refW_tmp = zeros(1,2);
- incW(1) = 0.8;
- refW(1) = 1-0.64;
- r = zeros(1,N);
- t = zeros(1,N);
- for i=1:length(lam)-1
- incW_tmp(1) = incW(i);
- refW_tmp(1) = refW(i);
- for j=1:length(len_layer)-1
- M11 = cos(k_layer(i)*len_layer(j));
- M12 = sin(k_layer(i)*len_layer(j))/k_layer(i);
- M21 = -k_layer(i)*sin(k_layer(i)*len_layer(j));
- M22 = cos(k_layer(i)*len_layer(j));
- S11 = M12/M22;
- S12 = (M11*M22-M12*M21)/M22;
- S21 = 1/M22;
- S22 = -M21/M22;
- incW_tmp(j+1) = incW_tmp(j)*S11 + refW_tmp(j)*S12;
- refW_tmp(j+1) = incW_tmp(j)*S21 + refW_tmp(j)*S22;
- end
- incW(i+1) = incW_tmp(end)*M11 + refW_tmp(end)*M12;
- refW(i+1) = incW_tmp(end)*M21 + refW_tmp(end)*M22;
- r(i) = incW(i+1)/incW(i);
- t(i) = incW(i+1)/refW(i);
- end;
- figure
- plot(lam,r./max(abs(r)),lam,t./max(abs(t)));
- % plot(lam,incW./max(abs(incW)),lam,refW./max(abs(refW)));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement