[net.audio] Second reply to Charles Pearson

ark@rabbit.UUCP (Andrew Koenig) (06/28/84)

Charles pearson offers the following rebuttal to my article:

> Boy have you got it wrong.
> What ever the signal some component in an audio system gets it is
> supposed to reproduce it exactly on output (size may change, but
> the shape must remain constant).  Otherwise this is exactly what 
> distortion is.
 
> The ringing characteristics of a CD, at best, could be called
> coloring, at worst it could be called such things as 'gringe' or
> possibly (stretching a point) 'garbage'.
 
> One of the early issues of IAR Hotlines discusses how one decent
> amplifier when given a square type wave, exhibited non-flat
> characteristics on their display device.  This was tracked to,
> among other things, a capacater recharging.  The deviation on their
> display was not unlike a calcomp plotter plotting a line at 30
> degrees.  Even minor deviations from the wave form are easily perceived
> and the ones from a CD in their propaganda magazines are massive.
 
> My friends over in psycho-accoustics tell me that although you cannot
> 'hear' above frequency X, you can perceive the difference(s).
> The difference is felt, not heard.
 
> The fact that a device can reproduce any given kind of wave form is 
> of no use in evaluating any device, but the fact that it can NOT
> reproduce a given waveform is a clear indication that the device
> has clear and ever-present problems.
 
> The frequency that the comic book 'Audio' uses in evaluating
> CDs is 1KHz, not 20K or 22KHz.  This Frequency and all of its
> children fundamentals is clearly audible.

I'll deal with the points in sequence.

First, I agree with you that an 'ideal' audio component should reproduce
its input exactly (unless, of course, it is intended to transform
the input somehow, such as an equalizer, noise reduction processor,
tone control, and so on).

I also agree with you that the Compact Disc system is not an 'ideal'
audio component.  Where we disagree is on the nature and severity
of the departure from idealness.  You think that the ringing square
waves you see in the test reports indicates a basic design botch
and that they should 'get the basics right.'  I think that the design
is fundamentally correct, and the ringing square waves are an inevitable
consequence of that design.  The ONLY way to do 'better,' in a sense
that can be made rigorous, is to increase the sampling rate.

Putting it differently, if you were to examine the difference
between a true 1 kHz square wave and the output of a CD player
trying to reproduce that square wave, you would find that the
difference signal would be made up of the sum of a number
of sine waves, all at frequencies that are an odd multiple of
1 kHz, and ALL OF THEM AT FREQUENCIES GREATER THAN 20 KHZ!

I also agree with you that a 1 kHz square wave tells you a great deal,
in a single signal, about the frequency response of a component.  As
you correctly point out, tilted tops indicate a low-frequency roll-off
somewhere.  An amplifier that rolls off at 5 Hz will reproduce a
50 Hz square wave with a noticeable tilt to the top.

Similarly, the high-frequency characteristics of a component determine
whether the top of the square wave is sharp, rounded, or ringing.
For the side of the square wave to rise sharply, the frequency
response must extend out to at least 10 times the square wave
frequency.  For the corner to be rounded and the top free from
ringing, the frequency response must roll off smoothly at
6 dB per octave.

And this is why CDs ring: while the frequency response of the CD
system is flat to 20 kHz, it rolls off extremely rapidly after
that.  It has to, because it has to be at least 90 dB down at
22 kHz.  A filter that rolls off that sharply MUST cause ringing
in square waves.  There's no way around it.

You may be able to convince yourself of this by writing a little
program to plot the following function of x for varying values of n:

	double
	sqapprox (x, n)
		double x;
		int n;
	{
		double sin(), r;

		r = 0;
		while (--n >= 0) {
			double k = 2 * n + 1;
			r += sin (k * x) / k;
		}
		return r;
	}

You'll want to vary x from 0 to 2*pi.  For n=1, you'll get one
cycle of a sine wave.  It looks like this:

               *******                                                   
             **       **                                                 
           **           **                                               
          *               *                                              
        **                 **                                            
       *                     *                                           
      *                       *                                          
     *                         *                                         
    *                           *                                        
   *                             *                                       
  *                               *                                      
 *                                 *                                     
*                                   *                                   *
                                     *                                 * 
                                      *                               *  
                                       *                             *   
                                        *                           *    
                                         *                         *     
                                          *                       *      
                                           *                     *       
                                            **                 **        
                                              *               *          
                                               **           **           
                                                 **       **             
                                                   *******               

If you make n large, say 500, you get a square wave:

 ***********************************                                     
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
*                                   *                                   *
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                     *********************************** 

Finally, the 1 kHz square waves you see in the reports are bandwidth-
limited to 20 kHz, so we want to look only at the harmonics up to
and including 19 kHz.  This means that n should be set to 9, and
we get the following:

  *                               *                                      
   *  *   *   *   *   *   *   *  *                                       
     * *** *** *** *** *** *** *                                         
 *  *                           *  *                                     
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
*                                   *                                   *
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                     *  *                           *  * 
                                         * *** *** *** *** *** *** *     
                                       *  *   *   *   *   *   *   *  *   
                                      *                               *  

Look familiar?

You are probably going to say that this just proves that one should
get rid of the filters.  Unfortunately, that would cause worse
trouble.  The CD system works by sampling the input signal 44,156
times a second.  Theory says that such a system can reproduce
signals correctly as long as they do not contain any components
at greater than half the sampling frequency, or 22,078 Hz.  If
there is a component greater than 22,078 Hz, it will be 'aliased,'
or reproduced at 44,056 Hz MINUS the frequency of the signal.
In other words, if I have a 40 kHz input signal (inaudible to humans),
it will be reproduced as a 4,056 kHz signal (clearly audible).
There will be no way for the system to tell the difference,
because the two signals will create the SAME samples!

Thus it is essential to filter out EVERYTHING above 22,078 Hz,
while still reproducing a 20 kHz signal at full gain.  It is
IMPOSSIBLE to do this without a filter with a very sharp rolloff,
and such filters MUST cause ringing in square waves.

Restating it still differently:  the ringing square waves
you have seen can be expressed as the sum of a number of
sine waves, all with frequencies less than 20 kHz.  If I
feed such a signal to a CD system, it MUST reproduce it accurately,
because otherwise it cannot reproduce sine waves accurately
out to 20 kHz.  But the digital samples from this signal are
indistinguishable from those coming from a 1 kHz square wave,
because the only difference is in components higher than
20 kHz, which have been removed by filtering.  So if it
reproduces sine waves to 20 kHz and not beyond, it is going
to produce ringing in 1 kHz square waves.

If you sampled at 400 kHz, you'd get a pretty good looking 1 kHz
square wave.  Of course, it would then be too expensive to afford.
And it would still ring on 10 kHz square waves.

Incidentally, you are incorrect in saying that all the harmonics
in a 1 kHz square wave (well, you called them "children fundamentals")
are clearly audible.  Any square wave has harmonics out to infinity,
and only the ones out to 20 kHz or so are audible.