of the amplitudes of the sum and the difference of the input channels. We will not discuss
the method for determining these steering directions in this paper, although Logic7
differs from standard decoders significantly in how this is done. These issues will be
covered in another paper. We assume that the steering directions have been determined.
In this paper we will represent these directions as angles – one angle for the left/right
direction (lr), and one for the front/back (center/surround) direction (cs). The two steering
directions are signed variables. When both lr and cs are zero the input signals are
unsteered – that is, the two input channels are uncorrelated.
When the input consists of a single signal which has been directionally encoded the two
steering directions have their maximum value. However under these conditions they are
not independent. The advantage to representing the steering values as angles is that when
there is only a single signal the absolute value of the two steering values must sum to 45
degrees. When the input includes some decorrelated material along with a strongly
steered signal, the sum of the absolute values of the steering values must be LESS THAN
45 degrees.
|lr| + |cs| <= 45 degrees.
If we plot the values of the matrix elements over a two-dimensional plane formed by the
steering values, the center of the plane will have the value 0,0 and the legal values for the
sum of the steering values will not exceed 45. In practice, due to the behavior of the non-
linear filters it is possible for the sum to exceed 45 – but we try to minimize this overrun.
The mathematics presented here for the matrix elements is well behaved during overruns.
However, when we graph the matrix elements we arbitrarily zero the values when the
legal sum of the input variables is exceeded. This allows us to directly view the behavior
of the element along the boundary trajectory – the trajectory followed by a strongly
steered signal. The graphics were created by Matlab – which insists on labeling the axis
incorrectly. In the Matlab axis the unsteered position is 45,45 (actually 46,46). Hopefully
this will not be overly confusing.
Previous designs for matrix decoders tend to consider only the behavior of the matrix to a
strongly steered signal – that is the behavior of the matrix elements around the boundary
of our surfaces. This is a fundamental error in outlook. When you study real signals –
either film or music – you find that the boundary of the surface is very seldom reached.
For the most part signals wobble around the middle of the plane – slightly forward of the
center. The behavior of the matrix under these conditions is of vital importance to the
sound. When you compare our elements to previous elements one can see a striking
increase in the complexity of the surface in the middle regions. It is this complexity
which is responsible for the improvement in the sound.
Such complexity has a price. Our original (1987 – see the 1989 patent) design was simple
to implement with analog components. The new elements are designed to be almost
entirely described by one-dimensional lookup tables, which are trivial in a digital
implementation. Designing an analog version with similar performance will not be easy.