The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design >> Analog Design >> small signal calculation using maths software
https://designers-guide.org/forum/YaBB.pl?num=1165327749

Message started by mkaragou on Dec 5th, 2006, 6:09am

Title: small signal calculation using maths software
Post by mkaragou on Dec 5th, 2006, 6:09am

Has anyone experience with math CAD software to perform symbolic small signal calculations.

I am searching for a math tool that is able to find the symbolic solution of my conduction matrix; to perform some simplification on my equations like neglecting terms that do not contain my amplification term gm*ro without loosing the order of my transfer function; to find a pole parameter value which achieves critical damping on a secod order denominator polynom and to subsitute this value into my poles.

I have only the symbolical tool box of MATLAB available and this software has some problems with substitution and factorizing. Maybe I do not know all the tricks for proper use of this software package. So does anyone have some experience in that area?

Title: Re: small signal calculation using maths software
Post by Jess Chen on Dec 5th, 2006, 8:29am

I use Mathematica for symbolic analysis. I have also found that the abstract mathematical functions, like "Outer" and "Map", come in very handy when doing systems analysis.

Title: Re: small signal calculation using maths software
Post by Croaker on Dec 5th, 2006, 10:00am

I have used the Matlab symbolic toolbox before.  In general it just creates a big equation that isn't very useful for insights.

I do like Sapwin.  It allows you to enter a circuit and gives you a symbolic small-signal solution.  Again, the equation isn't always useful, but it's handy to be able to enter a circuit schematic.

Title: Re: small signal calculation using maths software
Post by mkaragou on Dec 7th, 2006, 5:03am


Croaker wrote on Dec 5th, 2006, 10:00am:
I have used the Matlab symbolic toolbox before.  In general it just creates a big equation that isn't very useful for insights.

I do like Sapwin.  It allows you to enter a circuit and gives you a symbolic small-signal solution.  Again, the equation isn't always useful, but it's handy to be able to enter a circuit schematic.


Yeah  huge equations are note really helpful. So the software should be capable to simplify equations by neglecting terms but only the unworthy ones.  I am searching for a tool that is able to do things like that.

Title: Re: small signal calculation using maths software
Post by mkaragou on Dec 7th, 2006, 5:29am


Jess Chen wrote on Dec 5th, 2006, 8:29am:
I use Mathematica for symbolic analysis. I have also found that the abstract mathematical functions, like "Outer" and "Map", come in very handy when doing systems analysis.


Oh that is interesting. Could you please explain of what help the functions you mentioned above are. Because I do not have mathematica and before I purchaise a new software package it would lbe nice to know if it makes sense to spend the money.

Title: Re: small signal calculation using maths software
Post by Jess Chen on Dec 7th, 2006, 1:08pm

Before I begin, let me first say that while Mathematica is very powerful, it also has a steep learning curve. I highly recommend investing in the first training course if you decide to buy it. Also, as I write this, I realize I should have mentioned the "List" function too.

As for the functions I mentioned, I first state the problem. In an RF receiver chain, several stages have programmable gain to keep the output signal at the optimal level while the input signal swings over a wide dynamic range. Let suppose the RF front end has 3 gain states while two down stream stages have 10 states each. That makes a total of 300 gain states. For a given input signal level and a target output signal level, there may be several composite gain states that produce the same gain. I call gain states with essentially the same gain,  "degenerate" gain states. Degenerate gain states do not all perform the same, some have lower noise figures while others have higher compression points. From the degenerate gain states, how do we select the "best" one?

I start by computing the composite gain, noise figure, compression point, and a label for ALL possible gain states. I then filter out those states that do not meet noise and linearity constraints. If any degeneracy remains, I select the gain states with superior noise or linearity performance. The result is an optimal set of gain states. Hopefully, the resulting gain states support the desired range of input signals. Gaps in the supported input signal levels indicate that the existing architecture does not meet end-to-end specifications. The key step in this approach is to characterize all possible gain states.

