Lexicon 5-2-5 Matrix Systems User Manual

Progress in 5-2-5 Matrix Systems
David Griesinger Lexicon 3 Oak Park Bedford MA 01730
Abstract
A high quality 5-2-5 matrix encoder and decoder system offers the prospect of inexpensive compatible media for multichannel sound. The advantages to the consumer, music and film producers, and broadcasters, are obvious. This paper reports on a system which offers excellent 5-2-5 codec performance, while preserving or improving the balance, frontal perspective, and spaciousness of standard stereo recordings. The decoder provides two or four independent rear outputs, which are capable of complete separation from the other outputs for a single steered sound effect, and which preserve full left/right separation during music. Decorrelated signals such as music can be panned forward and back with full left/right separation. Frontal perspective and the balance between center material such as dialog and vocals and other material is preserved through careful control of the center channel level as a function of the center content of the input signal. This paper will present a mathematical description of the matrix elements of the new decoder, and discuss some of the psychoacoustic data on which it is based.
Introduction
Although initially developed for multichannel music reproduction, matrix systems have been relegated to film sound. They are capable of much more. A preliminary design for a new matrix topology has been tested by the IRT in Munich as a 5-2-5 codec, with excellent results on a wide range of broadcast material. Although there were audible differences, the differences were perceived as small changes in localization – and were sometimes preferred to the original. We have extensively tested the new matrix with ordinary stereo music material. In almost every case the multichannel matrix reproduction of the material is preferable to a two-channel presentation. This is a wonderful way to hear new sounds from your favorite recordings, and amazing sounds from recordings which have been remixed for 5.1 channels. A high quality 5-2-5 matrix offers a Rosetta stone for audio reproduction. A single inexpensive circuit can play both encoded and unencoded music, films, and broadcast material. The advantage to the consumer is obvious – high quality multichannel recordings available on compatible CD’s, cassettes, videotapes, etc. The recordings can be played anywhere the consumer has a player, and yet on a multichannel system true multichannel audio results. Who wouldn’t want to hear multichannel broadcasts in an automobile?
Why do we need more than two loudspeakers? Research into the spatial acoustics of small rooms shows that reproduction of stereo music through two speakers is not an optimal solution, even when the listener is ideally situated. Additional loudspeakers, driven with signals that provide audible spatial components, can significantly increase the
pleasantness of the sound field, and enlarge the listening area. This is particularly true when speakers are placed along the sides of the room.
The primary improvement is in the perception of spaciousness. To see how multiple speakers can help, we can look at the perceptual origin of spaciousness. Spaciousness in concert halls and in small rooms is primarily determined by the spatial diffusion of sounds that arrive at least 160ms after the ends of strong foreground sound events. It is the spatial properties of the background sounds between notes, which determines how much we feel involved with and enveloped by music.
In a small room the spatial properties of low frequencies are primarily determined by the ratio of the lateral room modes to the back/front and the vertical modes. It is the interference between these two modal types that determines how spacious the sound is. The ratio of the two modal types is strongly influenced by the location and spacing of the loudspeakers in the room, and in how the recording was made. At higher frequencies the spatial properties are determined by the frequency of interest and the spacing between the front loudspeakers. At some frequencies even a relatively close spacing can produce substantial spaciousness, which is why ordinary stereo works at all.
However at all frequencies it is primarily the REVERBERANT portion of the recorded sound which is gives rise to the sensation of spaciousness. Thus it is possible to make a recording in which most of the instruments are pan-potted to positions near the center, and still have it sound spacious after stereo reverberation is added. In popular music such recordings are perhaps the rule rather than the exception. It is easy to show that two ordinary stereo loudspeakers in a small room cannot reproduce the spatial diffusion of a large hall or concert space. However, if the reverberant portion of the stereo signal can be reproduced through an array of loudspeakers at the sides of the listener(s) a far more satisfactory diffuse field can be created. Multiple speakers, if they are driven with independent decorrelated signals, can create a diffuse sound field both at low frequencies and at high frequencies.
A multichannel matrix audio system has two goals. First, the system should duplicate as best as possible the sound balances and localization created by the sound mixer and the producer. This should be true both for recordings that were mixed for multichannel surround and for normal stereo recordings. Second, both with five-channel material and with ordinary two-channel material the playback system should maximize the spatial diffusion of the background sound field. (A system which was compatible with the existing Pro-Logic standard would also be plus.)
The first requirement, that localization and balance should be preserved, is decidedly tricky. For example, stereo recordings are routinely mixed for reproduction without a center loudspeaker. The sound mixer mixes the center channel information equally into the left and right channels of the recording. When we reproduce such a recording over a matrix system that includes a center speaker, we want exactly the same balance as the original, but we want a substantial amount of the sound power to come from the center loudspeaker. To achieve this goal we must drive the center speaker with a signal derived
from the sum of the left and right input signals. However this sum contains not only the original center channel information, but the left and right stereo material as well. Reproducing the sum through the center loudspeaker must inevitably cause instruments located to the left and the right of the stereo image to move toward the center. The result is a loss both of spatial information and of the attractiveness of the mix. It is a goal of our matrix system to minimize this reduction in the width of the front image.
The goal of maintaining balance is also very important. It is not always possible to reproduce the original localization of a sound. However it is possible to preserve the loudness relationships between different sounds, and this must be done if the matrix system is to be compatible with two-channel stereo. We will explore these issues in detail in this paper.
The second requirement – that the reverberant component of the input signals should be reproduced with maximum spatial diffusion – can be achieved by rigorously maximizing the lateral decorrelation of the various outputs. This maximum lateral separation has been a design requirement of the Logic7 system from the beginning. The mathematics to achieve it has been steadily improving. This issue will also be explored in detail.
Matrix decoders in equations and graphics
In an AES paper in October of 1996 we presented the design of a matrix decoder that can be described by the elements of a two by n matrix, where n is the number of output channels. Each output can be seen as a linear combination of the two inputs, where the coefficients of the linear combination are given by the elements in the matrix. In this paper the elements are identified by a simple combination of letters. The previous paper described a five-channel and a seven-channel decoder. This paper will describe a five­channel decoder only.
It is obvious from symmetry that we need to describe the behavior of only six elements – the center elements, the two left front elements, and the two left side elements. The right elements can found from the left by simply switching the identity of left and right.
CL: The matrix element for the Left input channel to the Center output CR: The matrix element for the Right input channel to the Center output LFL: The Left input channel to the Left Front output LFR: The Right input channel to the Left Front output LRL: The Left input channel to the Left Side output LRR: The Right input channel to the Left Side output
These elements are not constant. Their value varies as a two dimensional function of the apparent direction of the input sounds. All phase/amplitude decoders determine the apparent direction of the input by comparing the ratio of the amplitudes of the input signals. For example, the degree of steering in the right/left direction is determined from the ratio of the left input channel amplitude to the right input channel amplitude. In a similar way, the degree of steering in the front/back direction is determined from the ratio
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.
In this paper we contrast the several different versions of the matrix elements. The earliest are elements from our 1989 patent. These elements were used in our first surround processor, and are identical to the elements of a standard surround processor in the left, center, and right channels. In our design the surround channel is treated symmetrically to the center channel. In the standard (Dolby) decoder the surround channel is treated differently, and this issue will be discussed at length later in the paper.
The elements presented here are not always correctly scaled. In general they are presented so the unsteered value of the of the non-zero matrix elements are for any given channel is one. In practice the elements are usually scaled so the maximum value of each element is one or less. In any case, in a final product the scaling of the elements is additionally varied in the calibration procedure. The matrix elements presented here should be assumed be scalable by appropriate constants.
The left front matrix elements in our ’89 patent
Assume cs and lr are the steering directions in degrees in the center/surround and left/right axis respectively.
In the ’89 patent the equations for the front matrix elements are given as:
In the left front quadrant
LFL = 1 – 0.5*G(cs) +.41*G(lr)
LFR = -0.5*G(cs)
In the right front quadrant
LFL = 1-0.5*G(cs)
LFR = -0.5*G(cs)
In the left rear quadrant
LFL = 1-0.5*G(-cs)+.41*G(lr)
LFR = +.5*G(-cs)
In the right rear quadrant
LFL = 1-0.5*G(-cs)
The function G(x) is described in the 89 patent, and specified in the ’91 patent. It varies from 0 to one as x varies from 0 to 45 degrees. When steering is in the left front quadrant (lr and cs are both positive) G(x) can be shown to be equal to 1-|r|/|l| where |r| and |l| are the right and left input amplitudes. See Figure 1 and Figure 2.
In the recent AES paper these elements were improved by adding the requirement that the loudness of unsteered material should be constant regardless of the direction of the steering. Mathematically this means that the root mean square sum of the lfl and lfr matrix elements should be a constant. It was pointed out in the paper that this goal should be relaxed in the direction of the steering – that is, when the steering is full left, the sum of the squares of the matrix elements should rise by 3dB. Figure 3 shows that the above matrix elements do not meet this requirement.
Figure 1: The LFL matrix element from the ’89 patent and Dolby Pro-Logic, scaled so the maximum value is one. Note the matrix element consists of simple intersecting surfaces. The value is 0.71 in the center of the plane, and rises to one at the left vertex. The values at Rear and Center are 0.5.
Figure 2: The lfr matrix element from the ’89 patent and Dolby Pro­Logic, scaled similarly to figure 1. The minimum value and max value is +-0.5. Note that at the center and rear vertexes the value here when combined with the values in the matrix element in figure 1 will cause exact cancellation of a strongly steered signal. Complete cancellation also occurs for signals that follow the boundary trajectory for positive values of lr – in this drawing the trajectory from center to right, and from right to rear.
The 1996 AES paper corrected the amplitude errors in figure 3 by replacing the function G(x) in the matrix equations with sines and cosines: See Figure 4.
For the left front quadrant
LFL = cos(cs) + .41*G(lr)
LFR = -sin(cs)
For the right front quadrant
LFL = cos(cs)
LFR = -sin(cs)
For the left rear quadrant
LFL = cos(-cs) + .41*G(lr)
LFR = sin(-cs)
For the right rear quadrant
LFL = cos(-cs)
LFR = sin(-cs)
Figure 3: the square root of the sum of the squares of lfl and lfr from the ’89 patent, scaled so the maximum value is one. Notice that the value is constant at .71 along the axis from unsteered to right. The unsteered to left rises 3dB to the value one, and the unsteered to center or to rear falls by 3dB to the value 0.5. The rear direction is identical to the center direction.
Figure 4: The square root of the sum of the squares of the lfl and lfr matrix elements from the AES paper, scaled so the max value is 1. Note the constant value of .71 in the entire right half of the plane, and the gentle rise to one toward the left vertex.
Improvements to the left front matrix elements
In March of 1996 we made several changes to these matrix elements. We kept the basic functional dependence, but added an additional boost along the cs axis in the front, and added a cut along the cs axis in the rear. The reason for the boost was to improve the performance with stereo music that was panned forward. The purpose of the cut in the rear was to increase the separation between the front channels and the rear channels when stereo music was panned to the rear.
For the front left quadrant
LFL = (cos(cs) + 0.41*G(lr))*boost1(cs)
LFR = (-sin(cs))*boost1(cs)
For the right front quadrant
LFL = (cos(cs) )*boost1(cs)
LFR = (-sin(cs))*boost1(cs)
For the left rear quadrant
LFL = (cos(-cs) + 0.41*G(lr))/boost(cs)
LFR = (sin(cs))/boost(cs)
For the right rear quadrant
LFL = (cos(cs))/boost(cs)
LFR = (sin(cs))/boost(cs)
The function G(x) is the same as the one in the ’89 patent. When expressed with angles as an input, it can be shown to be equal to G(x) = 1-tan(45-x).
The function boost1(cs) as used in March 1997 was a linear boost of 3dB total applied over the first 22.5 degrees of steering, decreasing back to 0dB in the next 22.5 degrees. Boost(cs) is given by corr(x) in the Matlab code below.
% calculate a boost function of +3dB at 22.5 degrees
% corr(x) goes up 3dB and stays up. corr1(x) goes up then down again
for x = 1:24; % x has values of 1 to 24
corr(x) = 10^(3*(x-1)/(23*20)); % go up 3dB over this range
corr1(x) = corr(x);
end
for x = 25:46 % go back down for corr1 over this range
corr(x) = 1.41;
corr1(x) = corr(48-x);
end
See Figure 5.
Figure 5: The Left front left matrix element in March of 1997. Note that the boost as the steering moves toward center is applied both along the lr=0 axis, and along the left to center boundary. Note also the reduction in level as the steering moves to the rear.
The performance of the March circuit can be improved. The first problem is in the behavior of the steering along the boundaries between left and center, and between right and center. As a strong single signal pans from the left to the center, it can be seen in figure 5 that the value of the lfl matrix element increases to a maximum half-way between left and center. This increase in value is an unintended consequence of the deliberate increase in level for the left and right main outputs as a center signal is added to stereo music.
When a stereo signal is panned forward it is desirable that the left and right front outputs should rise in level to compensate for the removal by the matrix of the correlated component from these outputs. However the method used to increase level under these conditions should only occur when the lr component of the inputs is minimal – that is when there is no net left or right steering. The method chosen to implement this increase in March of 1997 was independent of the value of lr, and resulted in an increase in level when a strong signal panned across the boundary.
The boost is only needed along the lr=0 axis. When lr is non zero the matrix element should not be boosted. This problem can be solved by using an additive term to the matrix elements, instead of a multiply. We define a new steering index, the boundary limited cs value with the following Matlab code:
Assume both lr and cs > 0 – we are in the left front quadrant
(assume cs and lr follow the matlab conventions of varying from 1 to 46)
% find the bounded c/s
if (cs < 24)
bcs = cs-(lr-1);
if (bcs<1) % this limits the maximum value
bcs = 1;
end
else
bcs = 47-cs-(lr-1);
if (bcs <1)
bcs = 1;
end
end
If cs < 22.5 and lr =0, (In matlab convention cs < 24 and lr = 1) bcs is equal to cs. However as lr increases bcs will decrease to zero. If cs > 22.5, as lr increases bcs also decreases.
Now to find the correction function needed, we find the difference between the boosted matrix elements and the non-boosted ones, along the lr=0 axis. We call this difference cos_tbl_plus and sin_tbl_plus. (This code is written in a matlab, where variables are multivalued vectors. It takes some getting used to.)
a = 0:45 % define a vector in one degree steps. a has the values of 0 to 45 degrees
a1 = 2*pi*a/360; % convert to radians
% now define the sine and cosine tables, as well as the boost tables for the front
sin_tbl = sin(a1);
cos_tbl = cos(a1);
cos_tbl_plus = cos(a1).*corr1(a+1);
cos_tbl_plus = cos_tbl_plus-cos_tbl; % this is the one we use
cos_tbl_minus = cos(a1)./corr(a+1);
sin_tbl_plus = sin(a1).*corr1(a+1);
sin_tbl_plus = sin_tbl_plus-sin_tbl; % this is the one we use
sin_tbl_minus = sin(a1)./corr(a+1);
sin_tbl_plus and cos_tbl_plus are the difference between a plain sine and cosine, and the boosted sine and cosine. We now define
LFL = cos(cs) + .41*G(lr) + cos_tbl_plus(bcs)
LFR = -sin(cs) -sin_tbl_plus(bcs)
LFL and LFR in the front right quadrant are similar, but without the +.41*G term. These new definitions lead to the matrix element in Figure 6.
Figure 6: The new left front left matrix element has the correct amplitude along the left to center boundary, as well as along the center to right boundary.
The steering in the rear quadrant is not optimal either. When the steering is toward the rear the above matrix elements are given by:
LFL = cos_tbl_minus(-cs) + .41*G(-cs)
LFR = sin_tbl_minus(-cs)
These matrix elements are very nearly identical to the elements in the ’89 patent. Consider the case when a strong signal pans from left to rear. The ‘89 elements were designed so that there is complete cancellation of the output from the front left output only when this signal is fully to the rear (cs = -45, lr = 0). However in a Logic 7 decoder it would be desirable that the output from the left front output should be zero when the encoded signal reaches the left rear direction (cs = -22.5 and lr = 22.5). The left front output should remain at zero as the signal pans further to full rear. The matrix elements used in March 1997, – the ones above – result in the output in the front left channel being about –9dB when a signal is panned to the left rear position. This level difference is sufficient for good performance of the matrix, but it is not as good as it could be.
This performance can be improved by altering the LFL and LFR matrix elements in the left rear quadrant. Notice that here we are concerned with how the matrix elements vary along the boundary between left and rear. The mathematical method given in the AES paper can be used to find the behavior of the elements along the boundary. Let us assume that the amplitude of the left front output should decrease with the function F(t) as t varies from 0 (left) to –22.5 degrees (left rear). The method gives the matrix elements
LFL = cos(t)*F(t) -+ sin(t)*(sqrt(1-F(t)^2))
LFR = -(sin(t)*F(t) +- cos(t)*(sqrt(1-F(t)^2)))
If we choose F(t) = cos(4*t) and choose the correct sign, these simplify to
LFL = cos(t)*cos(4*t)+sin(t)*sin(4*t)
LFR = -(sin(t)*cos(4*t)-cos(t)*sin*4*t)
See Figure 7.
Figure 7: The behavior of LFL and LFR along the rear boundary between left and full rear. (The slight glitch is due to the absence of a point at 22.5 degrees.)
These elements work fine – the front left output is reduced smoothly to zero as t varies from 0 to -22.5 degrees. We want the output to remain at zero as the steering continues form 22.5 degrees to 45 degrees (full rear.) Along this part of the boundary,
LFL = -sin(t)
LFR = cos(t)
Note that these matrix elements are a far cry from the matrix elements along the lr=0 boundary, where in the AES paper the values were
LFL = cos(cs)
LFR = sin(cs)
We need a method of smoothly transforming the above equations into the equations along the boundary as lr and cs approach the boundary. A linear interpolation could be used. In the processor used in Lexicon products, where multiplies are expensive, a better strategy is to define a new variable – the minimum of lr and cs:
% new - find the boundary parameter
bp = x;
if (bp > y)
bp = y;
end
and a new correction function which depends on bp:
for x = 1:24
ax = 2*pi*(46-x)/360;
front_boundary_tbl(x) = (cos(ax)-sin(ax))/(cos(ax)+sin(ax));
end
for x = 25:46
ax = 2*pi*(x-1)/360;
front_boundary_tbl(x) = (cos(ax)-sin(ax))/(cos(ax)+sin(ax));
Loading...
+ 28 hidden pages