The Institution of Electrical Engineers

Joint Professional Group on Basic Electrical Theory, Units and Standards and Advances in Methods of Measurement

Lecture on

Equilibrium Coding for Pulse Code Modulation

delivered by
A.H. Reeves, O.B.E., A.C.G.I., D.I.C., M.I.E.E.,
Lecture delivered by Mr. A. H. Reeves at the meeting of the Joint Professional Group J.4 held at the Institution of Electrical Engineers on Friday 15th April, 1966, at 5.30 p.rn. (tea, at 5.00 p.m. )

Standard Telecommunication Laboratories,
Harlow 12th March, 1966.
(About 70 mins. to speak - perhaps 1 hr-40 mins. with demonstrations.)

Talk to IEE on 15/4/66 "The Equilibrium Coder"


The talk will be a glimpse into the future, where coding speed requirements may be well in excess of present normal demands. The subject is a rather new type of analogue-to-digital. convertor believed to have good possibilities at speeds of 1000 megabits per second or higher, in real time. It has feedback combined with feed forward, and needs to use only 2-terminal high-speed devices. As serious study of the high-speed modes started only in 1966, and the analysis of the nonlinear network is not yet complete, the explanations will be mainly qualitative, with only salient quantitative theory. No detailed circuit embodiments will be discussed, only possible principles.

A mechanical model will illustrate the low-speed modes in which the operation approaches normal logic. It will then illustrate the possibility of using delayed coding decisions, with accelerated decision-device rise times without external high-speed, high-gain feedback loops, to increase the speeds about five times. This will be followed by a demonstration of stabilised triCer thresholds by inertia loading.

"Stored negative feedback", a powerful method for stabilising digit eights, and giving further correction to the trigger thresholds will be discussed, using pilot-signal or stochastic inputs. Finally, high-speed sampling-gate problems will be discussed, with new solutions.

A fair knowledge of the theory and, practice, of modern coding will be assumed.

Opening Remarks

I shall be talking tonight about a principle, rather than about details of its embodiments. In my organisation we have, of course, done quite a bit of work en transforming the concept of "equilibrium coding" into circuit forms. But it is the main idea behind it that interests me most. This is nearly always my own, personal approach to a problem. I see, or think I see, a need. I then relax and ruminate about it, allowing full sway for a time to any possible solution to it that comes into my head, sensible or crazy. Sometimes I then draw blank for a bit, seeing at once that all the ideas that have come are unsound. Them comes an exciting moment, one of intense intellectual pleasure - for I just know, without proof yet, that some further idea is not only sound but that it can be a winner. I then work on it, by ordinary logical steps. This is where the hard work comes in, not in getting the idea itself - for even when you know a diamond is there, it can still be an effort to pull it out of hard ground, and cut it into shape.

To my mind, all truly creative work, even in a technical profession like ours, is an art just as much as it is a science, and we should polish and use all our modern, powerful tools of logical analysis, computer-aided and direct, in this second stage, not the first: to extract and cut the diamond, not directly to try to find it.

Though a simple way of getting higher coding speeds was the main thing that spurred the invention to be made. Owing to other priorities serious study of the equilibrium coding concept in its high-speed modes was started only in the middle of January of this year, and the complete analysis, quite difficult, is by no means yet finished. This is my excuse for not giving you rigorous formulae concerning the complicated dynamic events that can occur during the coding of a level. Instead, our demonstrator, Mr. Barton, will be showing you later on some of these movements, illustrated by the mechanical model, so that you can see them for yourselves.

Tonight, then, rather than giving you a talk in the usual way, describing work already done, I invite you to sit back and relax from the more mundane professional cares that have to govern many of us most of the time, ways of meeting specifications, cost figures, production dates and the like - and I invite you instead to listen in to an interim report on a study that has not yet reached those duller stages, but is still in the more exciting phase of being largely unexplored and wide open to any application that may need it. The equilibrium coder is exciting to me, too, for a special reason : it is a good example of what I call a true non-linear, dynamic structure - in electronic form, of true non-linear circuitry, defined here as the challenging, potentially broad interface between linear or nearly linear designs on the one hand, and digital logic methods on the other. This area so far has been somewhat neglected, mainly, I think, because of the difficulties of its exact analysis, often even in quite simple embodiments. But believe me, it is one that will reap rich rewards. So I make a plea for courage in circuitry designs. Of course we must keep our feet on the ground. But let us not hesitate too much from adventuring away from the well beaten paths, even if our exact theory does lag behind. The exact non-linear control theory of walking down stairs is quite complicated; but people have been walking about for quite a time!

Everything I say will really be quite simple. But some of my ways of putting things, now an ingrained habit, may be unfamiliar to some of you. You may find that to follow same parts of this talk you'll need to give it very close attention.

If any of you still have difficulties, even after the discussion, don't worry - for if you are really interested I shall be pleased to go into as much further detail as I'm allowed to with the visitor concerned, if you'll ring up my secretary and fix a date for you to see me in my lab. in Harlow. I'm afraid this talk will go an a little longer than they usually do -with the interspersed demonstrations, for about 1 hour 40 minutes, in fact. So if any of you want to leave before the end, please don't hesitate to do so.

As I go on you'll soon be wondering whether what I'm saying has anything to do with practical electronic coders at all. But please be patient - for I promise you that I will explain this matter, at least in outline, in several places after the first half hour or so of this talk. It is the principle of the thing that I must get over first.

Now, what is equilibrium coding? It can be described as a variety that has both feedback and feed forward, with log2 n decision devices if there are "n" quantised levels to be coded.