My Mathematica implemenation of this approach to RF systems design is based primarily on one Mathematica function, the Outer function. I use the Outer function to characterize all possible gain states. The Outer function is a generalization of the outer product. The outer product of two vectors, {a,b} and {c,d}, is the following matrix:

[a*c,a*d},{b*c,b*d].

The outer product computes all possible products of the components of the two vectors. Mathematica's Outer function does the same thing but is not confined to just two vectors and is not confined to just "*" as the operator. Also, the operator is not confined to scalar arguments like "a" and "c" or to scalar outputs like a*c. In fact, I replace "a" with a list comprised of {gain, noise figure, compression point, and label}. "b" would represent the same list but for a different gain state. The hyper-list {a,b,...} would characterize all gain states of the first stage. The "{c,d,...}" list would do the same for the second gain stage, and so on.  I replace the "*" operator in the outer product with a list of operators that compute composite {gain, noise figure, compression point, label} for a particular composite gain state. The composite gain function merely sums the dB of gains from each stage. The composite noise figure function applies the Friis formula for cascaded noise figure. The composite compression point comes from a simillar formula. Mathematica has another function, "List", ideally suited to iterative computations like the Friis formula. You specify a function (e.g. two stage Friis formula), a starting output, and a list of arguments. The List function then iterates through the arguments to compute the cascaded results.

I also used the "Map" function many times. Map applies a function to all elements of a list. For example, I could use the Map function to convert a list of frequencies into a list of attenuations based on a transfer function. I would "Map" the transfer function over the list of frequencies. I have not mentioned all the functions I used, only some of the key functions.

One could implement this overall approach to receiver design in Matlab, or C, or any other language but I don't think the result would be as flexible. I implemented this approach in Matlab once. Matlab is better suited for, and faster at, long simulations but in my opinion, Mathematica is better at higher levels of abstraction. In this application, the higher level of abstraction makes the code more flexible. If it's done right, adding or subtracting another stage is trivial: just add another element to the list of stages. If you want to add another parameter, just add it to the lists. If you want to add another output, like blocker level, just add that function to the function list. Nowhere in the Mathematica code did I have to use a "for, next" loop. A "for" loop would have required knowledge of the length of the chain. Since Mathematica is also a word processor, it's easy to document your work. The data visualiztion capabilities are also very good.

I have also used the Outer function to compute and track all possible mixer spurs and then flag those culprit spurs that fall into any one of a set of victim bands. In this case, string manipulation played a key role and I found the Mathematica's string manipulation capabilities superior to those found in other tools.

Again, I must warn you that although Mathematica is a very power tool for RF systems design and analysis (in my opinion), it takes patience to learn. I have not regretted the time it took me to learn Mathematica. On the contrary, once I got into it, it was fun to use.

-Jess

Title: Re: small signal calculation using maths software
Post by mkaragou on Dec 8th, 2006, 3:37am

Ok Jeff you have convinced me. I have already bought and installed Mathematica on my notebook.
Thanks for your help!

Title: Re: small signal calculation using maths software
Post by sheldon on Dec 10th, 2006, 4:30am

Mkaragou,

  If you have Mathematica, you might want to try Analog Insydes. You can
get a free demo at the home page,

http://www.wolfram.com/products/applications/insydes/

it also has an integration into the Cadence tools

http://www.wolfram.com/products/applications/insydes/new.html

I worked through the tutorial material and it seemed to worked. However, the
demo license was not enough for to get to the level I needed to be to use the
way I wanted to use it, i.e., for making behavioral models.

                                                        Best Regards,

                                                          Sheldon

Title: Re: small signal calculation using maths software
Post by mkaragou on Dec 10th, 2006, 2:15pm

Wow, this seems to be exactly what I was searching for.

Look at this!


Quote:
To cope with the extreme complexity of symbolic calculations Analog Insydes provides advanced symbolic approximation algorithms. By detecting and discarding insignificant terms large expressions or systems of equations can be reduced to simple ones that let you gain more insight into the behavior of your circuits.


http://www.analog-insydes.de/ai/symbolic/

The only thing that I do not like is the price :( If I like the demo I will contact them. Maybe they have special offers for students!

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.