Phil Lucht Math & Physics Archive
Home / Math and Physics Files / Math / Spectral Theory Book / Edits done 2003 re L3

Chapter 6

DOCX · 73.1 KB
Open DOCX file

Chapter 6 of Phil's spectral theory book, in a 2003 edits folder. It defines the autocorrelation function and works the square pulse example. It derives the Wiener-Khintchine relation and applies it to an infinite pulse train, linking power to Fourier series coefficients. It then averages over an ensemble of pulse trains with random complex coefficients to get their spectral density. The text seen is only the start, and equations are partly dropped.

AI-written summary; may contain errors. This description is approximate.

Extracted text (machine-read; may contain errors)
Chapter 6: Statistical Pulse Trains 6.1 The Autocorrelation Function. This is a very simple idea which is often made to seem complicated. Suppose you have a reasonable function x(t). Define the autocorrelation function of x(t) as follows: r x(t) (6.1.1) where complex conjugation has been applied to the first instance of x under the integral. Usually x(t) is real, so this does not matter, but we want to derive general results valid for complex x(t). The integrand is the starred function evaluated at time t' times the same function evaluated at later time t'+t. Some texts might define the above with an extra overall "normalizing" constant factor; we leave it as shown. A simple reflection property follows from the above definition (use t" = t' + t ): rx*(-t) = rx(t) (6.1.2) This property of a function of time directly implies this fact for the Fourier Transform of the function Rx()* = Rx() (6.1.2) meaning that the spectrum of r x(t) is real, even though x(t) may not be real. We are more used to seeing the combination of (6.1.2) and (6.1.2) in the reverse direction, that is, when x(t) = x(t)*, we have X(-) = X()* . Why do we put the * on the first term in (6.1.1) above? If we put it on the second term, we get that Rx(-) = | X() |2 in place of the desired result (6.1.4) below, so there is no option here, the * has to go on the first term as shown, that is, on the untranslated term. See Lee & Messerschmitt page 58 equation (3.56) for support on this issue. They like to present the autocorrelation function as E[ X(t+) X*(t)]. Although we have not yet mentioned statistics and randomness, one could easily imagine the following situation. Suppose x(t') is some sort of random function ("noise") that takes values in the range -1 to 1. It seems likely that for a value of the separation t that is larger than some small value, you might get rx(t) = 0. The vague argument would be that there is no "correlation" between x(t') and x(t'+t), so the product of these two functions ought to be pretty random, and a sum of random numbers in the range -1 to 1 ought to be zero. Even in this case, you can see that the result is not zero if t = 0, since you are then summing a positive quantity. In fact, rx(0) is the area under x(t)2. (a) Autocorrelation function for a Square Pulse. Before going any further, let us compute the autocorrelation function for some simple case we are familiar with. A good candidate is x(t) = a square pulse of width  and amplitude A. As in (9.1), xpulse(t) = A [ (t + /2) - (t - /2) ] You can easily do the above integral (6.1.1) to get the answer, but it is very obvious what the answer is. You are multiplying a box times a box shifted by t. Where they overlap, the integrand is A2. The boxes only overlap if the absolute value of shift tis less than the width  of the pulse. If this is so, the size of the overlap is -|t|. If |t| is larger than , there is no overlap, so the integral is 0. Thus, rpulse(t)  (-|t|) (-|t|) = (A2 ) [ 1 - |t|/ ] (-|t|) (6.1.3) This is a very simple result. At |t| = 0, the autocorrelation assumes its maximum value (A2 ). As |t| increases, the autocorrelation linearly decreases until it reaches 0, and then beyond that it stays 0. (b) The Spectral Density Connection: Wiener-Khintchine If we Fourier expand the three functions of t in (6.1.1), we find that, even with complex x(t), Rx() = | X() |2 (6.1.4) which says that the FT of the autocorrelation function is equal to the power spectrum of the signal x(t). This is the key result. It says that the Fourier integral transform of the autocorrelation function of x(t) is exactly the spectral energy density of x(t). This seemingly simple result gets the elaborate label of a Wiener-Khintchine Relation, see Bennett and Davey, Data Transmission, p 334. For us, the significance of (6.1.4) is that we can "inject statistics" into a computation of the autocorrelation function, and then we will know the energy spectrum of our statistical signal from (6.1.4). All we have to do is Fourier transform the autocorrelation function rx(t). Examples will follow. (c) Verification of Wiener-Khintchine for a Square Pulse. In (6.1.3) we have the autocorrelation function for a square pulse. One can insert this into the Fourier transform (1.1) to compute Rx(). Here is the first step: Rx() = Once can replace the exponential with cos(t), then reflect the negative portion of the integration, and do the resulting simple integrals. The answer becomes: Rx() = (A)2 [ sinc(/2) ]2 and this is recognized from (9.2) to be |X()|2 for the square pulse. 6.2 Autocorrelation Function for a Pulse Train. (a) Spectral Density of a Pulse Train From Section 14 we know the spectrum of an infinite pulse train formed from pulses xpulse(t) separated by time T1: x(t) = (6.2.1) X() = (6.2.2) We have been careful to write this in its original developed form without any scaling of the delta function, as described in Section 13A(c). The spectrum of the pulse is being sensed at discrete frequencies to generate the Fourier Series coefficients cm = (1/T1)Xpulse(m1). We want now to write down the "spectral density" |X()|2 for the pulse train. Following the method described in Section 13A(e), we proceed to absolute-square the RHS of (6.2.2). We use summation indices m and n, move the summations to the left, and manipulate the delta functions. A factor 2(0) appears on the right, so we move it to the left side denominator, and get the following result: = (6.2.3) Since an infinite pulse train x(t) has infinite total energy, we are not surprised to find that the spectral energy is also infinite (put 2(0) back on the right side to see this). We can at any time "undo" our delta limit and consider a pulse train that contains the large but finite number N of pulses. In this case, both delta functions appearing in the above equation should be interpreted as the smooth function (k) = { } (6.2.4) with the value at k = 0 of (0) = (2N+1)/(2) (6.2.5) The reason for moving 2(0) to the left side denominator is that it lets us stay in the delta limit. We then interpret the quantity on the left as the spectral density of the pulse train per pulse. Normalized in this manner, the spectral density is an understandable quantity whether or not you go to the limit. Then the only thing that happens at the limit is that (  - 2m) becomes infinitely sharp. In fact, we can estimate the sharpness of the delta function line away from the limit. Suppose we run a signal into our HP Spectrum Analyzer, and suppose it consumes 1 msec for its computation of each spectral "bin". If the signal was a 1 GHz pulse train, then N = 106 pulses were in the analyzed pulse train for that bin. Looking at the above pre-limit expression for (k) with k = T1, we note that the full width of the delta peak is twice the distance to the first zero or ∆(T1) = 2/N. Our line width is thus ∆ = 1/ N or ∆f = f1/N In this case, our line width would be 109/106 = 1 kHz. This is just a case of the uncertainty principle which says ∆t ∆f ≈ 1. Here, ∆t is the time of measurement (the 1 msec), and ∆f is the line width (the 1 KHz). (b) Autocorrelation function for a Pulse Train. We can compute this directly in the time domain using definition (6.1.1), and we shall do this later with the addition of statistics. Here instead, we simply Fourier transform both sides of (6.2.3) and use Wiener-Khintchine (6.1.4) on the left to get = (1/T1) (6.2.6) According to our definition of autocorrelation rx(t), the value rx(0) is the total area under the curve x2(t). If x(t) were a voltage applied to a 1 ohm resistor, we would say that rx(0) was the time integral of the instantaneous power of signal x(t), which gives the total energy of signal x(t). We could have added a normalizing factor of (1/T) to the definition of rx(t), where T is the total time duration of the signal. In this case, rx(0) would be the average power of the signal x(t). Some texts do this, but we chose not to. Regardless of one's definition, things always come out in the wash. If we "undo the limit" in the above formula (6.2.6), we can set 2(0) = (2N+1) = length of pulse train in pulses, see (6.2.5). Multiplying this by the length of one pulse T1, we get the total duration of the pulse train. So let us define a new symbol T to be the length of our pulse train. This symbol is finite in the pre-limit case of finite N, and it is infinite in the limit N ∞ : T ∫ 2(0)T1 = (2N+1)T1 undoing the limit (6.2.7) We can then rewrite (6.2.6) as follows = (1/T1)2 (6.2.8) But we know that (1/T1) Xpulse(m1) = cm, the complex Fourier coefficient of Section 14. So we can rewrite the above result one more time to get a simple result for the autocorrelation function of x(t), = (6.2.9) Finally, we can set t=0 to get the power spectrum: = (6.2.10) This says that the average power in a pulse train is the sum of the squared magnitudes of the complex Fourier Series coefficients. We know that c-m = cm* when x(t) is real, so we can reflect the negative sum over to the positive side and gain a factor of 2. We also know that 2cm = am - ibm from (15.4), so this gives us several other ways to write the above sum = |c0|2 + 2 = (1/4) |a0|2 + (1/2) (6.2.11) The mag-squares of the Fourier Series coefficients give a power decomposition of a signal x(t). 6.3 Statistical Pulse Trains ( allowing for complex x(t) and am) Suppose we have, in place of the infinite pulse train of (6.2.1) with all coefficients unity, a new pulse train where the coefficients are completely general complex numbers, and we also allow the pulse to be complex. Later we might want to have each coefficient be either a 1 or a 0. For now, we stay general, so x(t) = (6.3.1) Now, lets imagine that we have a "statistical ensemble" of such pulse trains. Each such pulse train gets a superscript i as its label. Then we can say, xi(t) = (6.3.2) We now define the operation < > to indicate the average of some quantity over a large statistical ensemble of systems. Assume there are ' I ' systems in the ensemble. We then have, <r x(t)>  (6.3.3) If we now insert (6.3.2) twice into (6.3.3), using m and n as summation indices, we get <r x(t)> = <am*an> (6.3.4) where <am*an> aim* ain (6.3.5) Before worrying about these coefficients, we stare at the dt' integral in (6.3.4). If we shift the time variable t' to t" = t' - mT1, we get this form for the integral = rpulse(t + (m-n)T1) (6.3.6) We recognize the dt" integral as the autocorrelation function of the pulse evaluated at a strange time. Thus, we can rewrite (6.3.4) as, <r x(t)> = <am*an> rpulse(t + (m-n)T1)) (6.3.7) This expresses the autocorrelation function of the pulse train as a sum, with statistically averaged coefficients, of the autocorrelation function of the pulse used to build the pulse train. We can now use superposition to Fourier transform both sides of (6.3.7). As usual, we have to include a little phase factor to account for the time translation of the argument of rpulse(). We get <Rx()> = Rpulse() <am*an> ei(m-n)T1 (6.3.8) We now use the relation (6.1.4) to replace each R() with it's corresponding spectral density. Thus, <|X()|2 > = |Xpulse()|2 <am*an> ei(m-n)T1 (6.3.9) This result describes the spectral density of our statistical pulse train in terms of the spectral density of the pulse we select to build the train, and in terms of the statistically averaged coefficients. If we now make some statistical assumptions about the coefficients, we will arrive at the spectrum of a statistical pulse train. This is exactly what we want to know. We already see from (6.3.9) a principle fact. The spectral density of the pulse acts as an "envelope" function, regardless of what happens with the double summation business. More on this below. (a) The Spectrum of a Pulse Train when pulses are not correlated. Equation (6.3.9) above shows our general result. When pulses of a pulse train are completely independent (which is NOT the case in an AMI code, or in a pulse train preceded perhaps by a differential encoder), then we don't expect correlation between coefficients at different times. When we write <am*an> as an expectation value, we mean the probability of some value in an ensemble of many samples. You could also write this as P ( [ am* = x] [ an = y] ), the joint probability that am* has the value x AND at the same time that an has the value y. Since these two "events" are independent (our code assumption for the moment), we know that P(A B) = P(A,B) = P(A) P(B), one of the most fundamental laws of probability theory, which we often apply to sequential independent coin tosses. In our case, this rule states that <am*an> = <am*> <an> when n m (6.3.10) where we must insist that n m so we are talking about different pulse locations in the pulse train. Independence also means that these means are independent of the pulse position index m, since we insist that all pulse locations are the same. Thus, we write <am*an> = <am*> <an> = <a*> <a> = | <a> |2 for m n (6.3.11) <am*an> = <a*a> = < | a |2 > for m = n Notice that these are NOT the same. The first is the magnitude of the mean squared, while the second is the variance, but all with complex numbers, | <a> |2 = | i P(ai) ai | 2 (6.3.12) < | a |2 > = i P(ai) | ai |2 In this independent pulse case, we know we can extract <am*an> from the sum in (6.3.9) above to get the result (which is repeated in the box for Section 6.4 below), Average Spectral Power Density of a Random Pulse Train in which pulses are Independent = { (-) +  } (6.3.13)  = <am*an> = | <a> |2 = | i P(ai) ai | 2 for m n  = <am*am> = < | a |2 > = i P(ai) | ai |2 for m = n T1 = pulse spacing, T = [2(0)T1] ≈ (2N+1)T1 Multiply by [ d/2] to get average power in angular frequency range d. Statistics Note. We talk about "random statistical pulse trains" in the above discussion. When it comes time to figure out the power spectrum of such a pulse, we see that only the first two moments of the statistics are required, the mean and the variance. This is I think a very general result. (b) Chen's Upshift Formulas for Modulation This section is perhaps a bit out of order, but we will need some of these results later in the applications. I am crediting this PDF file of notes to South Carolina course instructor Dr. Yinchao Chen, but I see Jian Fu as the person who assembled Chapter 4. I presume the intellectual content belongs to Dr. Chen. The reference is this, www.ee.sc.edu/classes/fall02/elct332 // South Carolina Chen shows that you can handle pretty much any modulation scheme with the idea that v(t) = Re{ g(t) exp(ict) } Chen (4-11) where now I have switched from s(t) to v(t) to match Chen's notation. [ Lee and Messerschmitt have a formula similar to the above, their (2.23), with an extra out front, which factor helps to normalize energy calculations. ] Chen first decomposes this result the way you would write Re(x) = (x + x*)/2, and then he Fourier Transforms that decomposition to get V(f) = (1/2) { G(f - fc) + G*(-f - fc) } Chen (4-12) Notice that V(f) is the spectrum of v(t), not the power density spectrum! Chen next goes on to show this interesting result, Rv () = (1/2) Re { Rg ()exp(ic) } Chen (4-16) relating the autocorrelation functions of v(t) and g(t). As he points out, this has the same "form" as the relation between v(t) and g(t), BUT there is a factor of 1/2 sitting in front. Thus, when we process this equation in the same manner that we process v(t) = Re{ g(t) exp(ict) }, we get a similar result, but with an extra factor of 1/2, giving 1/4 out front. Thus, the main result is this, Pv(f) = (1/4) [ Pg(f - fc) + Pg(-f - fc)] Chen (4-13) where P is the PSD or power spectral density (my "power spectrum") and v refers to v(t) and g to g(t). 6.4 Dealing with the statistical coefficient averages. In this section I am retaining my original text on this subject, but it has to some extent been superseded by section (a) immediately above. In this section only, we assume the ai are real. The delta function manipulations here are important and are not replicated in the previous section. By our definition above, we have this average over our statistical ensemble of pulse trains: <aman> aimain (6.4.1) A very simple case to consider is this: am = A probability p am = B probability 1-p (6.4.2) We can now state the averaged coefficients as follows, n ≠ m <aman> = [pp] AA + [p(1-p)] AB + [(1-p)p]BA + [(1-p)(1-p)]BB  n = m <am2> = [p]AA + [(1-p)] BB  (6.4.3) In the square brackets [..] we indicate the probability of some case occurring, and this is multiplied by the value that the quantity in question takes in that case. The reader must now stop reading and stare at the above equations until they make complete sense. Notice that the second line is quite distinct from the first line. In the double summation in (6.3.9), there are both "diagonal" terms where m = n, and off diagonal terms, where m≠n. These groupings must be treated separately according to the above. We have defined new symbols  and  to emphasize that, for the situations shown, there is no longer any dependence on the n and m indices for these quantities. (a) Pulse train with Random Coefficients. Using the above forms for the coefficient averages, (6.3.9) becomes <|X()|2> = |Xpulse()|2 { [ ei (n-m)T1] + [1] } (6.4.5) All the sums still range from -∞ to ∞, so we are going to have the usual divergences of the type (0). To evaluate the first sum, we write it as [ ei (n-m)T1] = e-i mT1 { - eimT1 + einT1 } = - + ( einT1 } ) 2 = - 2(0) + 2(0) { } (6.4.6) The bracket {..} in the first line above is the sum over n with n≠m; we have added and subtracted the term with m=n. In the second line, the first term has become a sum of 1's, and the second term is just the square of an exponential series. Both these situations were considered at the end of Section 13A, and the results (13A.16) and (13A.19) have been inserted above. The second sum in (6.4.5) is another 2(0). When all these results are inserted into (6.4.5), and we divide through by T, we get this result: Average Spectral Power Density of a Random Pulse Train = { (-) +  } (6.4.7)  = <aman> ,  = <am2>, T1 = pulse spacing, T = [2(0)T1] ≈ (2N+1)T1 For coefficients A=1, B=0,  =p2 ,  = p, ( - ) = p(1-p), where p = probability of a coded 1. Multiply by [ d/2] to get average power in angular frequency range d. This is a fascinating result. There are two weighted terms: the first term has weight ( - ), the second term has weight . The first term is exactly the spectrum of the pulse used to build the pulse train -- it is a continuous function of . The second term is the same discrete spectrum we found in (6.2.3) for the regular pulse train. It's delta functions pick off specific values of |Xpulse()|2 at the lines. Looking back at (6.4.3), we see that if the pulse train coefficients are A=1 or B=0, then  = p2 and p, so that ( - ) = p(1-p). The first test case is p = 1 ( =  = 1), since this means an = 1 and we should recover our non-statistical pulse train with all unity coefficients. The continuous spectrum part vanishes, and the discrete part assumes its full strength. Our second test case is p=0 ( =  = 0), which means there is no pulse train. True to form, the boxed result above reproduces this trivial limit. Our third test case is p = 1/2 ( = ) so that our pulse train has an equal probability of 1's and 0's. In this case, both coefficients are (1/4), so we get = { (1/4) + (1/4) } (6.4.8) This shows that the discrete spectrum has been reduced to 1/4 of its full strength, and a continuous spectrum exists with coefficient 1/4 as shown. It would be interesting to try and confirm this last result using a spectrum analyzer for various pulses. 6.5 A View from the High Ground In this Chapter we introduced some new definitions, such as the autocorrelation function, and the Wiener-Khintchine relation. We used these in our derivation of the statistical average of the spectral density of a pulse train. The whole thing was somewhat of a deception, and here we want to make sure the reader has not missed this point. Our main purpose for introducing autocorrelation and Wiener was to get these buzzwords into our dialog, since they appear in texts. There is nothing at all new in this Chapter, and we certainly did not need to use the words autocorrelation or Wiener-Khintchine to get our main result. As shown in Section 6.1 (a), autocorrelation is just a standard convolution of x(t) with x(-t), and Wiener-Khintchine is just the convolution theorem applied to this convolution equation. In effect, we could have just defined R() to be |X()|2, given it the new name "autocorrelation", and then forgotten about it. (a) rederivation of <|X()|2> As for the development of our main boxed result, here is how we would have done it without using any buzzwords such as "autocorrelation". Start off with the pulse train "i" with statistical coefficients ain, as in (6.3.2), xi(t) = (6.5.1) Fourier transform both sides in the usual manner, picking up the usual time-shift phase, Xi() = Xpulse() (6.5.2) Magnitude-square this thing to get |Xi()|2 = |Xpulse()|2 aim* ain ei(m-n)T1 (6.5.3) Finally, average over ensemble index i, and we get (6.3.9). Done. (b) derivation of <X()> Now while we are here, we can back up and apply our statistical average directly to the spectrum in (6.5.2). Our result is <X()> = Xpulse() (6.5.2) We could then argue that <an> = [p] A + [1-p] B = p if A=1, B=0 (6.5.3) In this case, we can extract p from the sum, which then collapses to form the usual delta functions. The result is then the same as with the regular pulse train (6.2.2) with an overall factor of p out front, namely, <X()> = p (6.5.4) Thus says that our average spectrum is 100% discrete, there is no continuous part! If p = 1/2, the average spectrum is just 1/2 times our usual spectrum. How can this be true, if we just showed in the above box that the average spectral density <|X()|2> has a continuous spectral component? The answer lies in the fact that <ab> ≠ <a><b>, where < > is our averaging operation. Thus <|X()|2> ≠ <X()><X()*> (6.5.5) There is no reason in the world why the average of a product should be the product of the averages. The HP Spectrum Analyzer measures <|X()|2>, not <X()>. (c) derivation of <()> Finally, we might ask if there is something that can be said for the average phase of a statistical pulse train. We already have statements about the average full spectrum, and about the average magnitude. From (6.5.2) we can easily obtain this result for the phase of our ith statistical pulse train: i() = pulse() + tan-1 (6.5.6) So here is our not-very-satisfying result, <()> = pulse() + [ tan-1 ] (6.5.7) For reasonably random coefficients, one might expect the second term to be zero. On the other hand, one could certainly find seemingly random coefficients for which this is not true. For example, those that would be used to generate an N-ary phase-shift-keyed signal, in which case the average phase should peak at N distinct values. 6.6 Application to Standard Pulse Train Types Here we apply our boxed result of Section 6.4 to random pulse trains of various types: (a) Regular NRZ line code By NRZ we mean a normal binary signal, high for period T1 to indicate a 1, and low for T1 to indicate a 0. The "absence" of a signal means a low, the presence a high Here we take as our pulse a box of amplitude V and width  = T1. From (9.2) we know the spectral density, |Xpulse()|2 = (VT1)2 [ sinc(T1/2) ]2 Due to the delta function (T1 - 2m), |Xpulse(m1)|2 vanishes for all values of m except m = 0, so the entire discrete spectrum vanishes except for the DC component. We then get, = V2 T1 [ sinc(T1/2) ]2 { p(1-p) + p2 2(T1) } (6.6.1) The continuous spectrum has value V2T1 at  = 0, and has zeros at  = m1 , m = integer. We can now look how the power is distributed between the continuous term and the DC line. Recall from (10.5) we can interpret LHS (d/2)as the average power in watts for angular frequencies in the range dflowinginto a 1 ohm resistor if V = volts. Integrating over a tiny d interval around the DC line, we get DC line power = p2 V2 = (1/4)V2 if p = 1/2 Using integral (10.6) , we can integrate the continuous term over all  to find AC power = p(1-p) V2 = (/4) V2 if p = 1/2 The DC line term is easy to interpret since P = V2/R where R = 1 ohm and v = (pV) = average voltage. The total power AC + DC is pV2. The DC line term could be cancelled by giving the NRZ signal a DC offset of -pV. In the case p=1/2, this means of course offsetting the signal by -V/2. (b) RZ line code. Here the basic pulse is a box that fills only half the time interval T1. The presence of the pulse means a 1, the absence means a 0. The only difference here is that the pulse width is not  = T1/2, so we get: |Xpulse()|2 = (VT1/2)2 [ sinc(T1/4) ]2 Due to the delta function (T1 - 2m), |Xpulse(m1)|2 vanishes for all even values of m except m = 0. The power spectrum then becomes = (V2 T1/4) [ sinc(T1/4) ]2 (6.6.2) x { p(1-p) + p2 2(T1) + p2} We now have three pieces: a continuous part, the DC line, and a set of lines at odd m. The first such line is at  = 1. The RZ continuous spectrum has a peak at  = 0 of (V2 T1/4), which is 1/4 that of the NRZ code. On the other hand, the zeros for the RZ spectrum are at  = m(21) for m = integer. Thus, the RZ central hump has twice the frequency width as the NRZ central hump, and has 1/4 the  = 0 intercept. The odd lines for RZ appear at m for m odd, so these lines occur at the peaks of the continuous spectrum humps. Once again, we can compute the total power for each of these pieces. The integrated DC line has an extra 1/4 that was not present in the NRZ case, so we get DC line power = (pV/2)2 which is again easy to interpret, given the above definition of the RZ line coding: we get 1/4 of the DC line power of NRZ, because DC is asserted only half as much as in NRZ. Next, we will integrate over all the m = odd discrete spectra lines. Due to the delta argument, we get [ sinc(T1/4) ]2 = [ sinc(m/2) ]2 = 1/ (m/2)2 Thus, the integrated odd line spectra contribution to the total power is (pV/)2 The sum is twice the sum over positive odd m, which we can look up to be 2/8 (GR 0.234.2), so the sum over all odds is 2/4. This gives the result Odd Lines power = (pV/2)2 which happens to exactly equal the total DC power. Finally, we do the continuous contribution using the same sinc2(x) integral as before to get continuum power = p(1-p) V2 / 2 This is half of the continuum power of NRZ. We expect this since this spectrum is one quarter as high but twice as wide as NRZ. In general, once can see that the RZ signal has overall less total power than the NRZ. Moreover, the RZ power is concentrated less near DC than the NRZ. In both cases, however, even if the DC line is cancelled out with an offset voltage, the continuums take their maximum value at  = 0. (c) Manchester line code The pulse shape here is the diphase pulse considered back in Section 19 -- a high on the left, a low on the right. If we set the full width of the diphase pulse to T1, and set the peak-to-peak amplitude to V, we can use equation (19.2) with  = T1/2 and A = V to find that |Xpulse()|2 = (VT1/2)2 [ sinc(T1/4) ] 2 [ sin(T1/4) ] 2 This is identical to the RZ pulse spectral density, except for the last sin2 () factor. The Manchester code is formed by using the above diphase pulse (hi-lo) for a 0, and the negative of this pulse (lo-hi) for a 1. Thus, in (6.4.3) we have A = -1 (code 1), B = 1 (code 0), and p is the probability of having a coded value of 1. Thus we find from (6.4.3),  = 1 - 4 { p(1-p) } = 0 if p = 1/2  = 1 = 1 if p = 1/2 (-) = 4 { p(1-p) } = 1 if p = 1/2 Our average Manchester power spectrum is then as given in (6.4.7), = (V/2)2 T1 [ sinc(T1/4) ] 2 [ sin(T1/4) ]2 x { 4p(1-p) + [ 1 - 4p(1-p)] } (6.6.3) For p = 1/2, meaning the probability of having a coded 1 or a coded 0 is the same, the discrete spectrum is completely wiped out, since  = 0. And (1, so the continuous spectrum has full amplitude. In this case we get simply = (V/2)2 T1 sinc2(T1/4) sin2(T1/4) (6.6.4) Again, the spectrum is entirely continuous, there are no lines, including no DC line. Moreover, the spectrum itself vanishes at  = 0. The spectral shape is the square of the dashed curve shown in Figure 19.1 of Chapter 2, Section 19. The zeros of the spectrum occur at  = m(21), m = integers. Much of the spectral energy is concentrated at the center of the first hump, which is at  = 1. Thus, Manchester has some very nice spectral characteristics. The only down side compared to NRZ is that the first hump goes out to  = 21, which reflects the fact that the minimum pulse width is T1/2, whereas in NRZ it is T1. The good part is that power is kept away from DC. (d) AMI line code. This line code provides a more substantial test of the results of this chapter. Alternate Mark Inversion means that a 0 is encoded as a zero (for duration T1 ) and a 1 is encoded as a pulse (of duration T1) of either plus or minus polarity. As each 1 is encountered in the data, the opposite polarity is used. Normally the pulse used is a square box of full T1 width, or it could be a box of some lesser width so it does not fill the entire T1 interval. In our analysis, we shall allow an arbitrary pulse shape. The starting point is equation (6.3.9) which we repeat here: <|X()|2 > = |Xpulse()|2 <aman> ei(m-n)T1 (6.6.5) There is the usual factor |Xpulse()|2 sitting out front -- this is why we never worry about what particular pulse we have. The new feature here appears in the computation of the coefficient averages. Let us assume that p is the probability of a 1 being coded, so 1-p is the probability of a 0 being coded. Then we have <an2> = [p] (±1) (±1) + [1-p] 0 = p (6.6.6) That was the easy one. For m ≠ n, we have a harder problem. Here is a suggestive way to write the answer: <aman> = (±1)(±1) p p X + (±1)(1) p p Y + (0)(±1) p(1-p) + (0)(0) (1-p)(1-p) (6.6.7) So far X and Y are unknown. However, notice that the total probability that one coefficient is a zero is given by: p(1-p) + (1-p)(1-p) = (1-p)(1+p) = 1 - p2. This means that X and Y must sum to 1. By writing the first probability as ppX, we are including the probability (pp) that we have matching coded 1's at the end of our chain of bits. These coded 1's are at the positions m and n. The factor X is the probability that the gap between the coded 1's is filled with a legal sequence of bits. Thus, due to the alternation rule, X must be the probability that there are an odd number of coded 1's in the gap. Define, k = |m-n| - 1 = size of gap Note that Y = Yk = (1-Xk) = probability that gap has even number of coded 1's. So far, we have: <aman> = p p Xk - p p Yk = p p Xk - p p (1-Xk) = p2 (2Xk - 1) (6.6.8) Suppose you start with a gap of size k with its Xk. If you increase the gap by 1, what is the probability now that new larger gap has an odd number of coded 1's ? If it had an even number of coded 1's to start, then you must add a coded 1, so you get Yk p for this case. If it had an odd number of coded 1's, then you must add a 0, so you get Xk (1-p) in this case. Thus: Xk+1 = Yk p + Xk (1-p) = (1-2p)Xk + p (6.6.9) Now let a = (1-2p), since this will appear a lot. Then the above reads, Xk+1 = aXk + p a = (1-2p) (6.6.10) This is a little sequence. We know that X1 = p, since this is the probability of filling a gap of size 1 with a coded 1. Then X2 = ap+p, X3 = a(ap+p) + p = a2p + ap + p. In general, we get Xk = p (ak-1 + ..... + a2 + a + 1) = p (1 - ak)/(1-a) = p (1 - ak)/2p = (1 - ak)/2 (6.6.11) Therefore, we have our final results, <aman> = - p2 ak = - p2 a[ |m-n| - 1] = (-p2/a) a|m-n| (6.6.12) <an2> = p (6.6.13) So here we have an example where the m≠n coefficient average continues to be a function of the index. Thus, we cannot use our result (6.4.7) and must go back to the earlier form (6.6.5) above. Now what remains is a purely mechanical but non-trivial problem of doing the m≠n summation. Here is the final result, where we have defined b = exp(iT1), a = (1-2p): a|m-n|b(m-n) = [1] (6.6.14) The sum is done pretty much as shown, using geometric series addition wherever possible. Here is an intermediate step in getting to the above: RHS = { 2Re[ ] } [1] where c = ab. (6.6.15) So we have now done the off-diagonal part of the sum in (6.6.5). The diagonal sum is trivial and gives just p times the infinite sum of unity. Here then is our result for the full m,n summation in (6.6.5) above: <aman> ei(m-n)T1 = { p + (-p2/a) } [1] (6.6.16) As usual we replace the summation with 2(0), and we also combine the two terms in the { }, <aman> ei(m-n)T1 = { } 2(0) (6.6.17) Inserting this into (6.6.5) and using T = 2(0) T1 gives the final result: [ a = (1-2p) ] = { } (6.6.18) Again, this is the spectral density for AMI line coding with some xpulse(t), where p = the probability of coding a 1, and 1-p that of coding a 0. This is a classic result. Note that the spectrum is completely continuous, there is no discrete part at all. The discrete part usually arises from the m≠n summation, but here we saw no such discrete spectrum generated. It was splattered into the continuum by the correlation effect between legal bit patterns. For a random AMI signal, we set p = 1/2 to get a=0 and a simple result: = {sin2(T1/2) } (6.6.19) Now finally we can allow a box of width  and height V/2 for the pulse. According to (9.2), this gives = (V/2)2 T1 (/T1)2 sinc2(/2) sin2(T1/2) (6.6.20) If we now go to a full 100% AMI pulse width  = T1, this result duplicates the Manchester result modified by   2 T1. This last accounts for the fact that the narrowest Manchester pulse is half of what it is for 100% AMI. Note: The coefficient averaging done in this Section for the AMI line code spectrum is based on the excellent discussion of Bennett and Davey, Data Transmission, p338-9. Our final result (6.6.18) is in agreement with their equation (19-123), except they have an extra factor of 2, presumably because they are working in terms of one-sided spectra, whereas we have allowed power density at both negative and positive . 6.7 More Applications In this section, we repeat some (but not all) of the applications shown above. Application #1: Power spectrum of NRZ We assume NRZ means pulses of amplitude A or 0, where A is real. = | i P(ai) ai | 2 = | p A + (1-p) 0|2 = (pA)2 (6.7.1)  = i P(ai) | ai |2 = p A2 + (1-p) 02 = pA2 - = A2 p(1-p) So the boxed result above becomes, =  { p(1-p) + p2 } (6.7.2) If we go on to make the pulse be a box of unit height, we know that |Xpulse()|2 = (T1)2 [ sinc(T1/2) ]2 (6.7.3) where sinc(x) = my nonstandard definition sin(x)/x instead of sin(x)/(x). So we then get the result =   T1 [ sinc(T1/2) ]2 { p(1-p) + p2 } When  = 2m at the delta function spike points, we will have sinc(m) as the envelope and this vanishes except at m=0 giving the result =   T1 [ sinc(T1/2) ]2 { p(1-p) + p2 2() } (6.7.4) which agrees with our earlier derived result shown in (6.6.1) where A = V. We have the usual continuous spectrum part and the DC line at = 0. Normally we would write this with p = 1/2 so that both coefficients are 1/4 inside the curly bracket. Application #2: Power spectrum of MPSK Let's start off the passband formula which is s(t) = cos(ct + (t) ) = cos ct cos (t) - sin ct sin (t) (6.7.5) where c is the carrier frequency and where (t) will be describing the phase modulation below. Following Chen (see section 6.3 (b) above), we want to write the above in the form, s(t) = Re{ g(t) exp(ict) } (6.7.6) where g(t) is the "modulation", and in doing so, we find that the baseband function of interest is, g(t) = cos (t) + i sin (t) = e i (t) (6.7.7) Here, we can think of (t) as a continuous function of t in the general case. Now in MPSK modulation, g(t) is a piecewise (normally discontinuous!) function of the following form gi(t) = !Syntax Error, Iexp(j ni ) xpulse(t - n T1) (6.7.8) where xpulse will be the box function of some height A and where the coefficients are as shown. The idea is that we imagine a series of "boxes" where each one has a certain complex unit phasor associated with it that causes the PSK modulation for that box, that is, for that time interval T1. The point is that we have now posed the PSK problem in our familiar context of a statistical pulse train, but with complex coefficients. This is why we had to update all the autocorrelation function stuff above for complex x(t). The index i as usual is just the ensemble label for the ith pulse train. It is difficult to plot g(t) since it is a complex function, but I think the best way is to just think of a fixed phasor diagram and look at g(t) at various t. The phasor sits at angle 0 between t = 0 and t = T1, then it suddenly jumps to some angle 1 during the next interval, and so on. As you see, either formula above is consistent with this picture. In the ensemble of pulse trains, the phases at different times are not correlated, so the above theory in the box applies, and all we have to do is compute and to get our result! For MPSK, we assume that the angles are quantized to these values, k = k where k = 0 to M-1 and = 2/M so k = 2k/M where the index k here does not refer to a time slot, nor to a ensemble label, but instead to a symbol label, where the M vectors are the M symbols, so to speak. Be careful not to confuse this with the other subscript meanings, I am not quite sure how to distinguish the k subscript. I have tried putting it on the lower left side of the symbol to make this distinction. Now, starting with the m n case,  = <am*an> = <exp(-im) exp(in) > = <exp(-im) >< exp(in) > = | <exp(i)> |2 = | k P(k) exp(i k)| 2 Now, the probability of each of the M angles is the same, P(k) = 1/M. We then get  = (1/M)2 | k exp(i k)| 2 = (1/M)2 | sum |2 Let's now look at the sum. We know this sum must be 0, since it is the sum of symmetric phasors around a circle. For odd M perhaps we doubt the veracity of that result, so let's do it manually, k exp(i k) = k exp( i2k/M) = k [ exp(i2/M) ] k = !Syntax Error, I [ exp(i2/M) ] k But this is a standard power series of the form (see Shaum page 107) !Syntax Error, I rk = 1 + r + ... + rM-1 = where r = exp(i2/M) But rM = exp(i2) = 1, so the sum is indeed 0. Thus we have our first result which is: = 0 Next we worry about, = <am*am> = <exp(-im) exp(im) > = <1 > = 1 That was not so tough! So we can now quote our result for the power spectrum of MPSK, = { 1 +  } =  T1 [ sinc(T1/2) ]2 { 1 } = Pg() (6.7.9) where we can think of A as either the height of the boxes, or as the length of the phasors, same thing. This is "my" sinc function, and my result agrees with Sklar (7.22) only if you set 2T = T1 which seems to be endemic to the source Sklar is quoting here. Notice how on page 405 his bit period is 2T, maybe he uses T for the time bits agree during the offset period. The result is very interesting. It shows that you can cram in all the vectors you want around the phase circle, and the spectrum required to send the signal remains unchanged. This is of course the baseband power spectrum, but we know from Chen that we just shift this thing up so it is centered on the carrier. The main Chen result below is this, Pv(f) = (1/4) [ Pg(f - fc) + Pg(-f - fc)] where P is the PSD or power spectral density (my "power spectrum") and v refers to v(t) and g to g(t). Now let's use this result to write down the passband power spectrum of MPSK: Ps(f) = (1/4)  { T1 sinc2[(c)T1/2] + T1 sinc2[(-c)T1/2] } where we usually ignore the second term which is deep in negative frequency territory. For my sinc definition, the half-width occurs when (c)T1/2 = or (f - fc ) = 1/T1 so ffull = 2/T1. As usual, we assume that if we filter so as to only keep the central hump of the sinc, the result is that in effect the box pulse shape becomes something a bit smoother, and this implies a kind of tapering at the phase shift bit boundaries. Since MPSK is so important, let's summarize all the results: (1) regardless of the value of M = 2k , the spectrum required by MPSK is the same, it is independent of M. It is the same for BPSK as for QPSK for example, or any M-ary case. (2) the full spectral width of the channel required is ffull = 2/T1 to include the central hump. (3) the PSD in the channel is proportional to A2 where A is the length of the vectors. Comment on Sklar page 407 figure. There he shows the PDS for BPSK and QPSK. According to our results above, these should have the same spectrum, but in the figure the BPSK spectrum is wider. Why is this? ( Note that this is how sinc things always look with a log vertical axis). We have not talked in this document about "rate", but that is of course the motivation to have more vectors in PSK or QAM. Each vector lives for duration T1 but the more vectors there are, the more bits that one vector stands for, or encodes. With M=2 for BPSK, each bit time encodes 1 bit, but for M=2 or QPSK, each bit time encodes a 2-bit message, so you have twice the code rate. For M-ary MPSK, the code rate is going to be R = log2 M. Now in the Sklar figure, the horizontal frequency axis is scaled by rate, so it is (f - fc)/R. This is nice because it sort of shows up the amount of spectrum needed per unit signaling rate. That is why the BPSK hump (and entire spectrum) appears twice as wide as the QPSK spectrum in this figure. Notice also that QPSK has the same spectrum as OQPSK. I have not computed the spectrum of offset QPSK, but I think I could do it, and I am not surprised at the result. Application #3: Power Spectrum of QAM By QAM let's mean any scheme of PSK where we allow the vectors to have different lengths. The analysis will then be very similar to the MPSK case above, but we generalize slightly as follows by inserting the amplitudes Am in appropriate places, and we allow Am to be complex: s(t) = A(t) cos(ct + (t) ) = cos ct A(t) cos (t) - sin ct A(t) sin (t) (6.7.5)' g(t) = A(t)cos (t) + i A(t)sin (t) = A(t) e i (t) (6.7.7)' gi(t) = !Syntax Error, IAn exp(j ni ) xpulse(t - n T1) (6.7.8)'  = <am*an> = <Amexp(-im) Anexp(in) > = <Am*exp(-im) >< An exp(in) > = | <A exp(i)> |2 = | k P(k) kA exp(i k)| 2 = <am*am> = <Am*exp(-im) Am exp(im) > = <Am* Am > = k P(kA) | Ak |2 Now we need to know the explicit symbol set to compute and exactly, but we can see the general idea here: = the length2 of the average of all the symbol vectors in the constellation = the average length2 of these symbol vectors. Now most QAM constellations are symmetric about the origin. For those that are not, I suspect they arrange them anyway so that the sum of all the vectors is 0, so the average will be 0. This kills off and that in turn kills off the line spectra which I suspect is desirable from an EMI point of view. The notion of ad the average length2 is the vectors seems pretty reasonable. Assuming = 0, we get this result for the QAM power spectrum, Pg() = <> T1 [ sinc(T1/2) ]2 { 1 } where we have written in the suggestive form <>. So, the upshot is that the spectrum is the same as the MPSK spectrum. If we think of this QAM as the more general result, we obtain the PSK result by setting <> = A2 for the MPSK vectors arrange around a circle. This shows clearly how QAM is a big winner! By adding dots in the constellation, you don't affect the bandwidth at all. But by adding them in a nice 2D pattern instead of in a circle, you are able to keep the nearest neighbor distance between arrow tips smaller with QAM than with MPSK. For example, with M2 vectors around a circle, the distance between neighboring tips approaches 2A/M2 for large values of M2, where we ignore circumferential distance relative to straight line. Suppose that instead we make an M x M grid of dots for the constellation such that the <> = A. A quick junkie pencil calculation suggests that the 2D grid spacing would be = A/M, which is certainly larger than = 2A/M2 for the circle, both for large M. Application #4: Power spectrum of bipolar NRZ I don't know what the right name for this would be, but I just mean a signal that goes between +A/2 and -A/2 instead of going between A and 0. It won't take long to get the result, which we really want for the next section. = | i P(ai) ai | 2 = | p A/2 + (1-p)(-A/2)|2 = A2 (p - 1/2)2  = i P(ai) | ai |2 = p (A/2)2 + (1-p) (-A/2)2 = (A/2)2 - = A2 p(1-p) , the same as in regular NRZ ! As expected, adding a DC offset cannot change the ( - ) coefficient of the continuous spectrum. The result is, =  { p(1-p) + (p-1/2) 2 } So for p = 1/2 this becomes =  { 1/4 } Application #5: Power spectrum of MSK Looking at Sklar page 405 picture and at equation (7.18), let's modify our QAM equations above to make them fit this case. We have s(t) = Re{ g(t) exp(ict) } with s(t) = A(t) cos ct - B(t) sin ct (6.7.5)'' g(t) = A(t) + i B(t) = a(t) cos(t/T1) + i b(t)sin(t/T1) (6.7.7)'' Warning: I have chosen the cosine shape to provide one hump over period T1. The basic cosine hump then peaks at t=0 and is zero at t = -T1/2 and t = + T1/2. We think of a(t) as held constant for this entire period. The corresponding sine hump runs from t = 0 to t = T1, and b(t) is constant during this period. Thus, I am assuming the "offset" condition that a and b don't change at the same time. Note that Sklar uses the symbol 2T = T1. So we take a slightly new direction by allowing two pulse shapes, as follows: gi(t) = !Syntax Error, I[ an xpulse,C(t - n T1) + i bn xpulse,S(t - n T1) ] (6.7.8)' where the pulses are the cos and sin shown above, and where an and bn are 1 as Sklar says. In this series, the pulse xpulse,C(t) is as defined above, running from t = -T1/2 to t = + T1/2 and zero outside this region. The sine pulse is also as described above. Now we have to back up and remember what we did with this thing, We start with the autocorrelation function, <r x(t)>  (6.3.3)' and we insert the double pulse train in twice to get a result. This is a big mess with four terms to worry about now instead of one term. So let's start again and try this so we have only one pulse shape, xpulse,C(t) = cos(t/T1) xpulse,S(t) = sin(t/T1) = cos(t/T1 - /2) = cos ( (t-T1/2)/T1) = xpulse,C(t - T1/2) Then let's have just one pulse and call it xpulse(t) = cos(t/T1) and write that gi(t) = !Syntax Error, I[ an xpulse(t - n T1) + i bn xpulse(t - (n+1/2)T1) ] Now we can stick this twice into the autocorrelation function, and we get, using n' = (n + 1/2), and leaving off the i ensemble index and its sum, we will just remember that the a and b coefficients have these. <r x(t)>  { m [ am* xpulse* (t' - mT1) - i bm* xpulse* (t' - m'T1) } x { n [ an xpulse (t'+t - nT1) + i bn xpulse (t'+t - n'T1) } Now let's look at the four time integrals. We have xpulse* (t' - mT1) xpulse (t'+t - nT1) = xpulse* (t') xpulse (t'+t - (n-m)T1) = rpulse( t + (m-n)T1) xpulse* (t' - mT1) xpulse (t'+t - n'T1) = xpulse* (t') xpulse (t'+t - (n'-m)T1) = rpulse(t + (m-n')T1) xpulse* (t' - m'T1) xpulse (t'+t - nT1) = xpulse* (t') xpulse (t'+t - (n-m')T1) = rpulse(t + (m'-n)T1) xpulse* (t' - m'T1) xpulse (t'+t - n'T1) = xpulse* (t') xpulse (t'+t - (n'-m')T1) = rpulse(t + (m'-n')T1) So inserting these we get <r x(t)>  m n am* an rpulse(t + (m-n)T1) + i m n am* bn rpulse(t + (m-n')T1) - i m n bm* an rpulse(t + (m'-n)T1) + m n bm* bn rpulse(t + (m'-n')T1) which is not too bad, sort of an extended version of (6.3.7)' shown above. The next step is to do FT to both sides to get <Rx()> = Rpulse() mn [ <am*an> ei(m-n)T1 + i <am*bn> ei(m-n')T1 - i <bm*an> ei(m'-n)T1 <bm*bn> ei(m'-n')T1 ] = <|X()|2 > (6.3.9)'' Rewrite as <|X()|2 > = Rpulse() x mn [ <am*an> + i <am*bn> e - i(T1 - i <bm*an> e + i(T1 + <bm*bn> ] ei(m-n)T1 So this looks just like our previous result except now we have three extra terms to worry about. For each term, we will now assume that the diagonal and non-diagonal coefficient expectations are independent of m and n as we did before. Thus, each term here will generate its own contribution to the RHS of formula 6.4.7 with its own and , so we need some notation for these things: <am*an> 1, 1 <am*bn> 2, 2 <bm*an> 3, 3 <bm*bn> 4, 4 The total result should now be, = { (-) +  + (+i)(-) e - i(T1 + (+i)  e - i(T1 + (-i) (-) e + i(T1 + (- i) e + i(T1 + (-) +  } Now let's go compute all the and things. Everything is fully decorrelated as far as I am concerned, so we will use our general results for the bipolar NRZ since Sklar says coefficients are +1 and = -1. This gives for the 1 and 4 coefficient pairs, = | i P(ai) ai | 2 = | p A/2 + (1-p)(-A/2)|2 = A2 (p - 1/2)2  = i P(ai) | ai |2 = p (A/2)2 + (1-p) (-A/2)2 = (A/2)2 - = A2 p(1-p) , the same as in regular NRZ ! The 2 and 3 pair are just slightly different. We have 2 = <am*bn> = <am*><bn> = A2 (p - 1/2)2 2 = <am*bm> = <am*><bm> = A2 (p - 1/2)2 also (2 - 2) = 0 for any p and the same for pair 3. The big difference is that when m=n, the cross coefficients are STILL decorrelated because they are in different streams. The result now becomes, =  { A2 p(1-p) + A2 (p - 1/2)2 + 0 + (+i) A2 (p - 1/2)2 e - i(T1 + 0 + (-i) A2 (p - 1/2)2 e + i(T1 + A2 p(1-p) + A2 (p - 1/2)2 } Now combine this together to get = 2 A2 x { p(1-p) + (p - 1/2)2[ 1 + sin((/2)T1) ]} So an asymmetric sine from the cross terms really is present, but you don't see if when p = 1/2. So the final result for p = 1/2 is, = A2 /2 Now we need the pulse spectrum, to wit, Xpulse() = = = dt cos(t/T1) rect(t/T1) Now define f1 = 1/(2T1). Then we can look up this transform on page 731 of Sklar to get, with x = f/f1 = T1/2 { sinc[(f-f1)T1] + sinc[(f+f1)T1] } = T1/2 { sinc[ 1/2*(x-1) ] + sinc[ 1/2*(x+1) ] } = T1/2 * (4/) cos(/2 * x) / (1 - x2) = (2T1/) cos(/2 * x) / (1 - x2) So our hopefully final result is now, = A2 /2 where Xpulse() = (2T1/) cos(/2 * x) / (1 - x2) so we get our final result for the MSK power spectrum: = 2 T1 A2 / 2 [cos(/2 * x) / (1 - x2) ]2 where x = f/f1 and f1 = 1/(2T1 ) and T1 = the bit time in either stream. This is not the normalized result, it is the result. Note that 2A = the peak-to-peak amplitude of the bipolar NRZ type coefficients. As noted above, this result agrees with Sklar (7.23), but we have not checked Sklar's normalization factor. Comparison between MPSK and MSK Here are the results from above, =  T1 [ sin(/2 * x) / (/2 * x) ]2 / MPSK, Rate R = log2M = A2 T1 2 / 2 [cos(/2 * x) / (1 - x2) ]2 / MSK, Rate R = 1? 2? where x = f/f1 and f1 = 1/(2T1 ) and T1 = the digital waveform period, or bit period. For the MPSK spectrum, the half-width occurs at x = 2. For the MSK it occurs at x = 1. I am a bit confused about the rate for MSK. If you take Sklar's starting point back on page 7.16, then it seems that there is only 1 bitstream given by the dk coefficients. But I have been thinking of two separate bitstreams, so things are a bit confusing when it comes to figure 407. The location of the first zero of QPSK and MPSK has a ratio of 3/2 for some reason. suggesting that MSK has some strange rate that I do not understand. Still, I know I have the spectrum right, so let's forget about Figure 407. 6.8 Alternate form for (6.3.9) First, let's restate the equation in question: <|X()|2 > = |Xpulse()|2 <am*an> ei(m-n)T1 (6.3.9) This expresses the spectral power density of a pulse train as a product of the spectral power density of the pulse used to make the train times a second factor involving the coefficients. Since the pulse train is infinitely long, it is true that as written above, both sides diverge. This is why we first limit the pulse train to (2N+1) pulses, set T = (2N+1)*T1 , divide both sides by T, and then imagine the limit N, and that is how the results in the box (6.3.13) were derived. For example, you can see that there will be (2N+1) equal diagonal terms in the double-sum on the right side. The full derivation is shown in (6.4.5) and (6.4.6). Here, we wish to further analyze the coefficient double sum shown above. The first step is to replace the summation index n with index k = n - m. We then get <|X()|2 > = |Xpulse()|2 <am*am+k> e-ikT1 (6.8.1) Now, the if we bracket the inner sum over m and compare it with (23A.1) in Chapter 3, we recognize it as the discrete autocorrelation function r'a(tk )/T1. Thus we have, <|X()|2 > = (1/T1)2 |Xpulse()|2 t < r'a(tk )> e-ikT1 (6.8.2) where we have multiplied by t/t, and we make various assumptions about the <..> brackets. The remaining sum with tk = kT1 is seen to be the Digital Fourier Transform of the autocorrelation function, according to our box in Chapter 3. Thus we have: <|X()|2 > = (1/T1)2 |Xpulse()|2 Ra'() (6.8.3) where R is the discrete autocorrelation function spectrum. But according to (23A.2), we can replace the R object with the Digital Fourier Spectrum of the coefficient sequence, canceling one factor of T1, to get <|X()|2 > = (1/T1) |Xpulse()|2 |A'()|2 (6.8.4) This is precisely the result (3.154) on page 87 of Lee & Messerschmitt. If we go one more step and replace the Dig FT version with the ZT version such that A'() = T1 A"() from (24.2), we get <|X()|2 > = T1 |Xpulse()|2 |A''()|2 (6.8.5) This is then very close to Lee & Messerschmitt (3.154) where they use H() for the pulse. Our derivation here has been pretty sloppy with regard to expectation values and normalization and divergences, but we have ended up with the L&M result modulo normalization issues. For example, it is not quite clear what L&M are using as their discrete autocorrelation function sum. Some rainy day we can clear this up. The main point is this: the above equation shows that the continuous-time power spectrum of a statistical pulse train is equal to the continuous-time spectrum of the pulse used in that pulse train times the Z-transform discrete-time spectrum of the pulse train coefficients! From our results of the form (6.3.13) for decorrelated coefficients, we can associate the factor |A''()|2 with the bracketed factor, and can conclude that this |A''()|2 can have a constant term which we associate with a continuous spectrum, and delta function terms which we associate with line spectra.