todd@nbisos.UUCP (Todd Wilson) (05/03/86)
[My appologies if this article has already been posted to the net. Upon posting, got 'file system full', and this article was not added to net.analog here. If you find three copies of this, it's because I'm not sure if my second posting had been relayed off our system before all news files were wiped off.] > Everyone talks about the wonders of oversampling in their CD players, but > I have yet to hear as coherent explanation of what oversampling actually is. Not implying that this is a "coherent explanation", but following is my understanding of oversampling: In a CD player utilizing digital filtering, the digital filter can be considered the oversampling device (oversampler). The stream of 16 bit words that have been constructed from the data read off of the disc, before and after having been subjected to error correction and error con- cealment, is flowing at a rate of 44,100 words per second (44.1 K) for a given channel. This 44.1 K stream of data is presented to the digital filter's input. The digital filter is sampl- ing it's input at a rate four times greater than this (with 4 X Oversam- ling) for a 176.4 K rate. Each word of the 44.1 K stream is sampled four times by the digital filter such that the input stream of the digital filter is formatted as follows (read right to left): W4 W4 W4 W4 W3 W3 W3 W3 W2 W2 W2 W2 W1 W1 W1 W1 **OR** Each word of the 44.1K stream is sampled one time and zeros are entered as the remaining three samples for that given period. The digital filt- er input stream would appear as follows: 0 0 0 W4 0 0 0 W3 0 0 0 W2 0 0 0 W1 I won't discuss much of the differences in results when using each of these methouds. I don't know which of these is commonly used by manufac- turers of CD players. I do prefer the first approach because it does give some interpolation between inputted samples (in addition to the filtering function) due to the implementation of the digital filtering. The digital filter's output stream is at a 176.4 K rate. > I have heard that it is a method of error correction, This process does not correct errors, but will help some in filtering high frequency components of 'ticks' resulting from poor error conceal- ment. Unrecoverable errors (mis-read words off of disc that cannot be corrected) must undergo error concealment attempting to substitute accep- table values for missing words. Some methouds used in error concealment are 1) muting (convert missing value to 0), 2) repeating [?] (convert missing value to most recent correct value), 3) interpolation (substitute missing value with the average of the previous and following values), and 4) use of polynomial algorithm. The methouds of concealment are listed in order from most to least likely in causing audible 'ticks'. Error concealment is performed while the data stream is still at the 44.1 K rate and before oversampling. > that the buffer to the A/D doesn't run dry during misreads, and a number of > other seemingly absurd ideas. (I think you mean D/A converter.) Certainly is an absurd idea. The D/A converter will ordinarily always have an input to convert to an analog voltage level, even if the input is considered erroneous. The digital filter discussed above, will demand the D/A to make 176.4 K converts/sec corresponding to the output data stream rate of the filter. > My best guess is that it refers to the > process of interpolating data points between the recorded data, providing > a higher effective pseudo-sampling rate, Although I do not know of application of this is any product, a data interpolator could be considered an effective oversampling device. Consider a case in which the interpolator takes four samples of each word in the 44.1 K stream. The interpolator could take the mean average of each group of four inputs from the effective inputted 176.4 K rate. Note the following diagram illustrating this: W4 W4 W4 W4 W3 W3 W3 W3 W2 W2 W2 W2 W1 W1 W1 W1 {M--------M}{J--------J}{G--------G}{D--------D}{A--------A} ------N}{K--------K}{H--------H}{E--------E}{B--------B} --O}{L--------L}{I--------I}{F--------F}{C--------C} A=(W1+W1+W1+W1)/4 B=(W1+W1+W1+W2)/4 C=(W1+W1+W2+W2)/4 D=(W1+W2+W2+W2)/4 E=(W2+W2+W2+W2)/4 F=(W2+W2+W2+W3)/4 G=(W2+W2+W3+W3)/4 H=(W2+W3+W3+W3)/4 I=(W3+W3+W3+W3)/4 J=(W3+W3+W3+W4)/4 K=(W3+W3+W4+W4)/4 L=(W3+W4+W4+W4)/4 M=(W4+W4+W4+W4)/4 : : The algebraic expressions above represent the values of each word outputted from the interpolator. Notice that there will be four outputted values for each of the words in the 44.1 K stream, giving an output rate of 176.4 K. Also, notice that the output at A, E, I, and M are equal to the words in the original 44.1 K stream, and that the three values between are linearily interpolated points between each original word value. (This interpolator can also be considered as a four tap, FIR digital filter characterized by a wide, square impulse response. ___+---+___ As it's impulse response is symetrical, no phase distortion will be introduced.) > Is anyone SURE of what > over-sampling is, what it REALLY does for you, and how this extra data (if > any) is generated without causing further distortion? I would love to know. Oversampling in itself, does nothing for us. The oversampling device is what gives us advantages. Oversampling digital filters as well as interpolators can be considered to minimize quantitization distortion (giving smoother transistions between any two originally sampled values). Digital filters have the advantages of filtering in the digital domain without stability problems and added noise distortion typical of analog filters. Also, if the digital filter's impulse response is symetrical, it will introduce no phase distortion throughout the entire intended audio range. It is possible to have an oversampling system that is of no prac- tical value. This would be a system that simply took four redundant samples of each original sample from the 44.1 K stream. This would give a data stream at a 176.4 K rate, but every four words in a row would be identical. This would require a faster D/A and sample-hold with little appearant benefeit. Bye Now ***** I would have prefered having this discussion on net.dsp. ***** -- ...{allegra|hao|ucbvax}nbires!nbisos!todd(USENET)Welcoming your flames :-)ingly!