Matlab code for photonic band diagram, projected band diagram for1D photonic crystal
Thanks.
Welcome bletayo,
I don't work in photonics (so proceed with caution), but I do obtain band diagrams for electromagnetic structures frequently, using transfer matrices.
I start assuming we have the transfer matrix -- if not, that's another topic altogether. Call this [T]. Now, partition this matrix into four equal components: [T_A], [T_B], [T_C], [T_D]. We express the transfer of the Bloch modes for [T_A] as
[T_A] = cosh([γ_b] * d)
where [γ_b] are the Bloch propagation constants, and d is the period of the structure you're observing. Now, [γ_b] actually represents a series of coupled solutions, so in order to extract the modal solutions, you need to diagonalize [γ_b]. You can do this with an eigenmode process, which lets you convert the above expression to:
[T_A] = [T]*cosh([γm_b] * d)*([T]^-1)
Where [γm_b] is the diagonal, modal solutions. This can be done in Matlab, "CoshGmbd = eig(T_A);" Now, you need to acosh the result and divide by d, such that
Gm = acosh(CoshGmbd)/d;
Gives you the modal Bloch propagation constants. Plotting these (usually just the imaginary component) gives you the band diagram.
Hope this helps, good luck!