A tool for simulating linear electronic networks

In the past, I did quite some electronic engineering with audio circuits. I designed filters, amplifiers, equalizers etc. Usually, these circuits were based on 'linear' components and the design was done on the basis of idealized linear components, such as resistors, capacitors, opamps.

There are quite some software packages for simulating electronic circuits, but these are quite complicated and usually contain a database of many real-life components and are quite 'heavy' on a small computer system. What is missing is a simple program, which allows one to draw a simple scheme with some idealized components and getting a frequency and phase plot of the scheme over a specified range. This is where this program tries to fill a gap.

The networks program builds up a system of linear equations in the frequency domain (in fact, the Laplace domain) and solves this set of equations for each node in the scheme. The solution is obtained as a rational transfer function of the frequency (better: Laplace complex frequency s), with the node voltage as function of input current or input voltage. When this function is available, then it is easy to obtain an amplitude and phase plot as function of frequency.

The download archive for the program is: matrix-20050423.tgz

The program is completely self-contained. All linear algebra and interpolation mathematics is included in the file. Extensive build instructions are available in a README file in the archive. The program is tested extensively under Linux, but it can also be compiled on a Windows system with the Cygwin development environment.

The archive file contains the following:

  • clinpack: A robust package for solving linear systems of the form Ax=b, with A and b complex matrix and vector. This is a C-implementation of a small part of the LINPACK package.
  • eispack: A robust package for solving the generalized eigenvalue problem Ax=λBx, using the QZ-algorithm. This code is not used in the networks program, but it is included here, because it can be used to find the poles and zeros of the transfer functions of the linear network. My intention is to include that functionality in a later version of the networks program.
  • networks: The actual source code of the networks program. It contains code for generating PostScript files for the amplitude and phase plots. Inside this directory there is a docs directory, which contains detailed information on how to use the program.

back to main software page

back to top of page