summaryrefslogtreecommitdiff
path: root/basis_transformation.m
diff options
context:
space:
mode:
Diffstat (limited to 'basis_transformation.m')
-rw-r--r--basis_transformation.m46
1 files changed, 32 insertions, 14 deletions
diff --git a/basis_transformation.m b/basis_transformation.m
index 179e333..82945fe 100644
--- a/basis_transformation.m
+++ b/basis_transformation.m
@@ -2,20 +2,26 @@
% matrix of circular to linear transformation
% [x, y, z]' = lin2circ * [r, l, z]'
-circ2lin= [ ...
- [ 1/sqrt(2), 1/sqrt(2), 0]; ...
- [-1i/sqrt(2), 1i/sqrt(2), 0]; ...
- [ 0, 0, 1] ...
- ];
+function transformation_matrix = circ2lin()
+ transformation_matrix = ...
+ [ ...
+ [ 1/sqrt(2), 1/sqrt(2), 0]; ...
+ [-1i/sqrt(2), 1i/sqrt(2), 0]; ...
+ [ 0, 0, 1] ...
+ ];
+endfunction
+
% matrix of linear to circular transformation
% [r, l, z]' = lin2circ * [x, y, z]'
-lin2circ= [
- [ 1/sqrt(2), 1i/sqrt(2), 0]; ...
- [ 1/sqrt(2), -1i/sqrt(2), 0]; ...
- [ 0, 0, 1] ...
- ];
-
+function transformation_matrix = lin2circ()
+ transformation_matrix = ...
+ [ ...
+ [ 1/sqrt(2), 1i/sqrt(2), 0]; ...
+ [ 1/sqrt(2), -1i/sqrt(2), 0]; ...
+ [ 0, 0, 1] ...
+ ];
+endfunction
% linear basis rotation
% x axis untouched
% z and y rotated by angle theta around 'x' axis
@@ -30,10 +36,22 @@ endfunction
% rotate x polarized light by angle phi around
% light propagation axis (Z)
-function [E_field_x, E_field_y] = rotXpolarization(phi, E_field_linear, modulation_freq)
+function [E_field_x, E_field_y] = rotXpolarization(phi, E_field_linear)
% important negative frequency behave as they rotate in opposite direction
- E_field_x=cos(phi*sign(modulation_freq)).*E_field_linear;
- E_field_y=sin(phi*sign(modulation_freq)).*E_field_linear;
+ E_field_x=cos(phi)*E_field_linear;
+ E_field_y=sin(phi)*E_field_linear;
endfunction
+% transform x,y,z linearly polarized light in the lab/light system coordinate
+% to left, right, linear along z atom system of coordinate
+% atom magnetic field is along new axis Z wich is at angle theta with respect to
+% light propagation direction
+function E_field_pos_freq=xyz_lin2atomic_axis_polarization(theta, E_field_lab_pos_freq)
+ coord_transf_m = lin2circ() * oldlin2newlin(theta);
+ E_field_pos_freq.right = coord_transf_m(1,1)*E_field_lab_pos_freq.x + coord_transf_m(1,2)*E_field_lab_pos_freq.y + coord_transf_m(1,3)*E_field_lab_pos_freq.z;
+ E_field_pos_freq.left = coord_transf_m(2,1)*E_field_lab_pos_freq.x + coord_transf_m(2,2)*E_field_lab_pos_freq.y + coord_transf_m(2,3)*E_field_lab_pos_freq.z;
+ E_field_pos_freq.linear = coord_transf_m(3,1)*E_field_lab_pos_freq.x + coord_transf_m(3,2)*E_field_lab_pos_freq.y + coord_transf_m(3,3)*E_field_lab_pos_freq.z;
+endfunction
+
+
% vim: ts=2:sw=2:fdm=indent