You will create a MATLAB implementation of the passive encoder
given by the block diagram in Figure 1.
The encoder block diagram shows four input signals: Left,
Center, Right, and Surround. These are audio signals created
by a sound designer during movie production that are intended
to play back from speakers positioned at the left side, at the
front-center, at the right side, and at the rear of a home
theater. The system in the block diagram encodes these four
channels of audio on two output channels, Lt and
Rt, in such a way that an appropriately designed
decoder can approximately recover the original four channels.
Additionally, to accommodate those who do not use a surround
sound receiver, the encoder outputs are listenable when played
back on a stereo (two-channel) system, even retaining the
correct left-right balance.
The basic components of the encoder are multipliers, adders, a
Hilbert transform, a band-pass filter, and a Dolby Noise
Reduction encoder. If you wish to implement Dolby Noise
Reduction, refer to Dressler. The
other components are discussed below.
The transfer function of the Hilbert Transform is shown in
Figure 2. The Hilbert Transform is an ideal
(unrealizable) all-pass filter with a phase shift of
-90
°
-90
°
. Observe that a cosine input becomes a sine and a
sine input becomes a negative cosine. In MATLAB, generate a
cosine and sine signal of some frequency and use the
hilbert function to perform on each signal an
approximation to the Hilbert Transform. (Why is the Hilbert
Transform unrealizable?) The imaginary part of the Hilbert
Transform output (i.e.,
imag(hilbert(signal))) will be the
-90
°
-90
°
phase-shifted version of the original signal. Plot
each signal to confirm your expectations.
For the band-pass filter, design a second-order Butterworth
filter using the butter function in MATLAB.
Create four channels of audio to encode as a Pro Logic
Surround Signal. Use simple mixing techniques to generate
the four channels. For example, use a voice signal for the
center channel and fade a roaming sound such as a helicopter
from left to right and front to back. In MATLAB, use the
wavread and auread functions to
read .wav and .au audio files
which can be found on the Internet.
"Doug course at UIUC using the TI C54x DSP has been adopted by many EE, CE and CS depts Worldwide "