Next, as there are at least 57 varieties of coder already, what can this one do that others can't? Why you should believe me I don't know, as we haven't proved it yet; but it will be able to code up to at least 1 Gc. bit rates, even with present devices; and appreciably reduce the cost of meeting present closest tolerances at speeds that we can now handle (just), e.g. about 220 Mbit - rates for really good TV purposes. The need in the nearer future for that first aim is highly debatable; but I think you'll agree that the second is worth looking at.

Before we really start, another point. I suggested to our Mr. Arkell that in any notice about this talk we should say that a fair knowledge of the theory and practice of modern coding would be assumed. After trying out bits of this "on the dog", though, some of my colleagues, I feel new that the statement is all right except that I should have said the opposite: that only people with no knowledge of coders should be admitted.

I'll tell you why: it's because the quickest way of understanding the principle is to forget that you know anything at all about anything, more or less, (easy to me, for the older I get the more sure I am that I don't), and start again, from first principles. It has been suggested to me that some of you may be interested if I add a little of the history behind the idea of equilibrium coding. So I have. If it bores you, my apologies.

The Birth of the Idea

I have a simple mind. I have great respect for people who can play several games of chess at once, or can remember all the threads of a cybernetics "truth table", both accomplishments that are far beyond me. This is clear - for, by hindsight, PCM itself is so simple and obvious that it looks hardly worth patenting at all. I saw first a general principle: that energy was frittered away by indecisiveness. I saw it in the heating of a switch that has a bad contact - in the better power efficiency of Class C radio transmitters - in the act of human decision making. I saw that as far as possible the switch, the valve, the brain signal to the motor nerves should be either definitely "on" or "off". I labelled this principle: I called it The Principle of Decisive Action. It led at once to the work of me and my team on PTM, Pulse Time Modulation. We did some simple calculations on expected signal-to-noise improvements with given bandwidth increases. We made some bread boards to check. The rough proofs were quick and easy. We had got something.

Next, it became clear that we had not used the Principle far enough; for though in PTM the action of the trigger giving the outgoing pulses is decisive, time modulation by the noise could make these triggering moments decisively wrong! So the cure, still following this Principle of Decisive Action, led to PCM, which got over the remaining basic troubles.

You'll notice that at every stage the mathematics, the logical proofs, followed the concepts, not led them. This is hour my mind works - for better or worse.

The idea behind equilibrium coding came into my mind in a similar way. I had followed with interest the evolution of practical coder designs. At periods I had been supervising some of this work. I had made same contributions, on fairly usual lines. I was very pleased that the advent of the semiconductor era had made economically possible some quite complex circuits, each with its own advantages. A few years ago I was still more pleased when I saw that practical applications of PCM to the civil telephone networks was not only certain, but imminent. But I knew inside, too, that something was going wrong - for the complexity of some of the designs, for quite good surface reasons, was getting out of all proportion to the size of the real problem to be solved. It was getting like using an Atlas computer to do the household accounts. Though it was clear that integrated circuitry would before very long come into widespread use, and that with rising demands its falling price could soon justify a lot of extra transistors and diodes when really necessary, what was happening offended my engineering sense. It was inelegant,- and therefore not optimal. For high-speed working my feeling of inelegance about things was still stronger, and justified logically - for the various feedback sequential coders did net (and do not) use the coding time at all efficiently. From this standpoint the various time-counting coders were still worse. And parallel coders, though as fast as anything could be for given device elements, were so wasteful in the number of their components that they had nearly all been rightly abandoned. Some of the designs based on "forward wave" principles wars much better, in that they wasted no coding time, or very little. The most recent example of this class, the Bell Labs' solid-state 224 Mbit design, was then in its early stages. It is now an outstanding achievement of good engineering, to which I want to take this opportunity of paying my sincere respects. I am sorry that my friend Dr Mayo of Bell Labs, who was responsible for this work, has found it impossible to be here tonight, to hear me say so. Its use of the Gray code, the reflected binary, gives it nearly the speed a parallel coder would have with similar components, and in real time. But it is still in some ways a sledge hammer to crack a nut, particularly in that its operational amplifiers, eighteen in all, need very careful design and stability to meet the needed very close tolerances in the full-wave rectifier characteristics. And its speed is limited by those of transistors; if it could use only modern two-terminal devices in its high-speed parts, this coder unit proper could work a let faster. So even Gray-type coders, for high speeds, left me with that same dissatisfied feeling.

So I knew that I couldn't really rest until I or someone else had found an answer, at least in principle, that was much more elegant in its whole conception. In the principle behind equilibrium coding I have found such an answer, in the main - though there are still a few inelegant points that to my mind stick up like sore thumbs, and will make me annoyed with myself until they have been put right.

Equilibrium Coding : the Principle

I asked myself, "'What is the simplest possible concept of all that could code?" Then, "Could it use the coding time efficiently? And could it be practical with components available even now, or soon?" If I felt (not proved) three "yesses" to these questions I'd know I had get what I was looking for. The concept, with these three "yesses", came quite quickly this time.

To myself, I call the concept The Principle of Cooperation. In my private, childish language, it is "letting the apparatus do what it naturally wants to do". In more scientific terms, it means that when we use an analogue-to-digital converter we must arrange things so that we store energy internally during the process, directly, in the simplest possible way, in such a manner that when the coding is complete this stored energy, then potential not kinetic, is a minimum. This gives us a feedback coder but of a direct and simple form, the feed back loops involving merely connecting wires with nothing added. You'll see, too, that it involves a "feed forward" feature as well, for what happens at the beginning of the coding process can influence the later parts of it. I saw this most simple, elementary concept first in various mechanical shapes, some of which is shown in Fig. 1. It is a 3-digit mechanical coder with horizontal distance as the coded parameter.

The curved lines represent rails on which run three rollers of given weights. I called the curved rails the "profiles". The left-hand, largest profile is fixed. The other two I imagined as sliding horizontally without friction. Each of the two smaller profiles is connected to the roller on its immediate left by stiff, weightless rods. The smallest, right-hand roller is connected by a weightless rod to a spring with negligible mass. The right-hand end of the spring is moved in the horizontal plane, from its zero position, furthest to the right, by a distance X equal to the output from an imaginary, mechanical sampling gate, not shown on fig. 1. If

D1 = 2D 2 = 4D3,

I think you'll see at a glance that the thing has 8 stable equilibrium regions (i.e. 2m where "m" is the number of bi stables or digits - provided that the spring is not too strong, - and that with symmetrical profiles the: centre: of each of these regions represents correctly two of the possible 8 quantised values of distance X, in Simple Binary Code, when the right-hand end of the spring, with the rollers starting at positions O, O, O, is moved to the left. It's obvious, too, that at the centre of each of the 8 stable regions the total potential energy stored in the system is a minimum. A moment's thought will show you as well that when the spring's movement pushes or pulls any roller to a position of maximum slope on its profile, to a point of inflection on that curve, it will be at a point of unstable equilibrium, the next little push or pull in the same direction bringing the roller, and therefore the whole interlinked system, onto the start of an unstable region. You'll see too that if any one roller is at the centre of a stable region, then all the others must be, as well; i.e., that for any of the 2m little regions there is only one value of X, that can make the total internally stored energy a minimum (or zero, if the horizontal plane on which the profiles slide is taken as the reference point), and therefore give the system maximum over-all stability.

There is obviously a general tendency for the system to end in this condition. But equally clearly, we have to be sure for all input levels that this most stable arrangement of roller positions can always be reached, by simple means.

The first demonstration on the model will show you these 2m most stable regions. But first I'll explain why we troubled to build such models at all, - and then explain those parts of this one that we'll first be using. Note, that there are stable regions, not exact points. The mechanical bistables are "spongy", not definite "bang-bang" things like relays, or ideal triggers in logic circuitry. If you try to think of equilibrium coding bistables in these "bang-bang" terms you'll never get the true concept.

Why Mechanical Models
In my organisation we use all modern methods for studying our problems, including, of course, digital computers, both for mathematical analysis and simulation. But particularly for non-linear circuitry problems, even the most modern mathematical techniques often have severe limitations, leading for example to insoluble, non-linear, high - order differential equations even when the circuit represented is extremely simple. In my view this is a criticism of the basis on which these techniques, especially of differential equations, has been built. We live in a non-linear world. The idea that a linear relation between two parameters is the simplest, because it is the "most natural", is false. From many aspects we need to start again, on suitable non linear foundations. It need be no mere difficult - it needs new foundation stones, that's all. All we need to do is to start again. And it would be far more relevant to real life in most of its forms. Aids such as the Poincare-Liapunov graphical method, and mere recently, extensions to Volterra Expansion techniques, are often useful; but these again do not get to the real root of our difficulties. Digital computers have given us a powerful way out. But to me, at least, their results tell little of why a thing happens, only what.

Modern oscilloscopes used on breadboard circuits tell me a lot more. But a main limitation here is not in the scopes but in the breadboards. It is often difficult and time consuming to tailor the shape of some non-linear parameter at will. But if we represent it by its mechanical analogue, for example this flexible roller profile the change can be made in a few seconds. Anyway, my childish mind nearly always sees new circuit principles first as their mechanical equivalents. For these reasons I have introduced simple, mechanical models into at least one part of my area of my organisation, when I think they will be useful.

A stray visitor in this lab. of mine can be taken aback when he hears me ask one of my staff to "add a resistor in series with a flywheel". But I know that my own colleague will understand - for they are learning to think in these dual terms.

To me, this model here has been, and is still being, essential towards understanding the full potentialities of equilibrium coding,- (and also of other applications, later, of this same approach to a problem). It has had to be made better than it looks - for example, - in many cases quantitative work can be done on it to better than 1% accuracy.

It is on the lines of the diagram you've already seen in Fig.1 but it has four digits instead of three. On the model, to support the profiles we use low-friction wheels on these trolleys. To help you see the digit movements, a "0 and 1" scale has been attached to each digit, with a pointer. A "0 to 15" scale, with pointer, has been added to the left-hand trolley, to which the output of an imaginary mechanical sampling gate is applied (not to the smallest digit, as in Fig. 1). This scale, then, shows you roughly the value to be coded. (There is a more accurate scale in front of the operator.) On digits 2, 3 and 4, shaped ball bearings are used instead of rollers. A photo of a digit on its profile is on Slide 1.

The roof of the profile, is merely for mechanical stiffening. The spring of Fig. 1 has been replaced by an extra collar, on a profile, of this shape :Fig. 2

The effective weights of the rollers have been adjusted by sliding these brass pieces on their connecting rods. The restoring force due to the effective weight of the roller on its parabolic slope, from here to here, has the effect of a linear spring, while from here to here the restoring force is nearly zero. Ignore for the moment the other gadgets on the model - I'll explain there later. And think only in mechanical terms - as I said at the start, it is the principle that I must get over to you first. We'll now show the 16 most stable roller-to-profile arrangements, the middles of the 16 code positions, and the unstable regions between then.

We've new seen how the needed 16-stability system is obtained. We must new find a simple, direct way by which we can always be sure of getting to them. But first, let me illustrate the problem, on the model. You'll see that with the given parameters (fairly typical) we can code levels 1, 2, and 3 correctly, starting from zero, just by increasing the sample. But when we try to code level 4 it stops on 3, nothing happening until level 6 which is correct. You'll see how levels 4 and 5 are missed and that after a wide gap level 6 is coded correctly. Things go wrong again at level 8, nothing happening till we get to level 12 , which comes on correctly.

It can be shown, starting from zero input, that when any level comes on that in Simple Binary Code ends with more than one '0', there is an analogue error of half the decoded value of the last code digit that ends in a 'l' and that smaller errors must occur for a given number of quantum steps afterwards.

At this stage of the history of the equilibrium method, I asked myself this question - Is there any perfectly general principle that could be used to get over these difficulties? - Yes, there is - and my colleague Ken Cattermole, who at that time was working with me on the method, used one application of it on an early breadboard before I'd spotted the needed general concept. It's so simple as to be obvious and commonplace - as old as the hills. It is used for a rather simpler result every time that someone levels sand in a tray by shaking it - or again for a simpler result, in demagnetising a piece of iron. The thing we have: to overcome in achieving that 'arrangement of lowest internal potential energy' is the backlash, coercively, 'internal friction' of the system components, of the bistable or multistable elements inside it.

Basically, all we have to do after applying the sampling gate output, is to give the digits of the mechanical analogue, or of the actual electronic circuit, a suitable 'shake-up'. What should be the waveform of the "shaking" wave, that in equilibrium coding we now call the 'ripple'? One or two salient points about it are clear. For example, when the inertial or other delay-causing terms can be neglected, the optimum form is an AC wave, not sinusoidal in all cases, having a frequency Nf/2, where f is the bit rate and N is an integer not less than 1, and having an envelope decaying exponentially. We have calculated the design formulae for such cases, for both linear and segmented-law companding types. It was not difficult. And we have made successful breadboards, for 24-channel speeds, of 16-level tunnel diode types, using no transistors except at the audio inputs, and a 128-level linear breadboard and with transistor-pair bistables, proving the feasibility of tolerances at least equal to competitive designs.

The method used in that 128-level equilibrium coder, calculated and developed mainly by my colleague Mr. McNeilly here, works well for the low spends for which it was designed - the bit rate of about 1.6Mc needed for 24-channel, commercial speech operation. But because each digit, each bistable, has to settle down to within a planned fraction of a quantum step before the next smaller can start to code correctly, as with normal sequential coders, in a strictly programmed manner, each digit settling down before the next smaller can do so, coding time is wasted. We could never exceed the speeds of sequential coders in that way. So it does not use that needed further 'general principle'. So I shall not dwell on this past work. As I said at the beginning, it is the future of the method that is of real interest - its applicability to really high speeds. The low speed operation approaching normal logic circuitry, does not itself give a true clue to the main principle that we need to find, grasp and use. That principle, that I know was there to be found, at first without proof, is ideal, both in its simplicity and its power as a solution. So naturally we had to find it, and in its true form; it would have been foolish and lazy in the extreme to have allowed ourselves to be put off by anything second best, when we knew that that ideal concept was buried, right under our noses.

The tray of sand gave a further clue - for in shaking it we gain next to nothing by using a waveform that is mathematically exact. Neither dots it matter if in the process some of the larger grains, or pebbles, continue to move, by their momentum, after a particular half-cycle of oar slaking wave has stopped. There are built-in feed back loops causing built-in tolerances, wide ones, with nothing added to get them - they cost nothing. Now we're getting nearer!

The sand tells us several other things as well. First, if some part of it is sticky, has high 'coercivity', at same portion of our shaking wave we must use bigger amplitudes, high enough to over-ride that higher 'coercively'. Second, that this higher amplitude shake must occur somewhere at the beginning rather than at the end - for if we finish with it we may end up with a ripply surface as bad as before we started doing anything at all.

Further, if we gave the sand a shake of just one period, of high amplitude, to cater for the sticky part of it, and then followed by just one or two periods at low amplitude, to make sure that the more mobile parts of the sand do not end up by being displaced again into a ripply surface, we should probably end up with the mediumly coercive sand region more or less unaffected, and unsmoothed - our aims only partly achieved. All this is familiar, too, when demagnetising a piece of iron. We must have enough gauss in the centre of our 50-cycle solenoid to overcame the maximum coercively parts of the iron; but if we remove our watch too quickly we are liable again to have an imperfect result.

In language that may help some but is not precise enough for others, closer thought will reveal this that to cater optimally, in speed and accuracy of result, for all our sand particles, our shaking wave must continuously decay in amplitude, and at the moment after which each sand particle no longer moves back again its 'decision point', the shaking wave must have an amplitude within a tolerance not wider then half the amplitude of the backlash of the smallest grains in its immediate vicinity.

Now there is a further vital point revealed by that 'closer thought'. Returning to the mechanical model for optimal high-speed working. The decision moments of each digit must not be pre-planned and fixed, but must be allowed to vary, in a slightly complex manner according to the analogue input level - as we'll show on the model later. To cater, then, for all planned fractions of all levels, we must either
(a) make our ripple wave contain so many periods that there will always be at last one of correct amplitude for every level: or
(b) have a much smaller number of ripple half-periods, (down to m, if there are m digits),
and for each digit make the ripple amplitude self-adjusting, so that for all decision instants of any digit its amplitude: is sufficiently correct. Method (a) is clearly out, for high speeds - for it would need a linear, not exponential decay rate, with sn/2 periods, where n is the number of linearly spaced levels, and s is that fraction of a quantum step that is the design tolerance. Method (b) looks difficult to achieve - but such is the elegant simplicity of the 'general concept' needed here - one that we have had the good luck to unearth, without much effort, not to manufacture - that we've found we can in fact achieve it quite easily, requiring almost no additions or changes except ones of adjustment. We believe too, that the same will apply to practical electronic versions. The self-adjusting action can take place only when the inertial or other delay-causing terms in the relevant equations start becoming limiting factors to the coding speeds, i.e. when it is needed, not when it is not.

I can't yet give you rigorous proofs of every claim I am now making. The analysis is by no means complete - which is perhaps not surprising as it was started by parts only of two men, on January 15th of this year. It is not very easy. You'll not be surprised to hear that the relevant differential equations have no solutions, except in special cases, (while I'm sure that a new kind of mathematics could do it easily!).

Now we'll show you how, in equilibrium coding, a decision device may be slowed down by interial forces so much that when we increase the coding speed by a factor of up to about 3 it could not possibly code properly by a strictly sequential process, while still doing so correctly by this equilibrium method. But first, let's examine its mode of operation when the coding speed is not too high for sequential methods. In these circumstances it can easily be shown that there is an optimum adjustment, in the absence of delay-causing terms, if the ripple wave has the form aeat.R, where R is an AC wave of constant frequency, which in the simplest mode is sinusoidal, but may have any shape provided that it is single-peaked. The log damping must have an integral value. Its highest permissible amount gives a 50% loss of amplitude per half period where its frequency is half the bit rate. If "a" is correct, and the damping is half this amount, the operation is sequential, and the decision time of the mth digit is then on the mth positive or negative half-period of the ripple, according to which way the ripple starts.

We'll new show this on the model. The flywheel, acting as a rotational pendulum, with the large copper bar in the magnetic field, makes a damped tuned circuit to supply the "ripple".The sample will be applied at your left hand end. Take the first swing past zero as the first ripple half-period.

(Demonstrate Levels 8 and 10, and one request.) (Bottom gear - Wts. on)

You'll have noticed that the decision times of the digits followed the simple, fixed law that I stated. The exact time-constants of the bistables (e.g. between their 10% and 90% points) didn't matter, as they were small enough compared with the bit period.

We'll now look at level 8 again, but this time at its lower end, near its balance point with level 7.

(Demonstration - 8/7, just on 8)

The behaviour was as before.

Now see what happens if we raise the bit rate, and the ripple frequency. We may have to try five or six times before we get just what I want to show, - as the mechanical "noise", though small, is not zero. We'll wait for a good one, coding only just on level 8 ... Note particularly the behaviour of the largest digit - the one on your left ... What I want to show you is that the model still codes correctly, though no longer in a strictly sequential mode at all.

(Demonstration 8/7, at balance) (Wts. on middle gear)

It coded correctly, with about the same sample input as before. But you'll have seen that strict times for the digit decision points were not kept. If I could reduce the mechanical noise far enough (which I can't) I could show you still more clearly what happens in the limit, where the analogue input is only just far enough from the balance point between levels 7 and 8 as to need the total coding time available before the largest digit settles down, i.e. the time before the ripple swing becomes less than "q", (where"q" is the quantum step), and so becomes of no further use to us. It may be worthwhile to go into some detail here as this is a vital point. The input sample, acting through the smaller digits first (though not necessarily in strict sequence) brings all these smaller digits to their "on" positions, giving the code for level 7. The remainder is taken up by the roller in the bottom, level region of the "spring" profile, which becomes displaced from its initial position, towards your left. Digit 1, the largest, is still in position 0.

The first half-period of the ripple, adjusted at an amplitude 4q + B (I'll define and explain B in a moment) pushes all the rollers up the left-hand edges of their profiles, and forces the digit 1 roller (on your left) very slightly beyond its point of balance at the top of its profile, by an amount equal to dq - B, where dq is the amplitude excess of the sample over the exact level 8, and B is the sum of the amounts by which all the smaller rollers, including that of the "spring", are pushed up their "on" position slopes.

The displacement B acts similarly to that of a non-linear spring, connecting the ripple from the low-impedance driving flywheel to the trolley that pushes the roller on the largest digit. In combination with the mass inertia of that trolley, the trolley of digit 2, the second largest, and with the horizontal restoring force on the large-digit roller due to its effective weight on its slope, it gives a low-pass filtering action. The result is a needed value of B that depends not only on the amplitude of the first swing of the flywheel and the exact input level, but also on the partially integrated effect, against time, of the above restoring force. Thus the larger the mass on digit 2 trolley the smaller will be the displacement of digit 1; and the larger the time lag between that displacement and the movement of the flywheel.

As I've said, the adjustments are such that on the first swing of the ripple, Digit 1 comes to a momentary halt just past its point of balance, its halfway position. The parameters are also such that after this halt, if the ripple wave then changed fairly quickly to zero and stayed there, digit 2 would stay in code position 1, and digits 3 and 4, and the spring roller, would return to their zero settings. (The adjustment needed is not a difficult one to get, if the noise is low enough). If the peak of the digit 1 profile is exactly at the midpoint horizontally, we then have an exact balance (with perfect digit profiles) of digit 2 against the half-max. of digit 1, each having a value of 4q, leaving digit 1 displaced only by dq from its midpoint. Digit 1 roller would then accelerate, e.g. exponentially at the start, down its slope towards its "1" position, displacing the spring roller along its horizontal region in its negative direction, from the central point on that horizontal region, where it starts. When the spring roller has reached the extreme negative end of that region (that we call the "pseudo-digit"), what happens next depends on how much energy the mass attached to digit 1 roller has then accumulated. When we define the shape of the largest profile by
if that energy has been large enough to allow digit 1 to reach a point on its slope where
-w1 f1'(x1)
Ws f's(xs),
(where Ws is the effective weight on the spring roller before being brought to a halt by the opposing horizontal force from the "spring", then the digit 1 roller will continue to move towards its code 1 position, finally arriving there, where after a small damped oscillation it stays. For small values of dq this cannot happen, so it will stick at a small value of off-balance towards its position 1. But if instead of bringing the ripple to zero at the end of its first swing, we arranged things so that when dq is zero digit 1 overswings by 2q, and used ripple decay on digit 1, per period, of 3dB approx., that ripple on digit l would decay to q/2 by the end of the coding time of 4 periods. We set things , too, so that the average DC on digit 1, due to the ripple, is zero. Then if dq is zero, and the bistable time-constant of digit 1 (from, say, its code value 4q/2 to 7q/2) lies within certain fairly wide limits compared with the bit period, the system will end in either code 1,0,0,0, or 0,1,1,1, depending on the integrated noise curing the coding time. In the absence of friction the code will never end as, 1/2 ,1,0,0, where it started; the ripple on digit 1, before it decays too much, will always be enough to prevent digit 1 from sticking near its point of balance .

If now we set dq at a small value, above the effective integrated noise level, the digit on the average therefore being slightly away from its balance point, the sign of dq will decide whether code 1, 0, 0, 0 or 0,1,1,1 is obtained.

The important fact we now get is this; that if we arrange things so that the 'critical digit' for any analogue input level fairly quickly reaches it point of balance, and then oscillates round that balance point by a decaying amplitude while keeping on a slope that continues to steepen with the displacement off balance, until that oscillation has been reduced to u/2 where 'u' is the design tolerance on the quantised level spacings. We can achieve these tolerances with wide limits on the digit bistable time-constants, on the ripple waveform, and on the triggering thresholds. The further away a digit is from being 'critical', i.e. followed by all zeros if at position 1, and by all is if at position 0, the shorter the time before it has settled to within 'u' of its final value. So the system is self-adjusting. But we shall go into this a little more fully when ire consider speed factors.

It needs a little time and thought to grasp this vital point clearly. I would be pleased to explain in my Harlow lab to anyone really interested. It should be possible to go up to a decay factor of 6dB per bit (and ripple) period without contravening the principle. It has shown success on the model up to about 4.5 dB.

For simplicity, and to save time, I've left out a number of finer points, in the theory even as far as are know it, and concerning the needed adjustments. But I think that what I have said, and still say, will be enough to show the salient features.

There is one further point used in the model and later on in electronic versions, that is worth mentioning here. It is an example of what I call the 'billiard ball' principle.

The top line of the figure shows a roller at the left-hand trough of its profile. Here is a mass m1 moving towards the roller. Then after the impact, if the roller collects energy E,
E = wy + m2v2/2,
where 'w' is the weight of the roller of mass m2, 'v' is its scalar velocity, and 'y' is its vertical displacement above its trough position. If E is enough just to take the roller to the top of the profile, its balance point, at height 'h' above the trough, then E must be equal to wh, as v is then zero. This is the triggering point - and if the mass m2 has left the roller, on its return swing (as in the third line), then the triggering threshold is in terms only of the impact energy it needs to collect in order to rise by height h, and is otherwise independent of the shape of the profile.

As we use the model there is a compromise, as there is no sharp impact, but a finite, short time interval while contact is made. So the triggering point depends on the throw of the roller rod and the profile shape, particularly distance X0, as well as on the energy collected. But the result is that with inertia on the roller arm the trigger threshold can be markedly less dependent on the exact profile shape than without that inertia - another little example of what we have found in the general equilibrium coder concept - that it uses difficulties rather than avoids them. At the end of my talk we'll try to show you on the model the effect at one level region of greatly increasing the time-constant, of the largest digit only. I can't do it at once, because it needs some rather lengthy and tricky changes in the set-up of the apparatus.

Speed Increase by Delayed Decisions

I shall now explain how the equilibrium coder principle can give coding speeds nearly as fast as a parallel coder with similar components. To do this we'll leave the model for a few moments and speak more generally. In present-day practical high-speed coder designs there are a number of speed-limiting factors. First, the sampling gate. With modern 'charge storage' diodes to supply the opening wave for the gating bridge itself, square enough sampling output waveforms have already been obtained which, by my estimate, could give coding speeds even now of up to about 250 Mbits, and with accuracies of one part in several thousand. But it takes careful design and good engineering to do it - and careful selection of the bridge diodes, which are therefore more expensive. The chief troubles, apart from the bridge balance, are very high-frequency ripples on the sampling-pulse trailing edges, which it takes careful layout and impedance matching to get over. The 'hold' problem, too, gets more acute as the frequency is raised, as smaller 'hold' capacitors have to be used (e.g. about 100pF), which for a given price have worse tolerances on leakage time-constants.

Next, tolerances on the effective digit weightings. I say 'effective' weights, because it is the tolerance on the weighting current or voltage that can be switched on or off in the time available that matters. This tolerance is at present usually set by speed limitations of transistors, which are already being pushed in speed, in my view, almost beyond the basic useful limits of this type of device. There always comes a point beyond which it pays us better to find a radically now approach, rather than to spend exponentially more and more money in trying to scrape the last drop out of the earlier barrel.

Of course the ideal here would be to use no extra devices at all to put the digit weights on and off - which the equilibrium coder can do for us.

In feedback, strictly sequential coders, the usual speed limiting factor is something else, the settling time of the high-gain, wide-band amplifier needed in the feedback loop, to over-ride threshold changes at the first stage of the logic. We are main limited by the time-constants of 3-terminal devices, the transistors in it, so much so that these coder types are now accepted to be 'out' for truly high speeds.

Gray coding, by reflected binary methods, is a good way out - the best achieved so far, for high speeds with high level numbers and really close tolerances. But here again transistor speeds set a speed limit - for to meet the very close tolerances needed in the full-wave rectifier characteristics - at each step, for every digit - a high gain, wide-band transistor amplifier in each feedback loop is used, because we don't know of any other satisfactory way of meeting such tolerances. So reflected binary designs may be out, for the very highest speeds. (I say 'may' - there could be solutions not yet thought of.) But if we are left with some kind of sequential, or partly sequential design. - or any design in fact, that relies on a decision device to tell us whether an analogue value is above or below a threshold value - there must always remain a quite basic speed factor - the time-constant of the decision device itself. It's true that even now we could use tunnel diodes, for example, with time constants, defined between the 10% and the 90% points, of a small fraction of a nanosecond as equilibrium-coder decision devices in the strictly sequential modes then working if necessary at not less than about 1/3 of that speed, (I'll explain later), which would be quite enough for some time to come. But if instead of doing that we could allow the decision device, at the limits, to have a time constant 5 times as long, we could gain signal-to-noise ratio, in terms of power, by about that same figure of 5 - quite important in practical coders. (I've no time to explain that calculation now - it comes from super-regenerative-amplifier theory.)

As I've implied, the answer here comes from a more efficient use of the available coding time, to give in this respect the same advantage as a parallel or reflected binary coder.

In Fig 3 the abscissa shows the time axis, and the ordinate the voltage axis of the movement of an electronic decision device (the exact type doesn't matter), when it starts from a value near its point of balance, its dead centre.

Let its voltage v between (A to B) be Vo2at.
So t = (1/a)1og2(V/V0).
When it has reached amplitude B, where B = q.2m -2 where q is the quantum step,
let its energy be dissipated during fixed time T0 towards voltage C.
is the voltage from which the dead centre to its 0 or 1 position, the digit's half weight.
The total tine the digit, the bistable, takes to come to rest is T=(1/a)1og2((q.2m-2)/v0)+T0
If it starts from q/2, than T = (1/a) log22m-1=(m-1)/a
giving a total time of (m-1)/a+T0

If the level code is, say, the border line between code 1000000 and 0111111, the largest digit is the critical one, - so as we've already seen, all the decisions can be made together in the last time slot. So the total coding time (m-1)/a +T0 which in the limit can equal Tc, the total coding time available.

If T0 is, say, 2/7 of Tc, then (m-1)/a can be 5/7 of Tc.
By conventional programmed logic, (m-1)/a > Tc/7
If there were no other limiting factors we should thus get a speed increase of 5 by the equilibrium method. If the code is of the form 1000100/1000011, for example, (region of balance) 5/7 Tc can be (m-3)/a, as the largest bistable now starts from +/- 2q instead of +/- q/2. This allows the needed three time slots fir digit 5, now the critical one, to make its decision.

The same argument applies generally. Thus there is a speed increase in this respect of 5 at all levels, for a constant tolerance in terms of q.

The fact that by various means, not just this one, we can get this result is not surprising - for consider what a human operator does when he uses a chemical balance. Assume he cannot see the sample to be weighed, and that his box of weights contains binary values. He starts with the largest weight in his box. He notes which way the pointer starts to move.

If he sees that he has not put in enough weight, but that the balance pointer moves very slowly, unless he is a lunatic he doesn't then add his next largest weight, but tries adding one that is several binary steps smaller. He observes and uses two parameters, not just one, so saving unnecessary steps in his weighing process - unlike usual sequential coders, but like the equilibrium variety.

High-speed electronic equilibrium coders.

We are naturally not devoid of ideas as to how to apply equilibrium coding in practice at the very high speeds of which I firmly believe it is capable. But this work is not yet complete enough to be discussed in detail. Neither have we had time yet to protect our ideas about it fully by patents. So you'll excuse me if I go into this part only in outline. As each bistable comes to its 'on' position from its 'off', it must tend to switch all the other digits that are then 'on' to 'off', and vice versa. This must occur directly by a voltage or current change in some common impedance. Therefore, for bistables with N-shaped current/voltage characteristics, as in tunnel diodes, voltage must be the coded parameter, the bistables being in series, while with Z-shaped characteristics, as with pnpn types, it is current that must be coded, the bistables being in parallel.

Passive and active bistables

There are two main classes of bistable devices, "active", and "passive". A child's see-saw with its centre of gravity above its fulcrum, a coherent magnetic domain showing a single region of hysteresis-loop re-entrancy, a single electron having two stable spin directions in a magnetic field, and the digits of this model are examples of the passive type. Tunnel diodes, Schmidt triggers at a bistable setting, pnpn junction devices, cold-cathode gas tube elements, etc., are in the "active" class. The first difference is that active bistables require an external power supply to keep them bistable - while passive types do not, as their bistable action depends only on internal forces. A second difference is that active types, taking energy from the power pack, can give free oscillation unless prevented,- while with CD supplies, passive types cannot. But if free oscillations are prevented, e.g. by frequency-selective damping, to a first approximation the same theory, for our purpose, can apply to both types. Remembering that we are approximating we shall now look at the parameter correspondences between a digit on the model and a high-speed electronic equilibrium coder digit both in outline, in their simplest forms. Let us choose N-shaped devices, e.g. tunnel diodes.

For highest triggering speeds the tunnel diodes and their leads must, of course, have small (though not necessarily minimum) inductance, leaving the CR factors as the chief limits on these speeds. They are then lossy, in all regions of their characteristics. But our theory, and our interpretations of results on the model, have not yet gone far enough for us to predict faith any precision what equilibrium coders would do with that type of digit. To find out on it directly, we'd need to add, and probably will add, magnetic damping to the rollers, like that on the flywheel. So to correspond to the present model we'll assume that internal energy losses in the bistables are important only at their end stops when pushed appreciably past their 0 or 1 code positions, the remaining losses being due to energy transfers to the adjacent members. For all or most N-type devices this would need some deliberate inductance loading. We don't think that this assumption will make much difference to the over-all behaviour.

I can't give you a proof of this today; it is on the borderline of our present knowledge. But later on I know I shall be able to, I'm afraid my subconscious computer is faster than my conscious processes!

Here's another important point: on quite basic grounds, nothing can be bistable unless it stores energy. So to realise properly the parameter relations we must not look just at the usual load-line curves of the N-shaped devices, but see where this storage takes place.

There are several ways of doing this, simply, but only approximately. Fig 4 shows a tunnel diode, TD, suitably biassed via a resistor R. If i2, V is the current through and voltage across TD,and V1 is the voltage across C3, and i1 is the current through L2, the total energy E stored within the dotted square is
C2V2/2 + L2 i12/2 + C3V12/2.
To be compatible with the mechanical model, E must be the same at both code positions, when static. From this we get
(ia2-ib2>)/(Vb2-Va2) =( C2 + C3)/L2
for this condition; where suffixes "a" and"b" apply to the "0" (low voltage) and "1" code positions respectively. Let us arrange this; it is easy.

If now the switch is closed momentarily on the battery (assumed to have a voltage higher than Va or Vb), and then left open, C3 will receive an additional positive charge (via Ll and the blocking condenser Cl), causing the current through L2 to start rising, to (say) i3, from its starting value i2, its stored energy rising to L2 i3 2. During the same short period, Vl will rise to (say) V13, increasing the stored energy in Cl to ClV132. When the switch is re-opened the total energy El (say gained by Cl plus Ll will keep il rising for a time. If El has been enough for il to charge C2 to the triggering point of TD, V will start increasing further by the trigger action and will settle at Vb. If not, V will start falling and will resettle at Va.

It is the "billiard ball" principle again. When static at any of the three eqm, positions, there must be a factor that we'll call Ed, the dynamic energy that corresponds to the mu2/2 term in the model. (If we changed "V" of the mechanical case to "u", to avoid confusion). At an equilibrium point, one of these three positions, Ed must therefore be zero. This means
Ed = (L2(i12-i22)+C3(V12-V2)/2, and
The coded parameter is the voltage "V".

We can now make this table (fig 5)

Now go back to figure 4. The part of the circuit shown as L, C branching to L 2 and C 3, is the electronic counterpart in this case of a "spring" roller on its profile (without the pseudo digit) that we already talked about.

Practical electronic equilibrium coders.

As I've already explained, I'm not allowed yet to give you any details of our ideas on practical, high speed, electronic equilibrium coders. I'll simply say that we (or I, at any rate) firmly believe that we can do it.

I say again that 1 Gc. bit rate should be attainable, with a useful number of levels and useful tolerances, even with present-day components. A shorter-term application would be for a TV coder with reduced cost.

As to the ripple wave, 6dB decay per ripple and bit period, merely as an example, would give an input volume range of 60 dB, with a ripple frequency of 1 Gc., and a 10-digit code. There is no difficulty about supplying such a wave, with present solid-state devices, at the right power. Reed diodes, or gallium-arsenide Gunn Effect devices, might be the best. Or of course, if you won't be terribly shocked by the idea, it could easily have been done by valves even in 1940!

If the tunnel diodes have steep "end stops", i.e. steep current/voltage characteristics each side of their free bistable parameter swings, - either in themselves, or by adding suitable, back biassed pairs of straight diodes in parallel across them, - they can easily be over-driven into speeds much faster than their pure triggering modes. In equilibrium coding, this over-driving action, can take place to some extent on all the digits at times before the critical digit takes its decision. With correct design the resulting reduction in over-all coding speed can be almost negligibly small, if the right bistable devices are chosen.

As to the high-speed sampling gate, I have already made one or two remarks. The best solution of all of course, would be to eliminate it altogether. I have an idea that with equilibrium coding we can do that; but it would involve a further invention, that we've only just begun to think about.

Stored Negative Feedback

I'd wanted to give a few details of a powerful method, again quite obvious, for automatically stabilising the digit weighting values, by slow feedback loops and ordinary logic, the voltage or current to be fed back being obtained stochastically from the normal signals in operation. I'm sure of this one; I have no doubt that it will work. As I've said already, the problem, by usual means, of meeting weight tolerances is quite difficult at very high speeds. And equilibrium coding, in its present form, does nothing to help us on this point.

The "slow loop" method can also stabilise further the threshold tolerances. But there is no time for it tonight.

Now we'll try to shoe you the last demonstration on the model, the effect of greatly increasing the bistable time-constant. We can show it only on one digit, the largest. We've replaced the one you saw before, with the roller on the largest profile, by this big "see-saw" contraption, which has its centre of gravity adjustably above its knife-edge fulcrum. In this may we can have much more inertia; now rotational, with very small fiction. The thread attaching the rod from digit 2 to the see-saw acts as an extra impedance, in series with that given by the "spring" roller at the other end.

By means of the small magnets, one on the moving arm of the see-saw, others fixed near it at suitable positions, acting in combination with gravity, we can get any law of displacement v. restoring force that we could ever reasonably want. At the moment gravity is the predominating factor.

We'l1 show you the: dead-centre region between levels 7 and 8. What I want you to note, particularly, is this: that the result is correct, at either 1000 or 0111, even when the see-saw uses nearly the whole coding time (4 ripple periods), to make up its mind.

I've come to the end now. I hope I have not only interested some of you in the idea of equilibrium coding itself, but perhaps more important, given some of you for the first time an inkling of the fascination, the sheer pleasures of working in the true non-linear circuitry field, which is as challenging as it will be rewarding: - If I have not, the fault is mine.


This talk and these demonstrations could not possibly have been given as a solo effort.

Before I sit down I want to thank quite a number of my colleagues fore their help, both tonight and for their scientific work that made it possible. In particular, Mr Joe McNeilly, the project leader of the team concerned, Mr Paul Barton, our demonstrator tonight, Mr Roger Manship, our viewgraph operator, and Mr Fred Hiles, responsible for the difficult task of organising and supervising the transport of the rather delicate apparatus that you have seen.

Mr Chairman and Gentlemen, I thank you for your attention and for your patience.