The most common cause of non-causal data is insufficient resolution. If this is the case increasing the sampling rate will resolve this issue. Non-causal data means that the response precedes the input therefore has negative delay this is not possible for real systems. One possible reason that you are obtaining non-causal data is that you may be using logorithmic sampling which steps over certain frequencies. Try to use adaptive sampling and try to increase the resolution. If you want a complete explanation of non-causal data please go to AppNote 10029 on SupportNet. This AppNote explains causality in greater detail and other typical effects that may cause non-causality. If you are still having issues with your S-parameter model I suggest you open up a service request and we will get back to you as soon as possible.
Thanks for the information. It is very helpful indeed.
I solve the problem by playing with the frequency ranges of the model. Increasing the upper limit from 20GHz to 30GHz solves the "non-causal" problem. However, converting s-parameter model into fitted-pole model shows "non-passive" problem. Looking closer at fitted-pole model in touch-stone viewer, the passivity plot goes negative at very low frequency. Then I increase the lower cut-off freqency from 0.1MHz to 100MHz, and regenerate the s-parameter model, then convert to fitted-pole model, everything seems fine now. I have to say, this is a very tricky job.