A signal-flow graph or signal-flowgraph (SFG), invented by Claude Shannon, but often called a Mason graph after Samuel Jefferson Mason who coined the term, is a specialized flow graph, a directed graph in which nodes represent system variables, and branches (edges, arcs, or arrows) represent functional connections between pairs of nodes. Thus, signal-flow graph theory builds on that of directed graphs (also called digraphs), which includes as well that of oriented graphs. This mathematical theory of digraphs exists, of course, quite apart from its applications.

SFGs are most commonly used to represent signal flow in a physical system and its controller(s), forming a cyber-physical system. Among their other uses are the representation of signal flow in various electronic networks and amplifiers, digital filters, state-variable filters and some other types of analog filters. In nearly all literature, a signal-flow graph is associated with a set of linear equations.

History Wai-Kai Chen wrote: "The concept of a signal-flow graph was originally worked out by Shannon Reprinted in in dealing with analog computers. The greatest credit for the formulation of signal-flow graphs is normally extended to Mason , . On-line version found at MIT Research Laboratory of Electronics. He showed how to use the signal-flow graph technique to solve some difficult electronic problems in a relatively simple manner. The term signal flow graph was used because of its original application to electronic problems and the association with electronic signals and flowcharts of the systems under study."

Lorens wrote: "Previous to Mason's work, C. E. Shannon worked out a number of the properties of what are now known as flow graphs. Unfortunately, the paper originally had a restricted classification and very few people had access to the material."

"The rules for the evaluation of the graph determinant of a Mason Graph were first given and proven by Shannon using mathematical induction. His work remained essentially unknown even after Mason published his classical work in 1953. Three years later, Mason rediscovered the rules and proved them by considering the value of a determinant and how it changes as variables are added to the graph. [...]"

Domain of application Robichaud et al. identify the domain of application of SFGs as follows: "All the physical systems analogous to these networks [constructed of ideal transformers, active elements and gyrators] constitute the domain of application of the techniques developed [here]. Trent has shown that all the physical systems which satisfy the following conditions fall into this category. The finite lumped system is composed of a number of simple parts, each of which has known dynamical properties which can be defined by equations using two types of scalar variables and parameters of the system. Variables of the first type represent quantities which can be measured, at least conceptually, by attaching an indicating instrument to two connection points of the element. Variables of the second type characterize quantities which can be measured by connecting a meter in series with the element. Relative velocities and positions, pressure differentials and voltages are typical quantities of the first class, whereas electric currents, forces, rates of heat flow, are variables of the second type. Firestone has been the first to distinguish these two types of variables with the names across variables and through variables. Variables of the first type must obey a mesh law, analogous to Kirchhoff's voltage law, whereas variables of the second type must satisfy an incidence law analogous to Kirchhoff's current law. Physical dimensions of appropriate products of the variables of the two types must be consistent. For the systems in which these conditions are satisfied, it is possible to draw a linear graph isomorphic with the dynamical properties of the system as described by the chosen variables. The techniques [...] can be applied directly to these linear graphs as well as to electrical networks, to obtain a signal flow graph of the system."

Basic flow graph concepts The following illustration and its meaning were introduced by Mason to illustrate basic concepts:

In the simple flow graphs of the figure, a functional dependence of a node is indicated by an incoming arrow, the node originating this influence is the beginning of this arrow, and in its most general form the signal flow graph indicates by incoming arrows only those nodes that influence the processing at the receiving node, and at each node, i, the incoming variables are processed according to a function associated with that node, say Fi. The flowgraph in (a) represents a set of explicit relationships:

Node x1 is an isolated node because no arrow is incoming; the equations for x2 and x3 have the graphs shown in parts (b) and (c) of the figure.

These relationships define for every node a function that processes the input signals it receives. Each non-source node combines the input signals in some manner, and broadcasts a resulting signal along each outgoing branch. "A flow graph, as defined originally by Mason, implies a set of functional relations, linear or not."

However, the commonly used Mason graph is more restricted, assuming that each node simply sums its incoming arrows, and that each branch involves only the initiating node involved. Thus, in this more restrictive approach, the node x1 is unaffected while:

and now the functions fij can be associated with the signal-flow branches ij joining the pair of nodes xi, xj, rather than having general relationships associated with each node. A contribution by a node to itself like f33 for x3 is called a self-loop. Frequently these functions are simply multiplicative factors (often called transmittances or gains), for example, fij(xj) = cijxj, where c is a scalar, but possibly a function of some parameter like the Laplace transform variable s. Signal-flow graphs are very often used with Laplace-transformed signals, because then they represent systems of Linear differential equations. In this case the transmittance, c(s), often is called a transfer function.

