After you get the S-parameters, you will need to convert them to Transfer Matrix parameters. For 2-port networks, they are also referred to as the ABCD parameters.
Then, you will have:
[V1; I1] = [A B; C D]*[V2; I2]
1: input port
2: output port
For convertion from S-parameters to ABCD-parameters you can use any microwave book, e.g., Pozar...
You also know that:
[V2;I2] = [V1;I1]*exp(-j*k*d) //assuming exp(j*w*t) time dependence. I think CST is using this time dependence,too
then:
[V1; I1] = [A B; C D]*[V2; I2] = exp(+j*k*d)*[V2;I2]
aha! exp(+j*k*d) are the eigenvalues of your [A B; C D] matrix!
then, calculate them in matlab using 'eig' command, take the natural logarithm by 'log' and divide to complex imaginay 'j'. that yields k*d = K (bloch wave number)
note: you will need to repeat this process for each freq point in your sweep. for a two port system, you will have two eigenvalues, therefore you will have two bloch wave numbers at each frequency. If the system is reciprocal then w(k)=w(-k) (the dispersion diagram will be symmetric)..
as far as i know, there are no built-in functions for calculating these dispersion diagrams... so you will need a little coding of yours. i hope this helps everyone interested..