Phil Lucht Math & Physics Archive
Home / Math and Physics Files / Math / Spectral Theory Book / incorporated stuff

NRZI

DOCX · 102.6 KB
Open DOCX file

Section 38 of Phil's spectral theory book material, dated 3.26.05. It derives the autocorrelation coefficients for a two-amplitude hold/change code using a recursion in the gap between slots. It then gets the power spectral density and checks the limits A=B, p→1, p→0 and p=1/2. The NRZI case (A=1, B=0) is shown to match the unipolar NRZ spectrum. Equations are partly lost in extraction.

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

Extracted text (machine-read; may contain errors)
This is the Title PhL 3.26.05 38. Change/Hold line code 1 Example: NRZI line code 10 38. Change/Hold line code Pulse Shape. The pulse shape is the same as for unipolar NRZ Xpulse(ω) = (VT1) sinc(ωT1/2) (36.1) Ppulse(ω) = (1/2π) V2T1 sinc2(ωT1/2) In place of amplitude V, however, we will have A and B as described below. Coding: The coding uses two amplitudes A and B. Hold or Change coding means that a 0 is encoded as no change in the pulse amplitude (it remains what it was), whilc a 1 is encoded as a change A↔B. Here is an example starting with an A pulse: data = [ 1 0 1 1 0 0 1] encode = [ A B A A B B A] Again we shall assume an arbitrary pulse shape and make it be square at the end. Coefficients αm,n and β: As with AMI coding, our starting point will be equation (34.10) which we repeat here: <|X(ω)|2 > = |Xpulse(ω)|2 !Syntax Error, I !Syntax Error, I <ymyn> eiω(m-n)T (36.15) First consider <yn2> = [q]A2 + [(1-q)] B2 where q is the probability that slot n is yn= A. In this code, since only change and hold are coded, there is no preference for either amplitude, so q = 1/2 and <yn2> = (A2+B2)/2 . (38.1) Turning to <ynym>, consider this picture similar to that used for the AMI case, where the gap is kT1units. Here we arbitrarily drawn A > 0 and B < 0 and we draw the pulse as square, but it could be any shape and A and B can have any signs. Denote the four probabilities as p(AA)k and so on. Since slot m and slot n must each be filled with either an A or a B, this picture shows the only four possibilities, so ( different scaling relative to AMI analysis) p(AA)k + p(AB)k + p(BA)k + p(BB)k = 1 . Note that p(AA)k is the probability of slot m and slot n both having ampitude A in the statistical pulse stream. With these probabilities, we will have <ymyn> = p(AA)k AA + p(AB)k AB + p(BA)k BA + p(BB)k BB . (38.2) In case 1, there are a certain number of holds and changes during the gap such that the overall effect is a hold. The number of changes must have been even. But this same statement can be made about case 4, so cases 1 and 4 have the same probability of existing in the pulse stream. Similarly, cases 2 and 3 have the same probability and in those cases the number of changes must be odd. So now we have two variables to worry about and they add to 1/2 : p(AA)k + p(AB)k = 1/2 (38.3) <ymyn> = p(AA)k AA + p(AB)k AB + p(AB)k BA + p(AA)k BB = p(AA)k ( AA + BB) + p(AB)k (AB + BA) so <ymyn> = p(AA)k( A2 + B2) + p(AB)k 2AB (38.4) If the gap is zero, what is the probability of having an adjacent AA in the pulse stream? The probability of having the left A is 1/2, and the probability for an A being followed by a A is 1-p. Therefore p(AA)0 = (1/2)(1-p) (38.5) Consider now the gap as shown at value k. We claim that p(AA)k+1 = p(AA)k (1-p) + p(AB)k p (38.6) If it was an AA to start with with gap k, then to be AA with gap k+1 we have to add another A which has probability (1-p) since this is a hold. Conversely, if it was an AB we have to add an A which is a change, which has probability p. Then we can write p(AA)k+1 = p(AA)k (1-p) + (1/2 - p(AA)k ) p (38.7) To simplify notation, let Xk ≡ p(AA)k so that p(AB)k = 1/2 - Xk . Then ** and ** become <ymyn> = Xk (A2 + B2) + (1/2 - Xk)2AB = (A-B)2Xk + AB (38.8) Xk+1 = Xk (1-p) + (1/2-Xk) p = (1-2p)Xk + p/2 = aXk + p/2 a ≡ 1-2p (38.9) Maple can solve this recursion equation as follows, so we find that Xk = (1 + ak+1)/4 = p(AA)k (38.10) As a check, suppose p = 0 so there can be no changes. Then a = 1 and p(AA)k = 1/2. We can now have only case 1 or case 4, so we know p(AB)k = 0, and that is consistent with p(AA)k + p(AB)k = 1/2 . Continuing, <ymyn> = (A-B)2Xk + AB = (A-B)2(1 + ak+1)/4 + AB = [ (A-B)2/4] ak+1 + (A-B)2/4 + AB = [ (A-B)2/4] ak+1 + [(A+B)2/4] = (1/4) [ (A-B)2 ak+1 + (A+B)2 ] (38.11) and we note that the result is indeed symmetric under A↔ B. Again for p = 0 (a=1) we find that <ymyn> = (A2+B2)/2 which is the same then as <yn2>. For a constant pulse train, the amount of slot separation makes no difference. Since k = |m-n| - 1 in general, we get these final results αn,m = <ymyn> = (1/4) [ a|m-n| (A-B)2 + (A+B)2 ] β = <yn2> = (A2+B2)/2 (38.12) To save space, we define c ≡ (A-B)2/4 d ≡ (A+B)2/4 (38.13) so then αn,m = <ymyn> = c a|m-n| + d (38.14) For later use, notice that β - d = c (38.15) Spectrum. The spectrum is determined by (37.9) as in the AMI case, <|X(ω)|2> = |Xpulse(ω)|2 { !Syntax Error, I !Syntax Error, Iαn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (38.16) As in the AMU case, the β term in {...} is just β!Syntax Error, I !Syntax Error, I [1] = β !Syntax Error, I [1] . (38.17) Since αn,m = c a|m-n| + d , the first double sum has two terms. Again looking at the AMI case, we find that the first term is given by, again using b ≡ eiωT, c !Syntax Error, I !Syntax Error, I a|m-n| b(m-n) = c !Syntax Error, I[1] . |a| < 1 (38.18) To get the second term in the first double sum, we cannot just replace c by d and then set a = 1 to get d !Syntax Error, I[1] (with a = 1) = d !Syntax Error, I[1] = -d !Syntax Error, I[1] // wrong This is because the result is not valid at a = 1 for ω = 2πn. So we have to do this d sum separately: d !Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = d !Syntax Error, I !Syntax Error, I bm-n . We now omit the d for a while to evaluate this sum !Syntax Error, I !Syntax Error, I bm-n = !Syntax Error, I [ !Syntax Error, I bm-n - !Syntax Error, I bm-n ] = ( !Syntax Error, Ib-n ) ( !Syntax Error, Ibm ) - !Syntax Error, I[ 1 ] . In the first factor, since b ≡ eiωT , we are facing squared delta functions, so we have to back off to finite N in our processing and later take N→∞, so we continue doing this, = ( 2πδ5(ωT1,N) )2 - (2N+1) = (2N+1) [ ( 2πδ5(ωT1,N) )2/ (2N+1) - 1 ] = (2N+1) [ (2πδ6(ωT1,N) - 1 ] Then we return to N = ∞ and use limN→∞ δ6(k,N) = !Syntax Error, Iδ(k-2πm) (A.21) to get our result !Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = [ !Syntax Error, I2π δ(ωT1-2πm) - 1 ] !Syntax Error, I[ 1 ] (38.19) The -1 is what one gets from the limit a→1 of , but we see that there is more. We can now assemble the pieces to get <|X(ω)|2> = |Xpulse(ω)|2 { c + β - d + d !Syntax Error, I2π δ(ωT1-2πm) } !Syntax Error, I[ 1 ] Recalling that β - d = c we write this as <|X(ω)|2> = |Xpulse(ω)|2 { c [ +1] + d !Syntax Error, I2π δ(ωT1-2πm) } !Syntax Error, I[ 1 ] and using **** we get <P(ω) > =  Ppulse(ω) { c [ +1] + d !Syntax Error, I2π δ(ωT1-2πm) } (38.20) a = (1-2p) b = eiωT c = (A-B)2/4 d = (A+B)2/4 Maple now computes the square bracketed expression: so that [ +1] = and then here is the final result for a Change/Hold line code : <P(ω) > =  Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } (38.21) where a = (2p-1) and p is the probability of a change while 1-p is the probability of a hold. We shall now investigate various limits of this result. Limit A → B. <P(ω) > =  Ppulse(ω) { A2!Syntax Error, I2π δ(ωT1-2πm) } (38.22) In the case that the pulse is a box we use (34.22), Ppulse(ω) = (1/ω1) sinc2(ωT1/2) (38.23) we get  <P(ω) > = A2 Ppulse(ω) !Syntax Error, I2π δ(ωT1-2πm) = A2!Syntax Error, I2π δ(ωT1-2πm) (1/ω1) sinc2(πm) = A2 2π δ(ωT1) (1/ω1) = A2 δ(ω) (38.24) This is exactly what we expect when A = B, since the pulse train is then just a constant value A ! Limit p→1 ( a → -1) In this limit we expect to get a square wave pulse train between values A and B. We make use of this limit from Appendix A with 2k = ωT1, lima→-1 = π !Syntax Error, Iδ(ωT1/2-mπ/2) = !Syntax Error, I2π δ(ωT1-mπ) (A.25b) and then our Change/Hold spectral power density becomes <P(ω) > =  Ppulse(ω) { [ ]2 !Syntax Error, I2π δ(ωT1-mπ) + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } Installing the box pulse shape Ppulse(ω) = (1/ω1) sinc2(ωT1/2) and using (38.24) the second term becomes just [ ]2 δ(ω) while the first term is [ ]2 !Syntax Error, I2π δ(ωT1-mπ) (1/ω1) sinc2(mπ/2) =  [ ]2 2π !Syntax Error, Iδ(ωT1-mπ) (1/ω1) (mπ/2)-2 =  (A-B)2 (2/π2) !Syntax Error, I(1/m2) δ(ω - mω1/2) giving a final result, <P(ω) > = (A-B)2 (2/π2) !Syntax Error, I(1/m2) δ(ω - mω1/2) + [ ]2 δ(ω) (38.25) Comparing the first term with (34.23), we see that it is the spectrum of a square wave whose peak to peak amplitude is (A-B), which is exactly what it should be. The second term then correctly accounts for the expected average DC level of (A+B)/2. Limit p→0 ( a → +1) In this case for a square wave we expect to get a result appropriate for an ensemble of pulse trains half of which have constant value A and the other have constant value B, since all pulse trains are in a permanent hold state with p = 0, nothing changes. This time we use this limit (A.23c) with 2k = ωT1 lima→+1 = π !Syntax Error, Iδ(ωT1/2 - mπ) = !Syntax Error, I2πδ(ωT1 - m2π) (A.23c) to get <P(ω) > =  Ppulse(ω) { [ ]2 !Syntax Error, I2π δ(ωT1 - 2mπ) + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } Installing the square pulse spectrum (38.23) Ppulse(ω) = (1/ω1) sinc2(ωT1/2), the second term according to (38.24) becomes [ ]2 δ(ω) while the first term is [ ]2 !Syntax Error, I2π δ(ωT1-2mπ) (1/ω1) sinc2(mπ) =  0 giving the result <P(ω) > = [ ]2 δ(ω) (38.26) This is the expected result, appropriate for an average DC level of (A+B)/2. Limit p→1/2 ( a → 0) Recall the general result <P(ω) > =  Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } The ratio becomes unity so the result is <P(ω) > =  Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } (38.27) Box Shaped Pulse for general p: <P(ω) > =  Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } Ppulse(ω) = (1/ω1) sinc2(ωT1/2) As usual, the second term becomes [ ]2 δ(ω) , so the result is <P(ω) > = [ ]2 (1/ω1) sinc2(ωT1/2) + [ ]2 δ(ω) (38.28) Box Shaped Pulse for p = 1/2 (a = 0): <P(ω) > = [ ]2 (1/ω1) sinc2(ωT1/2) + [ ]2 δ(ω) (38.29) <P(ω) > = (1/ω1) { [ ]2 sinc2(πx) + [ ]2 δ(x) } x ≡ Ignoring the factor (1/ω1) we make this plot of <P(ω) > which is the same as for unipolar NRZ but with different scaling factors for the two terms, Example: NRZI line code Coding: This is a special case of Change/Hold encoding where A = 1 and B = 0. data = [ 1 0 1 1 0 0 1] encode = [ 1 0 1 1 0 0 1] NRZI means NRZ Invert-on-1, where NRZ means non return to zero (see comments at the start of Secton 36). NRZI does not mean "NRZ inverted". Sometimes people use A = 0 and B = 1 so then transitions happen on 0 instead of 1, as in the standard for USB (Universal Serial Bus). We shall use A=1, B=0. The Change/Hold spectra are symmetric in A↔B, so the NRZI spectra are the same for either convention. Coefficients αm,n and β: αn,m = <ymyn> = (1/4) [ a|m-n| (A-B)2 + (A+B)2 ] = (1/4) [ a|m-n| + 1 ] β = <yn2> = (A2+B2)/2 = 1/2 (38.30) Spectrum. <P(ω) > =  Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } = Ppulse(ω) { + !Syntax Error, I2π δ(ωT1-2πm) } (38.31) Box Shaped Pulse for general p: <P(ω) > = (1/ω1) sinc2(ωT1/2) + δ(ω) (38.32) Box Shaped Pulse for p = 1/2 (a = 0): <P(ω) > = (1/ω1) { sinc2(πx) + δ(x) } x ≡ (38.33) The plot is that just shown above, but with each factor being 1/4. This spectrum is exactly the same as that for unipolar NRZ shown in (36.3) with V = 1. One way to understand this fact is that for every NRZ sequence yn there is a NRZI sequence y'n given by y'n = yn – yn-1 // mod-2 math This equation can be inverted to give (assume y0= 0) yn = Σm=1n y'm n = 1,2,3.... Consider the space of all random sequences of 1's and 0's ( random pulse trains p = 1/2). Since we just showed that the relation {yn} ↔ {y'n} is one-to-one, the mapping f: {yn}→{y'n} just reorders the set of random sequences in the ensemble used to compute the spectral power density, so that density cannot change.