Okay, I can't resist. My two cents. I agree more or less with most comments, but here are mine: 1) ideally you have DC. If you are using a VNA to measure, then you can use a digital multi-meter to obtain the DC measurements and insert them. If you are using TDR, you get these points. Otherwise, if you are using a VNA, do not try to get close to DC. VNAs have very bad accuracy even in regions where they allow measurement. As most extrapolations are performed using the first few points, you do not want these points in error. typically, I would determine my frequency spacing and then just omit the DC point - usually the frequency spacing can be such that you stay away from the VNA trouble spots. 2) regarding frequency spacing, it is really about the length of your circuit. If the length is short, you can sample very coarsely. If the length is long, you will need finer resolution. I don't think about this from the standpoint of preserving frequency domain bumps and wiggles, but rather from the time-domain perspective of how much length do I need to avoid time aliasing. I use a rule of thumb of taking the length of the circuit, in seconds, take 1/2 the reciprocal of this, and then divide this by a cheat factor where the factor can be as low as 1 for very lossy and well matched devices to 5 or 10 for poorly matched, lossless devices. This gives the linear frequency spacing. 3) linear frequency spacing is easier to deal with. As pointed out, we'd like to use an IFFT to get back to time and then Chirp-Z transform to get back to frequency if we need to do some interpolation. This interpolation might only be required to combine s-parameters of many devices with different lengths and therefore different frequency resolutions. 4) I don't like the idea of the rational function fit, unless it incorporates the things that we should be concerned with. A transmission line or anything with lots of delay is a poor fit to a rational function. I've seen the idea (used in Matlab) of a single principle delay (i.e. a rational function multiplied by a complex exponential containing the delay) but this ignores the reflections. What we really want are sums of delayed rational functions. This seems complicated to figure out. 5) regarding causality and passivity, there is much made about things like this and often much more made than the problems caused. A passivity or causality violation is only a special type of error made in measurement or simulation. For some reason we are more concerned about the error when it causes passivity violation than we are when it doesn't (it's still an error, right?). I may be way off-base, so please don't think I'm trying to generalize for everyone, but if you are simulating relatively simple channels (which it doesn't sound like everyone is doing), causality and passivity violations, if small, don't really cause any problems aside from the problems with having errors. 6) We fix passivity violations, if desired, by making minimum-norm changes to the s-parameters to make the s-parameters passive. Even though it is the minimum, it does affect the s-parameters and does not change the fact that there are errors. It may even make things worse. Passivity violations are very easy to detect and the extent of the violations can be examined to see if one even wants to use the model generated - but again, we cannot detect the other errors that did not cause passivity violations! 7) I'm not sure what Vladimir was talking about regarding realness from s-parameter data. Whenever you inverse transform to get back to the time domain, you enforce realness by producing the negative frequency data as the complex conjugate of the positive frequency data provided. Vladimir, if you can explain this further, I'd be interested to know what you're thinking. Only my two-cents - I don't consider myself an expert. Pete "Dmitriev-Zdorov, Vladimir" <vladimir_dmitrie To v-zdorov@xxxxxxxx <si-list@xxxxxxxxxxxxx> om> cc Sent by: si-list-bounce@fr Subject eelists.org [SI-LIST] Re: Preparing S-Parameters for Simulation 02/25/2009 05:39 PM Hi Timothy, I agree with those already commented in this thread. The topic is interesting and virtually endless. Please find my comments below. Vladimir Going along the bullets in your original mail: #1 Ideally, we need to start from DC, support sufficient resolution and end up either where the dependence reaches its high frequency asymptotic, or at least 2-3 times the upper frequency limit of interest (that depends on desired resolution in time domain). "Sufficient resolution" during AC sweep means being able to track all important changes. For example, if we consider trajectory plot (Imag part versus Real, as it develops in frequency), it should demonstrate smooth trajectory, leaving no doubts about directory of rotations and location of turning points. Good resolution does not mean linear spacing. On the contrary, linear spacing prevents us from having equally smooth representation at low and high frequencies, and if needed, at sharp resonances. For example, with 1Mhz step, we have only 10 points per decade below 10MHz that in most cases means undersampling and inability to accurately represent low frequency portion of the data. Same step, at 1GHz or more gives us 1000 points per decade that is likely an oversampling. Some wide band systems may require up to 6-7 or more decades. We cannot accurately represent with systems with linear spacing. Logarithmic? Well, this one could be better, but there is a danger of missing important details on high frequency side, especially if the model exhibit some delay. The best strategy that we support is adaptive sampling in AC sweep that shows everything of importance without taking too much simulation efforts and disk space to store the points. Interesting, that linear spacing appeared for a reason not directly related to accuracy. Many of existing S-parameter tools perform IFFT to convert frequency into time domain responses and then use convolution to generate solution in time domain (C-tools). IFFT requires linear spacing; even if the data is sampled differently, such tools convert it into linear spacing and add interpolation errors. However, there are other tools exploiting the idea or pole-zero representation or vector fitting (F-tools). They don't care about spacing but require sufficient resolution and 'complete definition'. About DC point definition. If it is not possible to extract DC point directly, it is better to leave it missing. NEVER try to insert this point or close points manually, or by some brute force correction tools. Practically, the tools based on vector fitting are able to precisely restore DC point if there is a sufficient resolution within low frequency region, next to it. However, if there is an important portion of the dependence missing, then unambiguous restoration could be a problem. #2 When fixing causality or/and passivity, we always change the original model. There is no single way of doing corrections; they could be based on certain - different - assumptions and criteria. This creates ambiguity and difference between solutions from different 'good' tools. The model by itself should be causal and passive, as much as possible. Then, the process becomes less ambiguous. #3 Perhaps, rational polynomial approximation or vector fitting is the best cleaner. Possibly, we'll have to try different order of approximation, perhaps normalization and/or asymptotic settings if the data at DC or high frequencies is missing or not reliable. It is very important to use the interactive tool with complete visualization of every step, including control on causality and passivity. In Mentor, we have such tool. On each step, the user can visually compare solutions from different parameter choices. Finally, the cleaned up model is saved ready for simulation. Sometimes, it is useful to contact to the source of model, e.g. measurement lab. They can say that "the data above 10GHz is not that reliable". This is a useful info. Separate question is whether the Touchstone is the best way of storing models. Yes, it is an accepted standard and is supported everywhere. However, being a tabulated model - more or less precise - it is not a ready to eat thing. Some additional cooking/processing is always needed to allow time domain simulation. Not only this processing is sometimes parameter-dependent, it also takes considerable time. For example, we simulated several models described by Touchstone files with large number of ports (from 60 to 230). With hundreds of MB file size, it takes up to 15-20 minutes just to read such file. That's why for our internal use we prefer pole/residue tables to represent such models. Typically, the file size of such table is 20-40 times smaller than original Touchstone. More importantly, this model is completely unambiguous (analytical) and ready to use. #4 The inspection tool must evaluate passivity (show passivity plot), resolution (trajectory plots help a lot!). Causality is somewhat difficult to tell from the screen. Roughly, you should not observe counter-clockwise rotation on the trajectory plot, this is indication of non-causality. However, some smooth nicely looking dependencies may happen to be non-causal. We can see this as inability to find close rational fit. (Of course, we trust our tool and know that it works fine with good models). As Yuriy mentioned, symmetry of the matrix is an important indicator. Reciprocal systems possess symmetrical matrices of S, Y and Z parameters. If we know that the model is reciprocal but see asymmetry, this is an indication that the data is not precise and by evaluating asymmetry quantitatively, we can make conclusions about overall accuracy. Another criterion is "realness". As we know, the time domain response is a real function. From here it follows that real part of the dependence should be even, imaginary - odd function. Since S-parameters are bounded by norm, this implies that the odd derivatives of real part close to DC must be zero. Similarly, even derivative of imaginary part should be zero, too. This can be visually checked on the plot. If we see opposite, there is a problem with the model. >From: "Timothy Coyle" <tim@xxxxxxxxxxxxxxxx> >Subject: [SI-LIST] Preparing S-Parameters for Simulation >Date: Tue, 24 Feb 2009 12:51:34 -0500 >Hi, >I am working on a tutorial for the next issue of XrossTalk Magazine about >getting S-Parameter models ready for simulation. I see a lot of S-Parameter >models from lab measurements and simulation tools that have a lot of quality >issues (causality and passivity) and have to do a lot of clean up to make >them suitable for simulation. I have my own bag of tricks I use as well as >some good books on S-Parameter theory and application notes but I would like >to hear from other people what their approaches are or some good resources. >For some particular specifics review the list below: > >. What considerations should go into setting up a simulation tool to >extract an S-Parameter model? (bandwidth to be used, number of points, >importance of linear spacing of points, starting at DC, etc) > >. A lot of tools will automatically "fix" causal and passivity >issues or enforce them. What's the pros and cons for this? What do engineers >need to look out for when they do this? > >. What's the best way to clean up a lab measured S-Parameter model >with poor resolution? > >. What type of quality checks should you perform on an S-Parameter >model before simulating? (what do you look for in the S21 plots, do you use >smith charts, ect?) > > > >Thanks for any and all suggestions and links. > > > >Best, > > > >Timothy Coyle > >Editor In Chief > >XrossTalk Magazine > >405 Western Ave #430 > >South Portland, ME 04106 > >Tel: 617.297.2566 > >Fax: 207.510.8099 > >Email: tim@xxxxxxxxxxxxxxxx > >http://www.xrosstalkmag.com <http://www.xrosstalkmag.com/> <http://www.xrosstalkmag.com/> > ------------------------------------------------------------------ To unsubscribe from si-list: si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field or to administer your membership from a web page, go to: //www.freelists.org/webpage/si-list For help: si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field List technical documents are available at: http://www.si-list.net List archives are viewable at: //www.freelists.org/archives/si-list or at our remote archives: http://groups.yahoo.com/group/si-list/messages Old (prior to June 6, 2001) list archives are viewable at: http://www.qsl.net/wb6tpu ------------------------------------------------------------------ To unsubscribe from si-list: si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field or to administer your membership from a web page, go to: //www.freelists.org/webpage/si-list For help: si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field List technical documents are available at: http://www.si-list.net List archives are viewable at: //www.freelists.org/archives/si-list or at our remote archives: http://groups.yahoo.com/group/si-list/messages Old (prior to June 6, 2001) list archives are viewable at: http://www.qsl.net/wb6tpu