id, that we're going to build our telephone quantizer using the creative compandor (of Figure 4.18). The issue then becomes how to choose a G(.) that gets a good performance for most any possible Px (x). We'll begin by considering the performance measure of SQNR. As you may recall (and you can check back if you don't), SQNR corresponds to SQNR mse (4.44) Source Coding and Decoding: Making it Digital In the case of a compandor, with inputs between [-Xmax,Xmax], we can use equa- tion (4.43) for mse, and now the SQNR equation becomes SQNR (x-x)) (4.45) Now, from this equation, is there some way we can make the performance (SQNR) independent of px(x) ? If we can somehow choose G(x) SO that the integral in the denominator equals a constant times the integral in the numerator, then the integrals cancel, and I get SQNR independent of Px(x) That's just what we wanted. To get the top integral and bottom integral to cancel, we just set G(.) according to (assuming xm=0) (4.46) G(x)= (4.47) G(x)=K.log.(x)+C (4.48) While this result makes sense mathematically, I'm now going to take a few lines to show you that this result also makes good common sense, too. We want to keep the SQNR (ratio of input power to error power) constant. So when big values of X (high power) come in, we G(x) = log x want to have big values of quan- tization error; and when small Large values of X get smooshed to values of X come in (low input smaller range power) we want to have small values of quantization error. This Small values of X will keep a constant SQNR. Let's get mapped to see how the G(x) we chose this very big range above, a log function, creates this. We'll use Figure 4.20, a graph of G(x), to help. First, consider big values of X (high power); when big values of X come in, a look at the G(x) of Figure 4.20 tells us that big Small values Large values values of X are mapped to a small range of values in G(x). In the overall quantizer/compandor, Figure 4.20 Graph illustrating G(x) = log X Chapter Four this small range of G(x) then passes thro