Choosing the variables

Non-uniqueness Robichaud et al. wrote: "The signal flow graph contains the same information as the equations from which it is derived; but there does not exist a one-to-one correspondence between the graph and the system of equations. One system will give different graphs according to the order in which the equations are used to define the variable written on the left-hand side." If all equations relate all dependent variables, then there are n! possible SFGs to choose from.

Linear signal-flow graphs Linear signal-flow graph (SFG) methods only apply to linear time-invariant systems, as studied by their associated theory. When modeling a system of interest, the first step is often to determine the equations representing the system's operation without assigning causes and effects (this is called acausal modeling). A SFG is then derived from this system of equations.

A linear SFG consists of nodes indicated by dots and weighted directional branches indicated by arrows. The nodes are the variables of the equations and the branch weights are the coefficients. Signals may only traverse a branch in the direction indicated by its arrow. The elements of a SFG can only represent the operations of multiplication by a coefficient and addition, which are sufficient to represent the constrained equations. When a signal traverses a branch in its indicated direction, the signal is multiplied the weight of the branch. When two or more branches direct into the same node, their outputs are added.

For systems described by linear algebraic or differential equations, the signal-flow graph is mathematically equivalent to the system of equations describing the system, and the equations governing the nodes are discovered for each node by summing incoming branches to that node. These incoming branches convey the contributions of the other nodes, expressed as the connected node value multiplied by the weight of the connecting branch, usually a real number or function of some parameter (for example a Laplace transform variable s).

For linear active networks, Choma writes: "By a 'signal flow representation' [or 'graph', as it is commonly referred to] we mean a diagram that, by displaying the algebraic relationships among relevant branch variables of network, paints an unambiguous picture of the way an applied input signal 'flows' from input-to-output ... ports."

A motivation for a SFG analysis is described by Chen: Partly accessible using Amazon's look-inside feature. "The analysis of a linear system reduces ultimately to the solution of a system of linear algebraic equations. As an alternative to conventional algebraic methods of solving the system, it is possible to obtain a solution by considering the properties of certain directed graphs associated with the system." [See .] "The unknowns of the equations correspond to the nodes of the graph, while the linear relations between them appear in the form of directed edges connecting the nodes. ... The associated directed graphs in many cases can be set up directly by inspection of the physical system without the necessity of first formulating the associated equations ..."

Basic components

A linear signal flow graph is related to a system of linear equationsSee, for example, However, there is not a one-to-one correspondence: of the following form:

where = transmittance (or gain) from to .

The figure to the right depicts various elements and constructs of a signal flow graph (SFG).

Exhibit (a) is a node. In this case, the node is labeled . A node is a vertex representing a variable or signal. A source node has only outgoing branches (represents an independent variable). As a special case, an input node is characterized by having one or more attached arrows pointing away from the node and no arrows pointing into the node. Any open, complete SFG will have at least one input node. An output or sink node has only incoming branches (represents a dependent variable). Although any node can be an output, explicit output nodes are often used to provide clarity. Explicit output nodes are characterized by having one or more attached arrows pointing into the node and no arrows pointing away from the node. Explicit output nodes are not required. A mixed node has both incoming and outgoing branches. Exhibit (b) is a branch with a multiplicative gain of . The meaning is that the output, at the tip of the arrow, is times the input at the tail of the arrow. The gain can be a simple constant or a function (for example: a function of some transform variable such as , , or , for Laplace, Fourier or Z-transform relationships). Exhibit (c) is a branch with a multiplicative gain of one. When the gain is omitted, it is assumed to be unity. Exhibit (d) is an input node. In this case, is multiplied by the gain . Exhibit (e) is an explicit output node; the incoming edge has a gain of . Exhibit (f) depicts addition. When two or more arrows point into a node, the signals carried by the edges are added. Exhibit (g) depicts a simple loop. The loop gain is . Exhibit (h) depicts the expression .

Terms used in linear SFG theory also include: Path. A path is a continuous set of branches traversed in the direction indicated by the branch arrows. Open path. If no node is re-visited, the path is open. Forward path. A path from an input node (source) to an output node (sink) that does not re-visit any node. Path gain: the product of the gains of all the branches in the path. Loop. A closed path. (it originates and ends on the same node, and no node is touched more than once). Loop gain: the product of the gains of all the branches in the loop. Non-touching loops. Non-touching loops have no common nodes.