Fourier Transforms and their Application to Pulse Amplitude Modulated Signals
DOCX · 2.1 MB
Open DOCX file
Monograph by Phil Lucht (Rimrock Digital Technology), last updated May 18, 2013. It covers the Fourier integral, sine/cosine and convolution theorems, Laplace and Z transforms, sampled signals, digital filters, and the discrete Fourier transform. Later chapters treat dispersion relations, autocorrelation, and spectral power density of statistical pulse trains and line codes (NRZ, RZ, Manchester, AMI). Appendices cover delta functions, the Hilbert transform, probability and a table of transforms.
AI-written summary; may contain errors.
Extracted text (machine-read; may contain errors)
Fourier Transforms and their Application to Pulse Amplitude Modulated Signals
Phil Lucht
Rimrock Digital Technology, Salt Lake City, Utah 84103
last update: May 18, 2013
Maple code is available upon request. Comments and errata are welcome.
The material in this document is copyrighted by the author.
The graphics look ratty in Windows Adobe PDF viewers when not scaled up, but look just fine in this excellent freeware viewer: http://www.tracker-software.com/pdf-xchange-products-comparison-chart .
The table of contents has live links.
Overview and Summary 5
Chapter 1: The Fourier Integral Transform and Related Topics 7
1. The Fourier Integral and Sine/Cosine Transforms 7
(a) Pulses and Pulse Trains, Periodic and Aperiodic 7
(b) The Fourier Integral Transform X(ω) 7
(c) The Fourier Sine and Cosine Transforms Xs(ω) and Xc(ω) 9
2. Proof of the Fourier Integral Transform 12
3. The Convolution Theorem and its Derivation 15
4. Applications of the Convolution Theorem 19
(a) General case 19
(b) A specific example: the RC filter section 20
(c) An even simpler example: Lt = (d/dt) 22
5. Fourier Integral Transform Conventions 24
6. The Generalized Fourier Integral Transform and the Laplace Transform X(s) 25
7. Reflection Rules 28
8. Three simple examples of spectra 28
9. Spectrum of an isolated square pulse 31
10. The Area Rules and Parseval's Formulas 34
11. Differentiation and Integration Rules with Examples 35
12. Time translation x(t) causes phase on X(ω). 37
13. Exponential Sum Rules 37
Chapter 2: Pulse Trains and the Fourier Series Connection 40
14. The Spectrum of a Simple Pulse Train 40
(a) Infinite Length Simple Pulse Train 40
(b) Finite Length Simple Pulse Train 44
15. Connection with the traditional Fourier Series 46
16. Fourier Series for a positive square wave pulse train 49
17. More about positive square-wave pulse trains 49
18. Non-positive pulse trains 54
19. Biphase pulse and pulse train 54
Chapter 3: Sampled Signals and Digital Transforms 57
20. Sampled Signals and their Image Spectra 57
21. Digital Filters, Image Spectra and Group Delay 60
(a) A Digital Filter as an approximation to an Analog Filter 60
(b) Filter Group Delay 64
22. The Digital Fourier Transform X'(ω) Part I 67
23. The Digital Fourier Transform X'(ω) Part II 71
(a) Relation between X'(ω) and X(ω) 71
(b) Summary of the Digital Fourier Transform 73
24. The Z Transform X"(z) 75
(a) Convolution Theorem 77
(b) Unit Impulse 77
(c) Time Translation 78
(d) Derivative Limit 78
(e) Digital RC filter 79
(f) Poles in H"(z) imply feedback and infinite impulse response (IIR) 81
(g) The Digital RC filter revisited 84
(h) Other circuits 85
(i) Z Transform Summary 86
25. Amplitude Modulated Pulse Trains 87
Example 1: A finite pulse train 89
Example 2: The unit impulse and the sinc sum rule 91
26. A simple application: Aperture Correction 94
27. The Discrete Fourier Transform 96
(a) The Discrete Fourier Transform for a Simple Pulse Train x(t) 96
(b) Proof of the Discrete Fourier Transform for a Simple Pulse Train x(t) 99
(c) The Discrete Fourier Transform for an Arbitrary Pulse 101
(d) Comments on the Discrete Fourier Transform 103
Chapter 4: Some Practical Topics 107
28. Do FIR filters have linear phase? 107
29. A Simple Digital Low-Pass Filter 110
30. Use of Oversampling in a D/A Converter Design 115
(a) A very simple D/A converter 115
(b) Oversampling just the D/A converter 117
(c) Add zero-stuffing to reduce aperture 118
(d) Add an ω1/2 digital low-pass interpolation filter 120
Chapter 5: Some Theoretical Topics 125
31. Spectral Dispersion Relations 125
(a) A simple integral equation for X(ω) analytic in the upper half plane 125
(b) A simple integral equation for X(ω) analytic in the lower half plane 126
(c) Dispersion Relations for X(ω) 128
(d) Dispersion Relations for γ(ω) 129
(e) Dispersion and Attenuation 131
(f) Application to coaxial cable 132
(g) The Dispersion Relation expressed in terms of the Hilbert Transform 133
Chapter 6: Power in Pulse Trains 135
32. The Autocorrelation Function 135
(a) Autocorrelation function for a Square Pulse 135
(b) Energy, power and spectral energy density for a finite signal x(t) 136
(c) The Wiener-Khintchine theorem 136
(d) Verification of Wiener-Khintchine for a Square Pulse 137
(e) Cross-correlation, convolution, and autocorrelation 138
33. Spectral power density of a Simple Pulse Train 139
(a) Infinite Simple Pulse Train 139
(b) Finite Simple Pulse Train 141
(c) Spectral Power Density of a Simple Pulse Train 143
(d) Average Power P of a Simple Pulse Train 145
34. Spectral power density of a General Pulse Train 147
(a) General Pulse Train results and connection with the Autocorrelation Function 147
(b) Spectral power density for a General Pulse Train 148
(c) Pulse Trains with Repeated Sequences 149
35. Statistical Pulse Trains 160
(a) Spectral power density for a Statistical Pulse Train 160
(b) Infinite Statistical Pulse Train with Non-Correlated Coefficients 161
(c) Finite Statistical Pulse Train with Non-Correlated Coefficients 163
(d) Statistical Non-Correlated Pulse Trains: Summary and Examples 165
(e) A numerical example of a Statistical Pulse Train 166
(f) What role has the Autocorrelation Function played in our development? 169
(g) A paradox and its resolution 170
36. Application to some Standard Non-Correlated Pulse Train Types (Line Codes) 172
(a) Unipolar NRZ line code 172
(b) Bipolar NRZ line code 175
(c) Unipolar RZ line code 177
(d) Manchester line code 180
(e) Noise, ISI and Eye Patterns 182
37. The AMI Line Code 183
38. The Change/Hold Line Code 192
Example 1: Unipolar NRZI line code 202
Example 2: Bipolar NRZI line code 204
Appendix A: Delta Function Technology 205
(a) Models for Delta Functions and two derivations of (2.1) 206
(b) Models for Periodic Delta Functions 209
(c) Derivation of (13.2) and (13.3) 216
(d) Undoing the limit N→ ∞ : the meaning of δ(0) 217
(e) The function Θ(a ≤ x ≤b) and related sums 219
(f) The product of two delta functions and more on δ(0) 221
Appendix B: Derivation of a Certain Identity 224
Appendix C: The Fourier Transform and its relation to the Hilbert Transform 226
(a) Fourier Transform Notations 226
(b) Principal Value Integrals and the Tick Notation 229
(c) Example: f(u) = 1/u 230
(d) The Pole Avoidance Rule of Complex Integration 232
(e) Example: f(u) = 1/(u±iε) 234
(f) Example: f(u) = θ(u) using the Generalized Fourier Transform 237
(g) Summary of Examples 238
(h) The Hilbert Transform and its relation to the Fourier Transform 238
Appendix D: Probability Theory: how α and β are related to μ and σ 243
(a) Random Variables X and Y 243
(b) Application to the Pulse Train Ensemble 245
(c) Main conclusions for the Pulse Train Ensemble 246
Appendix E: Table of Transforms 248
Detailed Summary of this Document 252
Chapter 1: The Fourier Integral Transform and Related Topics ( 34 p) 252
Chapter 2: Pulse Trains and the Fourier Series Connection 253
Chapter 3: Sampled Signals and Digital Transforms (53 p) 254
Chapter 4: Some Practical Topics (19 p) 257
Chapter 5: Some Theoretical Topics (10 p) 257
Chapter 6: Power in Pulse Trains (70 p) 258
Appendix A: Delta Function Technology (19 p) 260
Appendix B: Derivation of a Certain Identity (2p) 261
Appendix C: The Fourier Transform and its relation to the Hilbert Transform (17 p) 261
Appendix D: Probability Theory: how α and β are related to μ and σ (5 p) 262
Appendix E: Table of Transforms 262
References 263
Overview and Summary
The Fourier Integral Transform and its various brethren play a major role in the scientific world. This monograph develops the analog and digital theory of these transforms and applies that theory to pulse-amplitude-modulated (PAM) signals referred to as "pulse trains" -- signals formed from a single arbitrary pulse shape, x(t) = Σnynxpulse(t-nT1). Particular attention is paid to the spectral power density P(ω) of pulse trains which form a statistical ensemble. When PAM signals are passed through a "linear time-invariant" circuit or other apparatus, that apparatus may be viewed as a "filter" and, due to the Convolution Theorem, the behavior of such a filter is most easily understood in the frequency domain.
All calculations are done in line for the reader to see amd perhaps critique. This is done to provide a clear tracing path for the repair of errors, to demonstrate unusual techniques, and hopefully to remove some of the mystery associated with Fourier Transform mathematics. With just a few exceptions, every equation appearing in this document is derived in this document.
The reader is assumed to be familiar with calculus and complex integration.
Equations which are quotes of earlier equations have their equation numbers in italics.
A detailed summary of the material presented appears at the end of this document. Here we provide only a brief chapter-level summary.
Chapter 1 (Sec 1-13) develops the basic theory of the Fourier Integral Transform and its Sine and Cosine cousins. This Chapter forms the underpinning of all subsequent Chapters. The Convolution Theorem receives special attention. The connection is made between the Laplace Transform and the "generalized" Fourier Transform applied to causal functions. Various "rules" are derived, and a connection is made between filter spectra and time-domain Green's Functions.
Chapter 2 (Sec 14-19) examines the Fourier Integral Transform spectrum of a simple pulse train formed from a general pulse shape. Consideration of pulse trains of infinite length leads to a derivation of the Fourier Series Transform. The chapter concludes with a discussion of sample pulse trains formed from box and bi-phase pulses.
Chapter 3 (Sec 20-27) deals with various digital forms of the Fourier Transform and their corresponding convolution theorems and applies these concepts to amplitude-modulated pulse trains (PAM signals) and to digital filters. Topics include image spectra, aliasing and Nyquist rate, group delay, FIR and IIR filters, poles, and impulse response. The first digital transform is called the Digital Fourier Transform which is an ω-domain version of the Z Transform whose variable is z = eiωΔt . The Z Transform and Discrete Fourier Transforms are then addressed for both periodic and aperiodic signals. A recurring example is a simple RC filter section.
Chapter 4 (Sec 28-30) shows that symmetric FIR filters have linear phase and thus constant group delay. A specific brick wall digital filter is designed and then later used as an oversampling interpolation filter in the design of a D/A converter output section. This system is then simulated with a simple Maple program.
Chapter 5 (Sec 31) explores the subject of dispersion relations for the spectral function X(ω) and for other related functions treated as analytic functions of a complex variable.
Chapter 6 (Sec 32-38) derives expressions for the energy and power, and the spectral energy and power densities of an amplitude-modulated pulse train. This work is carried out with a moderate amount of mathematical rigor. Correlation and autocorrelation are mentioned. The notion of a statistical pulse train is presented and the spectral power density of such pulse trains is established. These results are then applied to various uncorrelated standard line codes including NRZ, RZ and Manchester. Two examples of correlated pulse trains are then treated -- AMI and Change/Hold -- and the latter is then used to obtain results for the NRZI line code.
Appendix A discusses delta functions at a someone deeper and more practical level than is commonly found in texts and on the web. Delta function models are constructed and many mathematical identities are developed which find use in the main text.
Appendix B derives an obscure identity used in the Discrete Fourier Transform discussion of Section 27.
Appendix C further develops Fourier Integral Transform theory beyond the treatment of the main text. Instead of using the notation f(t) and F(ω), here we use f(t) and f^(ω).
Appendix D reviews some basic probability theory and relates the α and β parameters of the uncorrelated spectral power density formula to statistical properties of pulse train amplitudes.
Appendix E provides a table of all transform pairs appearing in this document and shows how they are related to each other.
Chapter 1: The Fourier Integral Transform and Related Topics
The purpose of this chapter is to demonstrate the use of certain mathematical tools associated with the Fourier Integral transform. Along the way simple examples are considered, with emphasis on the particular example of an isolated square pulse in the time domain. If we can make things work out for a square pulse, we can presumably go on to harder problems with the same tools.
One normally analyzes a square-wave pulse train using a Fourier Series, since such a pulse train is a periodic function. In Chapter 2 below, we will make the connection between the conventional Fourier Series, and our Fourier Integral approach.
1. The Fourier Integral and Sine/Cosine Transforms
(a) Pulses and Pulse Trains, Periodic and Aperiodic
Before starting, we need to define a few basic terms describing a function x(t) :
x(t) is a "pulse" if x(t) decays to zero at both t = ± ∞. Normally we think of a pulse as having a finite extent, but it could be something like a Gaussian pulse with an infinite extent. Such pulses fall into the class of aperiodic (non-periodic) functions. Further restrictions on x(t) will be given below.
x(t) is a "simple pulse train" if it is constructed as a sum of identical pulses each of which is shifted by the same constant amount T1 from the previous pulse. Simple pulse trains which are infinite in extent then fall into the class of periodic functions. If finite in extent, they are aperiodic.
x(t) is a "general pulse train" if the pulses are allowed to have arbitrarily different amplitudes. We refer to this as an amplitude-modulated pulse train. If the pulse train is infinite and the amplitude-modulation is a repeating pattern (such as in a square wave), the pulse train is periodic. If the amplitudes are random or are, say, the decimals of π, the pulse train is aperiodic. We do not treat pulse trains composed of pulses having different shapes, such as would be encountered in frequency or phase shift keying, although the methods presented can be modified to account for such pulse trains.
(b) The Fourier Integral Transform X(ω)
Strictly speaking, the Fourier Integral Transform only applies to aperiodic functions due to the integrability condition given below, but if we ignore that condition and blindly apply the transform to a periodic function, the limit of the Fourier Integral Transform becomes the Fourier Series Transform, as will be demonstrated below.
We now state the Fourier Integral transform. Let x(t) be some function of time. If we define X(ω) to be the "spectral components" or "spectrum" of x(t) according to (1.1), then the claim is that we can recover x(t) from these spectral components according to (1.2): [ conventions are discussed in Section 5 ]
Fourier Integral Transform:
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (1.1)
x(t) = (1/2π)!Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (1.2)
Dimensions: If Dim[x(t)] = V, then Dim[X(ω)] = V-sec. Here "V" could by anything or nothing. Often we shall regard x(t) as dimensionless, in which case V is "nothing", but V does suggest Volts as a typical unit for x(t) one might encounter in practice.
In equivalent language, (1.2) represents an expansion of x(t) in terms of the spectral components X(ω). Equation (1.1) shows how these components are "projected out" of the function x(t). Sometimes this projection (1.1) is called "the transform" and then (1.2) is "the inverse transform" or "inversion formula" or "recovery formula" in the sense that x(t) is recovered from its spectral components. The variables t and ω are referred to as "conjugate variables". In this document, we shall think of t as time and ω as angular frequency, but they could be arbitrary conjugate variables. In the theory of waves, they might be position x and wavenumber k.
The expansion (1.2) can be rewritten in terms of frequency f = ω/2π (so df = dω/2π) as follows:
X(f) = !Syntax Error, Idt x(t) e-i2πft projection = transform (1.3)
x(t) = !Syntax Error, Idf X(f) e+i2πft expansion = inverse transform (1.4)
where X(f) = X(ω) = X(2πf). This form gets rid of the (1/2π) in (1.2), but sticks us with 2π factors in the exponents. In general we shall stick with the ω form.
There are restrictions on the function x(t) (or equivalently, on X(ω) going in the other direction). One restriction is that x(t) must be "piecewise continuous", which allows x(t) to have isolated places where it is discontinuous such as at the edges of our box pulse considered below. A second restriction is that the derivative of x(t) must also be piecewise continuous. If t is a discontinuous point (such as an edge of our box), one must interpret x(t) in (1.2) as limε→0 [ x(t+ε) + x(t-ε) ]/2. This is why one often sees the Heaviside step function θ(t) with the property θ(0) = 1/2, as will be demonstrated later.
Fig 1.1
The Heaviside step function is often denoted by u(t) or H(t), but we shall always use θ(t).
A third condition is that x(t) must be "L1 integrable" which means this:
!Syntax Error, Idt |x(t)| < ∞ // that is, this integral must be finite (1.5)
Notice that x(t) = sin(t) is not L1 integrable, although x(t) = sin(t) e-ε|t| is for any tiny ε > 0. Certainly any finite amplitude pulse of any shape having a finite temporal extent will be L1 integrable. If we consider the Fourier Transform of a periodic function in the ε limit sense just stated, then we may apply the Fourier Transform to periodic functions as well as aperiodic ones. This ε limit sense is directly associated with the theory of distributions, and that is why lots of delta functions appear in the analysis.
Appendix C provides more detail on the Fourier Integral Transform. It seemed best to keep this material out of the main document flow, though it is quite important. See also Stakgold Vol. 2 Section 5.6.
There are various names associated with this subject, including Fourier, Riemann, Lebesgue, Fubini, Parseval and Plancherel. A special class of functions for which Fourier Transforms are guaranteed to work are the Schwartz Functions. It is a story that goes on and on. For example, the Uncertainty Principle of quantum mechanics is directly associated with the Fourier Integral Transform where conjugate variables are x and p (position and momentum) or t and E= ω (time and energy). If one tries to localize x(t), X(ω) spreads out and vice versa. Force light to go through a pinhole and this positional confinement causes uncertainty in photon momentum and the light beam diffracts out from its original center line path through the hole.
In what follows, we shall often interchange the order of two integrations in an expression, or the order of two sums, or of one sum and one integral. When functions are reasonable and integration or summation endpoints are finite, this is always an allowed procedure. When endpoints are infinite, there is some danger that the interchange gives wrong results. Essentially, a sum or integral with an infinite endpoint (or endpoints) is a limiting process, and one is then talking about interchanging the order of two limits. This is a rather technical subject having to do with so-called uniform convergence. A certain Moore-Osgood Theorem says that interchange is allowed as long as both limits exist and at least one of the limits is uniformly convergent. The situation is further complicated by what we above called the "ε limit sense" of distribution theory which in effect makes slightly non-convergent forms be convergent. Suffice it to say that all our order interchanges are justified providing the integrands like x(t) respect the conditions stated above.
(c) The Fourier Sine and Cosine Transforms Xs(ω) and Xc(ω)
Any function x(t) can be decomposed into even and odd parts under t ↔ -t,
x(t) = xeven(t) + xodd(t) = [x(t) + x(-t)]/2 + [x(t) - x(-t)]/2 . (1.6)
For xeven(t), only the cos(ωt) part of (1.1) contributes, and for xodd(t) only the sin(ωt) part. Thus,
Xeven(ω) = 2 !Syntax Error, Idt xeven(t) cos(ωt)
Xodd(ω) = 2 !Syntax Error, Idt xodd(t) sin(ωt)
where the factor of 2 arises from reflecting the negative part of the integral to the positive side.
Clearly Xeven(ω) is even in ω, and Xodd(ω) is odd in ω. Therefore, the inverse transformations can be restated in terms of cos and sin in this same manner, where now (1/2π) 2 = (1/π),
xeven(t) = (1/π) !Syntax Error, Idω Xeven(ω) cos(ωt)
xodd(t) = (1/π) !Syntax Error, Idω Xodd(ω) sin(ωt) .
Another view to take of these transforms is to regard x(t) as an arbitrary starting function which is defined only for t ≥ 0. One can then by fiat add a left side to the function, thereby making it either even or odd as desired. For example, if x(t) = exp(-t) for t > 0, one could either "evenize" or "oddize" the function in this manner
Fig 1.2
Since the projections shown above only make use of data for t ≥ 0, this process is just something the user does mentally to explain why the following two transforms are valid for an arbitrary x(t) which is defined only for t ≥ 0. The inverse transforms if examined at t < 0 will produce left sides for x(t) having the appropriate symmetry as suggested in the above figure.
Xc(ω) = 2 !Syntax Error, Idt x(t) cos(ωt) Fourier Cosine Transform
x(t) = (1/π)!Syntax Error, Idω Xc(ω) cos(ωt) (1.7)
Xs(ω) = 2 !Syntax Error, Idt x(t) sin(ωt) Fourier Sine Transform
x(t) = (1/π)!Syntax Error, Idω Xs(ω) sin(ωt) (1.8)
One can add an arbitrary factor A to the projection and 1/A to the inversion which will rescale the multiplicative constants, but the product of the constants must be (2/π).
As noted, any x(t) defined over all t (-∞,∞) can be decomposed into its even and odd parts, and then one can use tables of Fourier Sine and Cosine Transforms to compute the complete Fourier Transform:
X(ω) = !Syntax Error, Idt x(t) e-iωt = !Syntax Error, Idt [ xeven(t) + xodd(t) ] [cos(ωt) - i sin(ωt)]
= !Syntax Error, Idt xeven(t) cos(ωt) - i !Syntax Error, Idt xodd(t) sin(ωt)
= 2 !Syntax Error, Idt xeven(t) cos(ωt) - 2i !Syntax Error, Idt xodd(t) sin(ωt)
= Xeven,c(ω) - i Xodd,s(ω) . (1.9)
Extensive tables of Fourier Sine and Cosine transforms appear in Erdélyi Vol. 4 (ET I).
Example: x(t) = e-at with Re(a) > 0 :
Xc(ω) = 2 !Syntax Error, Idt x(t) cos(ωt) = 2 !Syntax Error, I e-at cos(ωt) = 2a/(ω2+a2) FCT
x(t) = (1/π)!Syntax Error, Idω Xc(ω) cos(ωt) = (2a/π) !Syntax Error, Idω cos(ωt) /(ω2+a2) = e-at
XS(ω) = 2 !Syntax Error, Idt x(t) sin(ωt) = 2 !Syntax Error, I e-at sin(ωt) = 2ω/(ω2+a2) FST
x(t) = (1/π)!Syntax Error, Idω Xc(ω) sin(ωt) = (2/π) !Syntax Error, Idω sin(ωt) ω /(ω2+a2) = e-at
Below we shall discuss how the Fourier Integral Transform becomes the Fourier Series Transform for periodic functions. In the same manner, the Fourier Sine Transform becomes the Fourier Sine Series Transform, and similarly for the Cosine transform, though we shall not explicitly discuss these cases.
2. Proof of the Fourier Integral Transform
A simple proof of the Fourier Integral theorem follows from this fact,
!Syntax Error, Idx e±ikx = 2πδ(k) (2.1)
where δ(k) is a "distribution" or "symbolic function" known as the Dirac delta function. To "prove" (2.1), we first note that when k = 0, both sides are infinite, which seems promising. When k ≠ 0, the usual arm-waving argument is that the oscillating phasor integrates to 0 over the long haul, or perhaps one claims that instead for the cos(kx) + isin(kx) real and imaginary parts. The "ε limit sense" mentioned above strengthens the arm-waving argument. For example, for k ≠ 0,
limitε→0 [!Syntax Error, I cos(kx) e-εx dx ] = limitε→0 [ε / (ε2+k2) ] = 0 . k ≠ 0
To establish the 2π in (2.1), integrate both sides from k = -a to k = a. The right side gives 2π since the area "under" δ(k) = 1. The LHS gives (here is our first order interchange),
!Syntax Error, Idk!Syntax Error, Idx e±ikx = !Syntax Error, Idx!Syntax Error, Idk e±ikx = !Syntax Error, Idx [!Syntax Error, Idk cos(kx)] // sin(kx) is odd
= !Syntax Error, Idx [ 2 sin(ax)/x ] = 2 [!Syntax Error, Idx sin(ax)/x ] = 2 [ π ] = 2π .
More serious derivations of (2.1) are presented in Appendix A (a) which the reader is encouraged to peruse. This Appendix also discusses the meaning of δ(0), a symbol we shall be using in Chapter 6.
One key property of the delta function is its "sifting property",
!Syntax Error, Idx δ(x-y)f(x) = f(y)θ(b-y)θ(y-a) = f(y)Θ(a≤y≤b) a < b (2.2)
where θ(x) is the Heaviside Step Function noted above, and Θ(a≤y≤b) ≡ θ(b-y)θ(y-a) is a special notation explained in Appendix A (e) which makes certain manipulations easier to visualize. These functions cause the integral to vanish if y lies outside the range (a,b). If y coincides with endpoint b, say, then since θ(0) = 1/2, the right side becomes f(y)/2, as if the integral were picking up half the area of the delta function. A special case of the above equation is
!Syntax Error, Idx δ(x-y)f(x) = f(y) . (2.3)
Accepting (2.1), we can verify the Fourier Integral Transform in both directions. First (and here are more order interchanges!),
X(ω) = !Syntax Error, Idt x(t) e-iωt = !Syntax Error, Idt {(1/2π)!Syntax Error, Idω' X(ω') e+iω't } e-iωt
= (1/2π) !Syntax Error, Idω' X(ω')[!Syntax Error, Idt e+i(ω'-ω)t] = (1/2π) !Syntax Error, Idω' X(ω') 2π δ(ω'-ω)
= !Syntax Error, Idω' X(ω') δ(ω'-ω) = X(ω) .
Going the other way is similar,
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt = (1/2π) !Syntax Error, Idω {!Syntax Error, Idt' x(t') e-iωt' } e+iωt
= (1/2π) !Syntax Error, Idt' x(t') [!Syntax Error, Idω e+iω(t-t')] = (1/2π) !Syntax Error, Idt' x(t') 2π δ(t-t')
= !Syntax Error, Idt' x(t') δ(t-t') = x(t) .
Have we "proved" the Fourier Transform by doing these verifications? Yes, but we have not proven in detail that the restrictions stated above on x(t) must be respected. In general, "proving" the viability of a transform lies in the realm of Sturm-Liouville theory, see following Comments. The main idea is that one must show that a set of basis functions is "complete" for an interval of interest, which means one must know the full "spectrum" of a certain operator L.
Comments
The set of functions eikx/ form a complete orthonormal set on the interval (-∞,∞) for functions f(x) of the restricted class described above (L1 integrable, etc). Picking one of the signs, we can write (2.1) in these two ways, where * means complex conjugation (perhaps think of x as t, and k as ω )
!Syntax Error, Idx [eikx/] [eik'x/]* = δ(k-k') // functions eikx/ are orthonormal
!Syntax Error, Idk [eikx/] [eikx'/]* = δ(x-x') // functions eikx/ are complete
In general, every "self-adjoint" linear differential operator L on a given interval (a,b) defines a complete orthonormal set of functions on that interval and an associated transform on that interval. These functions are the normalized eigenfunctions of the eigenvalue equation Luλ = λuλ. The combination of L and (a,b) is said to define a "Sturm-Liouville problem". When the endpoints are finite and L is "regular" at these endpoints, the spectrum for λ is discrete. When the endpoints are "singular", as for example when one or both are infinite, the spectrum for λ is usually all continuous, but sometimes there is also a discrete component.
In the case of the Fourier Transform, which is our only transform family of interest, L = -d2/dx2,
λ = k2, the interval is (-∞,∞), the eigenvalue equation is -d2uk/dx2 = k2uk and uk = eikx/.
There are many other "name-brand" transforms and each is associated with a particular L on a particular interval. An example is the Legendre Polynomial Transform on the interval (-1,1). Another is the Fourier Series Transform on some (a,b). Just as we expand x(t) on the e-iωt in (1.2) for interval
(-∞,∞), so also can we expand f(z) on Pl(z) for z in (-1,1), or f(x) on sin(nπx/L) for x in (0,L). In the latter two cases, the spectrum is indicated by l = 1,2,3... or n = 1,2,3.. , while in the former ω = real, a continuous spectrum.
The subject has further extension to functions of more than one variable. For example, a function f(θ,φ) where θ,φ define points on a sphere may be expanded on the "spherical harmonics" Ylm(θ,φ) which are simultaneously eigenfunctions of two self-adjoint differential operators called L2 and Lz (angular momentum). The interval for θ is (0,π) and for φ is (0,2π).
Stakgold Volume I discusses the spectra of differential operators in Chapter 4, and the theory of distributions (such as the delta function) in Chapter 1. Volume II then extends these ideas to multiple variables.
These Comments are only for the reader's possible interest and are not "used" anywhere below except where it is noted that the Fourier Transform functions e-iωt form a complete set on the interval (-∞.∞).
3. The Convolution Theorem and its Derivation
Suppose three functions of t are related as follows (a convolution integral):
a(t) = !Syntax Error, I dt' b(t-t')c(t') sometimes written a = b * c (3.1)
Letting t" = t - t' this can also be written
a(t) = !Syntax Error, I dt" b(t")c(t-t") = !Syntax Error, I dt' b(t')c(t-t') = !Syntax Error, I dt' c(t-t') b(t') (3.2)
which just shows that the integral is invariant under the change b ↔ c ( so a = b * c = c * b).
Now assume that Fourier Integral expansions exist for a(t), b(t) and c(t) so we can write,
a(t) = (1/2π) !Syntax Error, Idω A(ω) e+iωt A(ω) = !Syntax Error, Idt a(t) e-iωt
b(t) = (1/2π) !Syntax Error, Idω B(ω) e+iωt B(ω) = !Syntax Error, Idt b(t) e-iωt
c(t) = (1/2π) !Syntax Error, Idω C(ω) e+iωt C(ω) = !Syntax Error, Idt c(t) e-iωt (3.3)
Then apply the operation !Syntax Error, Idt e-iωt to both sides of (3.1),
!Syntax Error, Idt e-iωt a(t) = !Syntax Error, Idt e-iωt [!Syntax Error, I dt' b(t-t')c(t')]
or
A(ω) = !Syntax Error, Idt e-iωt [!Syntax Error, I dt' b(t-t')c(t')] . (3.4)
Next, these expressions follow from (3.3),
b(t-t') = (1/2π)!Syntax Error, Idω" B(ω") e+iω"(t-t')
c(t') = (1/2π)!Syntax Error, Idω' C(ω') e+iω't' (3.5)
and we can install them into (3.4) to get (lots of steps here)
A(ω) = !Syntax Error, Idt e-iωt [!Syntax Error, I dt' b(t-t')c(t')]
= !Syntax Error, Idt e-iωt !Syntax Error, I dt' { (1/2π)!Syntax Error, Idω" B(ω") e+iω"(t-t') } { (1/2π)!Syntax Error, Idω' C(ω') e+iω't'}
= (1/2π)2 !Syntax Error, Idω" B(ω")!Syntax Error, Idω' C(ω') !Syntax Error, Idt e-iωt !Syntax Error, I dt' e+iω"(t-t') e+iω't'
= (1/2π)2 !Syntax Error, Idω" B(ω")!Syntax Error, Idω' C(ω') !Syntax Error, Idt !Syntax Error, I dt' ei(ω"-ω)t ei(ω'-ω")t'
= (1/2π)2 !Syntax Error, Idω" B(ω")!Syntax Error, Idω' C(ω') [ !Syntax Error, Idt ei(ω"-ω)t ] [ !Syntax Error, I dt' ei(ω'-ω")t' ]
= (1/2π)2 !Syntax Error, Idω" B(ω")!Syntax Error, Idω' C(ω') [2π δ(ω"-ω)] [2πδ(ω'-ω")]
= !Syntax Error, Idω" B(ω") δ(ω"-ω) [ !Syntax Error, Idω' C(ω') δ(ω'-ω") ] = !Syntax Error, Idω" B(ω") δ(ω"-ω) [ C(ω") ]
= !Syntax Error, Idω" B(ω")C(ω") δ(ω"-ω) = B(ω) C(ω) .
Thus, we have proven that
a(t) = !Syntax Error, I dt' b(t-t')c(t') A(ω) = B(ω) C(ω) .
Using the very same method, one can show that is also true, and we end up with this very important theorem:
The Convolution Theorem:
a(t) = !Syntax Error, I dt' b(t-t')c(t') A(ω) = B(ω) C(ω) (3.6)
The significance of this result cannot be overstated. It says that, whereas the relationship between a,b,c might be complicated in the time domain as shown on the left, that complication goes away in the frequency domain on the right, where we have a simple product of functions A = BC. One says that the Fourier Integral Transform "diagonalizes" the convolution integral.
Again using the same method of proof, one can obtain this corresponding theorem:
A(ω) = (1/2π) !Syntax Error, Idω' B(ω-ω')C(ω') a(t) = b(t) c(t) (3.7)
The extra (1/2π) factor arises because we started with (1.1) and (1.2) which are not symmetric.
Comments
(1) Dimensions. In the convolution equation in (3.6), we shall think of a(t) and c(t) as having the same dimensional units we generically call V, because we are going to think of this equation as being a "filter" where c(t) is the input, a(t) is the output, and b(t) is the "filter kernel". In the examples of this document, we shall take a(t) and c(t) to be dimensionless, but in some application one might add a dimension of "volts" or "amperes" to the functions a(t) and c(t). Looking at (3.6), we find that if a(t) and c(t) are dimensionless or have the same dimensions, then b(t) must have dimensions of inverse time. Looking then at (1.1), we see that A(ω) and C(ω) have dimensions of time, whereas B(ω) is dimensionless. This then is how the dimensions work out in A(ω) = B(ω) C(ω).
(2) Operators. In the language of linear operators, one can regard the functions a and c in (3.6) as vectors in an infinite dimensional vector space of functions, and then the left equation of (3.6) is a "matrix equation" which says a = bc where b is a linear operator. Specifically, it is an "integral operator". Operator b acts on vector c to produce vector a. One could think of (3.6) as a matrix equation at = Σt' btt'ct' where the continuous time variables act as indices. If we similarly write the right side of (3.6) as Aω = Σω' Bωω'Cω' then we find that the matrix Bωω' = δω,ω'Bω so matrix B is "diagonal", hence the term "diagonalization". We shall not pursue this language much, but make the reader aware of this interpretation. For more on this subject see Stakgold Chapter 3 on linear integral equations.
(3) Groups. In the more general theory of Fourier Analysis on groups, the "projection" and "expansion" have this form, analogous to (1.1) and (1.2), where σ plays the role of ω and g the role of t,
Fσkk' = ∫dg f(g) Dσkk'(g-1) // projection, transform
f(g) = Σσ dσ Σk,k' Fσkk' Dσk'k(g) = Σσ dσ tr[Fσ Dσ(g)] // expansion, inverse transform
where in the last line tr means trace and F and D are regarded as square matrices. Here g refers to a set of group variables like Euler angles ψ,θ,φ for the rotation group. The functions Dσk'k(g) are the "matrix representations" of the group which have some dimension dσ. To say that a set of matrices forms a group representation means that, when multiplied, the matrices which represent group elements have the same multiplicative property had by the abstract group elements themselves,
Σk" Dσ(g1)kk" Dσ(g2)k"k' = Dσ(g3)kk' or Dσ(g1) Dσ(g2) = Dσ(g3) "group property"
where g1g2 = g3. Quantity dg is the "invariant measure" on the group which is dψd(cosθ)dφ for the rotation group. In our simple Fourier Transform case, we have dg = dt, the group is the group of translations along the time axis, and the matrix representations have dimension dσ = 1 and are thus 1x1 matrices, namely, e-iωt. The group property shown above is just e-ωt e-ωt = e-(ω+ω)t .
In the general case, the convolution equation and its diagonalization are given by this generalized convolution theorem,
a(g) = ∫dg1 b(g1-1g)c(g1) Aσkk' = Σk" Bσkk" Cσk"k'
where the dg1 integral is over the entire parameter space of the group. The derivation of this theorem makes use of the group property shown above and the fact that dg3 = d(g1g2) = dg1 when the integration is over the full group space, just as in the simple case dt3 = d(t1+t2) = dt1. This is why dg is referred to as the "invariant" measure.
In the case of one-dimensional representations, the convolution theorem says Aσ = BσCσ which is our A(ω) = B(ω)C(ω) with σ = ω. Despite the sum on k", the equation on the right is said to be "diagonalized" because it is true separately for each value of the label σ. If one writes Bσkk" = δσ,σ" Bσk,σ"k", then the matrix Bσk,σ"k" is diagonal in the sense that it is mostly zero but has square matrices of size dσ x dσ on its diagonal ("block diagonal form"). For more on the subject of Fourier analysis on groups, see Hermann.
4. Applications of the Convolution Theorem
This section is included because books often do not make the connection between the convolution theorem, Green's Functions, and the real world of everyday electronics. Often too this discussion is presented in the language of Laplace Transforms, so here we work in terms of the above Fourier Transform. We shall state the general case, then do specific examples.
(a) General case
The real world seems to be described by linear differential equations. Here is a general form:
Lt u(t) = f(t) (4.1)
where Lt contains perhaps first and second order differential operators d/dt and d2/dt2. One would like to solve this equation for u, given some driving function f. It would be nice if one could find some operator that is the inverse of Lt and apply it to both sides of (4.1); the problem would then be solved. This is exactly what we are going to do. We first define a related equation as follows,
Lt g(t-t') = δ(t-t') . (4.2)
Here g(t-t') is the "impulse response" of the differential equation to the driving impulse term δ(t-t'). If we can solve (4.2) for g, then we know a solution to (4.1) for u(t) in terms of f and g, namely,
u(t) = !Syntax Error, Idt' g(t-t') f(t') . (4.3)
In general one can add to this "particular" solution any solution of (4.1) with f(t) = 0. These extra homogeneous solutions can be tailored to meet required boundary conditions.
Proof:
Lt u(t) = Lt {!Syntax Error, Idt' g(t-t') f(t')} = !Syntax Error, Idt' [Lt g(t-t')] f(t') = !Syntax Error, Idt' [δ(t-t') ] f(t') = f(t) .
The function g is called the "Green's Function", "propagator", or "kernel" of Lt. In (4.3) one is applying an integral operator G = ∫g to function f to get function u, so u = Gf. Looking at (4.1), this integral operator G must in some sense be the inverse of the differential operator Lt.
Now we come to the main point: equation (4.3) is a convolution equation of the form (3.6)! Therefore, we can write (4.3) in the ω-domain as follows:
U(ω) = G(ω) F(ω) . (4.4)
(b) A specific example: the RC filter section
Consider a simple unloaded RC filter section with input voltage vi(t) and output voltage vo(t),
Fig 4.1
Here is the differential equation, derived on the right above,
[ RC d/dt + 1] vo(t) = vi(t) . (4.5)
Define the Green's Function g(t) by
[ RC d/dt + 1] g(t) = δ(t) . (4.6)
Then the solution to (4.5) is this:
vo(t) = !Syntax Error, Idt' g(t-t') vi(t') . (4.7)
This has the convolution form, so in the frequency domain we get
Vo(ω) = G(ω) Vi(ω). (4.8)
Sometimes this is called "filter theory", where G(ω) is the "transfer function" of the filter -- in our case a simple RC filter. If we expand g(t) as in (1.2) and δ(t) as in (2.1) then (4.6) says
[ RC d/dt + 1] (1/2π) !Syntax Error, Idω G(ω) e+iωt = (1/2π) !Syntax Error, Idω e+iωt
or
!Syntax Error, Idω G(ω) [ RC d/dt + 1] e+iωt = !Syntax Error, Idω e+iωt
or
!Syntax Error, Idω G(ω) [ RC (iω) + 1] e+iωt = !Syntax Error, Idω e+iωt .
Since the basis functions eiωt form a complete set on the interval (-∞,∞), we conclude that
G(ω) [ RC (iω) + 1] = 1
or
G(ω) = 1/ [ 1 + iωRC]
or
G(ω) = (1/iωC) / [(1/iωC) + R] = (-iXc)/ [ R +(- iXc)] // XC = capacitive reactance = (ωC)-1
or
G(ω) = Zc/(R+Zc) . // ZC = -i XC
In the frequency domain, we see G(ω) as the output of a simple voltage divider where one element has real impedance R and the other imaginary impedance Zc.
The above series of steps shows that in the frequency domain, one can replace d/dt by iω.
Let τ ≡ RC and compute g(t) using (1.2),
g(t) = (1/2π) !Syntax Error, Idω G(ω) e+iωt = (1/2π) !Syntax Error, Idω e+iωt / [ 1 + iωτ]
= (1/2πiτ) !Syntax Error, Idω e+iωt / [ ω - i/τ] .
Thinking of this as a contour integral,
Fig 4.2
For t > 0 we can close in the upper half plane and pick up the residue of the pole sitting at ω = i/τ to get
g(t) = (1/2πiτ) 2πi ei(i/τ)t = (1/τ) e-t/τ = (1/RC) e-t/RC .
For t < 0 we close instead in the lower half plane and pick up nothing, so the result is 0. Thus
g(t) = (1/RC) e-t/RC θ(t)
where θ(t) is the Heaviside step function. To summarize, the transfer function G(ω) and its time-domain Green's Function g(t) are:
G(ω) = 1/( 1 + iωRC) = ZC/( R + ZC) (4.9)
g(t) = (1/RC) e-(t/RC) θt) . (4.10)
If vi(t) = δ(t), then from (1.1) we have Vi(ω) = 1. In this case, Vo(ω) = G(ω) 1 and it must be that v0(t) = g(t). Thus, one always interprets g(t) as the impulse response of the filter. In this case, it is of course a simple decaying exponential. One then interprets θt) as saying that the impulse response only propagates forward in time, never backward ("causality").
We conclude this section by writing out (4.7), which shows the time domain solution of our simple RC filter:
vo(t) = !Syntax Error, Idt' g(t-t') vi(t') = (1/RC) !Syntax Error, Idt' e-(t-t')/RC θt-t') vi(t')
= (1/RC) !Syntax Error, Idt' e-(t-t')/RC vi(t') . (4.11)
This says that the present response of the system at time t is the cumulative result of the impulse responses at all past times, weighted by the value of the input function vi(t'). In other disciplines, the expression (1/RC)e-(t-t')/RC = g(t-t') is called a propagator, since it describes exactly how the voltage amplitude vi(t') at some past time propagates into vo(t) at a some future time. This terminology is more useful when the integral operator has more than one variable. If dt' were replaced by dt' d3x', then an equation like (4.11) would perhaps describe how a wave propagates through 3D space. The result is then the sum of "scattering" at all t' in the past, and all positions x' in space. In our example, there is no spatial aspect, and the output voltage is just the input voltage scattered off the RC filter at all times in the past.
(c) An even simpler example: Lt = (d/dt)
In this section, we use the same equation numbers as in section b above, but add label c, as in (4.9)c.
Let's start by considering L't = RC (d/dt). If RC is regarded as very large, RC >> 1, then we may take over the results (4.9) and (4.10) of the previous section as follows:
G'(ω) = 1/(iωRC) for L't = RC (d/dt)
g'(t) = (1/RC) θt) .
Then if we rescale so that Lt = (1/RC) L't = (d/dt), we just multiply the above results by RC to get
G(ω) = 1/(iω) for Lt = (d/dt). (4.9)c
g(t) = θt) .
(4.10)c
Our starting differential equation is
[d/dt] vo(t) = vi(t) . (4.5)c
Define the Green's Function g(t) by
[d/dt] g(t) = δ(t) . (4.6)c
Then the solution to (4.5)c is this:
vo(t) =!Syntax Error, Idt' g(t-t') vi(t') . (4.7)c
This has the convolution form, so in the frequency domain we get
Vo(ω) = G(ω) Vi(ω) = [ 1/(iω)] Vi(ω) . (4.8)c
Inserting g(t-t') = θt-t') from (4.10)c we get
vo(t) =!Syntax Error, Idt' g(t-t') vi(t') = !Syntax Error, Idt' vi(t') . (4.11)c
We can differentiate this result to obtain the starting equation (4.5)c.
In this case, the time propagator is simply g(t-t') = θt - t'). The forward propagator amplitude is just 1 regardless of how far t and t' are separated, and the propagator is 0 if it tries to send something backwards in time. In other words, causality is built into this propagator, and this was also the case for the RC filter (4.10). Physically, this example is an RC filter with a very long time constant, so basically all effects from the recent past propagate to the present with no attenuation. The capacitor is an integrator, just as one uses in an operational-amplifier-based analog computer design.
There are some subtleties involving the transform pair G(ω) = 1/(iω) and g(t) = θt) which have been swept under the rug in the last few paragraphs, but which are laid bare in Appendix C.
5. Fourier Integral Transform Conventions
(a) Sign of Phase. The Fourier Transform (1.1) and (1.2) is also true if one replaces i with -i in both equations. This follows trivially from (2.1). EE people usually think of the fundamental "spectral component" time dependence as e+iωt and cos(ωt), so they want to see e+iωt in the expansion (1.2). Physics people who are often pondering plane waves described by exp[+i(kr - ωt)] or cos(kr - ωt) want to see e-iωt in the expansion (1.2). We have chosen to use the EE convention. If you want to use the physics convention, you must replace all our i by -i, and also Im[ ] by -Im[ ]. The physics convention is used, for example, by Stakgold Vol. II page 23 equation (5.32), a source we sometimes quote below.
(b) j Versus i. EE texts favor j, physics texts always use i, which is of course the true historical symbol for . The reason is that EE people deal with lumped circuits containing currents labeled "i", whereas physicists deal with Maxwell's equations which contain current density "j". Each discipline chooses its symbol for to minimize confusion with these other symbols. We shall use i.
(c) Allocation of 2π. Our convention has been to put the factor of (1/2π) into the inversion formula (1.2), and to have no factor at all in the transform formula (1.1). We shall describe our motivations for doing this below.
Sometimes books put a 1/factor in the transform (1.1), which causes the appearance of an identical 1/factor in equation (1.2). This has the advantage of making the two equations completely symmetrical, and reminds us that there is complete symmetry between the conjugate variables t and ω. We have chosen not to do this in our presentation.
And of course the world would not be complete if some people did not prefer to put a 1/2π into the expansion equation (1.1), and have none of it in (1.2).
In general, the product of the two factors must be 1/2π. This is simply due to the 2π factor sitting on the right of (2.1). The main reason we choose to put the factor entirely in (1.2) is the following. Suppose we have a constant k≠1 on the right side of (1.1). Then the transform X(ω) so defined is scaled differently than our X(ω). If we rescale all terms in the ω-plane part of the convolution theorem (3.6), we must end up with an extra factor of k hanging around in the new version of the right side of (3.6). The other alternative is to add a k factor into the definition of the convolution integral (3.1). Neither is very nice, and there is a lot of history behind (3.6) as written. This is why we have done our 2π factors as shown above.
(d) Comments. The conventions discussed above have no real physical significance, they just lead to different definitions of X(ω), so there are slight variations in (1.1) and (1.2). It is important to at least adopt some convention so one knows what one is talking about. A potential problem comes when one tries to look up something in a table or handbook; one may be off by a factor of 2π or if one is not clear on the conventions (attention people sending spacecraft to planets). The conventions we have adopted are consistent with 33.7,8 of the 1968 Schaum's Mathematical Handbook (now 4th Ed. 2012), and also with a 1967 printing of the Fourth Edition ITT Reference Data for Radio Engineers (now 9th Ed. 2001). There must be something good about these two publications since they are both alive and well after half a century.
One other small convention detail is that, with our adopted phase convention, spectra X(ω) are normally analytic in the lower half ω plane and have poles in the upper half plane. Use of the other phase sign results in X(ω) which are analytic in the upper half ω plane and have poles in the lower half plane, since in effect the entire ω plane is reflected in the real ω axis by a change of sign phase. This affects the form of dispersion relations, as we shall see in Chapter 5.
6. The Generalized Fourier Integral Transform and the Laplace Transform X(s)
In the discussion above, the Fourier Integral Transform spectrum X(ω) is defined for ω real and for x(t) being L1 integrable. One can show that the idea of the Fourier Transform can be extended to allow for x(t) which are not L1 integrable, provided one thinks of ω as a complex variable, and one thinks of the inversion integral contour of (1.2) as being a horizontal line in the complex ω plane which runs below any possible singularities of X(ω). In this extension of the Fourier Integral Transform, one must use single-sided functions, and one usually deals with right-sided (causal) functions which vanish for t < 0. Such a function has the general form x(t) = θ(t)f(t). As an example, suppose
x(t) = θ(t)eαt . (6.1)
In this case, (1.1) says
X(ω) = !Syntax Error, Idt eαt e-iωt = !Syntax Error, Idt e(α-iω)t = = (6.2)
which has a pole at ω = -iα. The integral converges because we assume that ω has a sufficiently large negative imaginary part (perhaps -ic) to make it converge. The inversion formula is then
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt = (-i/2π) !Syntax Error, Idω (6.3)
Fig 6.1
where we position the contour at -ci which we assume lies below the pole. For t < 0, we close the contour downward, e+iωt decays, the great circle makes no contribution, and we recover that fact that x(t) = 0 for t < 0. For t > 0 we close upward and wrap the pole to get
x(t) = (-i/2π) 2πi ei(-iα)t = eαt
which of course is the desired result.
So our generalized Fourier Integral Transform may be stated as :
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (6.4)
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (6.5)
where -ci lies below all singularities of X(ω).
For a detailed discussion of this subject, see Stakgold Vol 2 pp 23-28. Since Stakgold uses the opposite phasor sign in his definition of the Fourier Transform, the ω plane contour for him is raised up so it runs above all poles of X(ω), which he calls x^(ω). Stakgold is interested in the Fourier Transform of a distribution, but in these pages he talks only about functions.
If we now change variables from ω to s = iω, the above generalized Fourier transform becomes
X(s/i) = !Syntax Error, Idt x(t) e-st (6.6)
x(t) = (1/2πi) !Syntax Error, Ids X(s/i) e+is (6.7)
where the contour in the s-plane is as shown here, lying to the right of all singularities of X(s/i),
Fig 6.2
We rotated the previous picture 90o counterclockwise to get the s-plane picture. If we now define
X(s) ≡ L[x(t), s] ≡ X(s/i) (6.8)
the transform becomes
X(s) = !Syntax Error, Idt x(t) e-st (6.9)
x(t) = (1/2πi) !Syntax Error, Ids X(s) e+is (6.10)
which is the Laplace Transform and its inverse. The inversion contour runs to the right of all singularities in X(s).
Here then is our conclusion: for the set of functions x(t) which are "causal", like our Green's Function propagator g(t) discussed above, and which therefore vanish at negative time, we can make an exact identification between the Laplace Transform X(s) and the generalized Fourier Transform X(ω) evaluated at ω = s/i. If we think of s = real, then we are "analytically continuing" the function X(ω) off its real ω axis. If we think of ω as real, then we are analytically continuing the Laplace Transform to imaginary s.
For non-causal functions x(t), the Fourier and Laplace Transforms do not have this simple relationship. Of course, when considering some general function x(t), we can easily make it causal "by fiat" by simply multiplying it by θ(t). In this case, our association holds all the time,
L [θ(t)x(t), s] = X(s/i) X(ω) = L [θ(t)x(t), iω] . (6.11)
This lets us make use of extensive tables of Laplace Transforms to look up X(ω) for given x(t), and lets us also understand that the "general properties" of Laplace Transforms also apply to the Fourier Transform, with the appropriate replacement s = iω. A very large table (~ 100 pages) of Laplace Transforms appears in the Bateman Manuscript Project Vol. 4 (see Erdelyi. et. al.).
Example: The Laplace Transform of x(t) = eat is 1/(s-a), and a trivial "property" of the Laplace Transform is that kx(t) maps into k L [x(t),s] (the transform is linear). Thus, for our Green's Function of (4.10), using a = -1/RC,
L [ g(t), s] = L [ (1/RC) e-t/(RC) θt) , s] = (1/RC) [1 / (s + (1/RC))] = 1/(sRC + 1) . (6.12)
Thus we would conclude from (6.12) that
G(ω) = 1/(iωRC + 1) (6.13)
which agrees with (4.9) above.
7. Reflection Rules
Nothing in our Section 2 proof of the Fourier Transform required that x(t) be real. However, if we do assume that x(t) is real (for example, a voltage or current in a real circuit), then from (1.1) the following fact follows at once (* means complex conjugation),
X(-ω) = [X(ω)]* . // x(t) real (7.1)
Thus, one can think of the mysterious negative frequency spectral components of a real function x(t) as simply being defined in this manner in terms of the positive spectral components. Note that X(ω) is in general complex, even if x(t) is real, because exp(-iωt) is complex in (1.1).
Regardless of whether x(t) is real or not, we know from (1.2) that
x(t) ↔ X(ω) x(-t) ↔ X(-ω) // any x(t) (7.2)
This notation, used later, means that if x(t) has spectrum X(ω), then x(-t) has spectrum X(-ω).
Similarly, (1.2) says that
x(-t) = [x(t)]* // X(ω) real (7.3)
A function having the property f(-x) = f*(x) is called a Hermitian function. So we have shown that if x(t) is real, then X(ω) is Hermitian, and if X(ω) is real, then x(t) is Hermitian.
If x(t) is real, then (7.1) implies
| X(-ω)|2 = | X(ω)|2 (7.4)
and this is why, when dealing with spectral densities (as we shall below), many authors simply reflect the left half of the spectrum to the right side which doubles the right side. This must be done carefully if the spectrum includes a δ(ω) term: the folded spectrum for such a term gets a factor of 1/2. In general we shall not use such folded spectra.
8. Three simple examples of spectra
(a) The spectrum of x(t) = 1 :
In this example, x(t) is a constant over all time. Using (1.1) and (2.1), we find:
x(t) = 1 X(ω) = 2π δ(ω) . (8.1)
This comes as no surprise. For a DC signal, all the energy is concentrated at zero frequency. Of course x(t) = 1 does not respect the requirement !Syntax Error, Idt |x(t)| < 0, which is why the spectrum is a distribution.
(b) The spectrum of x(t) = δ(t - t1) :
Here x(t) is an infinitely narrow pulse of area 1, positioned at t = t1. Using (1.1), we get the following Fourier spectrum:
x(t) = δ(t - t1) X(ω) = e-iωt . (8.2)
The spectrum X(ω) has a constant magnitude 1 for all ω, out to infinite frequency. For such a pulse at t=0,
x(t) = δ(t) X(ω) = 1 (8.3)
and here the phase is constant. This result is (8.1) with ω ↔ t and the constant adjusted due to the asymmetry of the transform in our adopted convention. From Appendix C we quote this general rule
FT of x(t) = X(ω) FT of X(t) = 2πx(-ω) (C.5)
which, when applied to (8.3), gives (8.1) since δ(-ω) = δ(ω).
(c) The spectrum of x(t) = θ(t) :
The regular Fourier Integral Transform spectrum of the Heaviside step function θ(t) is the somewhat peculiar first line following, whereas the generalized Fourier Integral Transform gives the second line
x(t) = θ(t) X(ω) = " " = =
(8.4)
X(ω) = // generalized Fourier Integral Transform of (6.4)
which we now explain. Like x(t) = 1, the Heaviside θ(t) is also not in the class of functions for which the Fourier Transform is defined (!Syntax Error, Idt |x(t)| < 0). We bring θ(t) into the acceptable class by replacing θ by θε where,
θε(t) ≡ for some very small ε > 0 . (8.5)
Then
Xε(ω) = !Syntax Error, Idt θε(t) e-iωt = !Syntax Error, I dt e-εt e-iωt =
and then X(ω) = limε→0 Xε(ω) = (1/iω). But we really have to think of (1/iω) as meaning the limit of . To see why, we now compute x(t) from the inversion formula,
x(t) = (1/2π) !Syntax Error, Idω e+iωt = (1/2πi) !Syntax Error, Idω e+iωt . pole at ω = +iε
For t < 0, close the ω contour down and get 0 since the great circle vanishes. For t > 0 close up and pick up the pole reside to get x(t) = e-εt. Thus we have recovered (8.5). For t = 0, we let the pole move to the real axis from above and deflect the contour down
Fig 8.1
In the limit the contour is shrunk around the pole, the contributions from (-∞,0) and (0,∞) cancel. These two terms are known as a principle value integral and we have
PV!Syntax Error, Idω (1/ω) ≡ dω (1/ω) = 0
since the left and right sides cancel (even range integral of an odd function). All that is left is the half turn around the pole which picks up half the residue at the pole (see Appendix C) so the result is then
x(0) = (1/2πi) !Syntax Error, Idω = (1/2πi) (1/2) (2πi * 1) = 1/2
and we obtain the fact that θ(0) = 1/2 as was shown in Fig 1.1.
If we apply our upcoming differentiation rule (11.1) [ which is to multiply by iω ] we find that
θ(t) ↔ => δ(t) = dθ(t)/dt ↔ iω = 1
which agrees with (8.3) above.
Using the generalized Fourier Integral Transform stated in (6.4) and (6.5), we can regard X(ω) = 1/(iω) without all the ε business since the ω recovery contour in (6.5) runs below all singularities in the ω plane, which contour, when deformed up, gives Fig 8.1 and all the results quoted above. Applying our Laplace equivalence notion (6.8), we would predict from X(ω) = 1/(iω) that
L[θ(t), s] = X(s) = X(s/i) = =
which is in agreement with any Laplace table.
The above examples are treated in more detail in Appendix C where the pf pseudofunction is introduced and the Pole Avoidance Rule is derived and then used.
9. Spectrum of an isolated square pulse
Consider a positive square pulse of amplitude A and width τ which is centered at t=0. We can represent this using the Heaviside step function,
x(t) = A [ θ(t + τ/2) - θ(t - τ/2) ] // = A rect(t/τ)
Fig 9.1
This "square" pulse is in general rectangular and we often refer to it as a box-shaped pulse.
Apply (1.1) to get the spectrum of this pulse,
X(ω) = !Syntax Error, Idt x(t) e-iωt = A !Syntax Error, Idt { [ θ(t + τ/2) - θ(t - τ/2) ]} e-iωt
= A [ !Syntax Error, I - !Syntax Error, I] dt e-iωt = A!Syntax Error, I dt e-iωt = A !Syntax Error, Idt cos(ωt) // sin = odd
= 2A !Syntax Error, Idt cos(ωt) = 2A sin(ωτ/2)/ω = (Aτ) [sin(ωτ/2)] / (ωτ/2) = (Aτ) sinc(ωτ/2)
where we use the definition sinc(x) ≡ sin(x)/x (there are other definitions). To summarize:
x(t) = A [ θ(t + τ/2) - θ(t - τ/2) ] (9.1)
X(ω) = (Aτ) sinc(ωτ/2) . (9.2)
Observations:
(a) The spectrum is real (see (7.3) for why), and it is a continuous function of ω.
(b) Because sinc(-x) = sinc(x), X(ω) is an even function of ω.
(c) X(ω) has the shape we are all familiar with.. The positive zeros are at x = (ωτ/2)nπ for n=1,2,3... The first zero is at ω = 2π/τ (f = 1/τ). The central peak has height (Aτ). Here is a plot of y = sinc(x),
Fig 9.2
(d) Most of the spectral energy is in the central hump, and this represents positive frequency in the range f=0 to f=1/τ .
(e) Quantity (Aτ) is the Area under the time-domain pulse. If the pulse is made twice as narrow (τ → τ/2) and twice as high (A→2A), this area stays constant, but the first zero of X(ω) moves out twice as far (as do all zeros), so the spectral width doubles.
(f) In the limit τ →0 with (Aτ) = (Area) = fixed, the square pulse x(t) approaches (Area) δ(t). Since sinc(x) → 1 as x→ 0, we find from (9.2) that X(ω) = (Area)This is in agreement with (8.3) above. In this limit, the height of the central ω hump stays fixed, and the zeros move out to infinity, as if a small flat portion of the central hump has expanded to fill all ω. A delta function has a "white" spectrum since X(ω) is a constant for all frequencies.
(g) What about the limit τ →∞ ? If we take this limit with A = fixed, we are converting our pulse to a constant DC signal x(t) = A. In this limit, as long as ω ≠ 0, the argument of the sinc function oscillates infinitely fast, giving a function that is zero when averaged over any finite interval. At ω = 0, something singular happens. The result comes out X(ω) = 2πA δ(ω), in accordance with (8.1) above. In terms of (9.1), in this limit the central hump gets higher and higher, and the zeros all move in toward ω = 0. As these zeros get closer together, the oscillation frequency of the tail of sinc(x) becomes infinite and washes out. To derive X(ω) = 2πA δ(ω) from (9.2), one can use (A.12)
limB→∞ δ4(k,B) = limB→∞ = limB→∞ sinc(Bk) = δ(k) , (A.12)
which says, with k = ω and B = τ/2,
limτ→∞ sinc( ω) = δ(ω)
so
limτ→∞ [(Aτ) sinc(ωτ/2)] = A 2π δ(ω) . (9.3)
(h) We can recover the box function from its spectral components using (1.2),
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt = (1/2π) !Syntax Error, Idω (Aτ) sinc(ωτ/2) e+iωt
= (1/2π) (Aτ) !Syntax Error, Idω(ωτ/2)-1 sin(ωτ/2) e+iωt
= (Aτ /2π) !Syntax Error, Idω(ωτ/2)-1 (1/2i) [ eiωτ/2 - e-iωτ/2] e+iωt
= (Aτ /2π)(2/τ) (1/2i) !Syntax Error, Idω (1/ω) [ eiω(t+τ/2) - eiω(t-τ/2)]
= (A /2πi) [ !Syntax Error, Idω (1/ω) eiω(t+τ/2) - !Syntax Error, Idω (1/ω) eiω(t-τ/2)] ] .
Recall from the generalized Fourier Transform discussion of Section 6 that the ω contours run below the pole at ω = 0, so the pole is effectively located at ω = +iε. In either integral, if the exponent is positive, the exponential decays on the upper half great circle, so we close the contour up and pick up the pole residue. On the other hand, if the exponent is negative, we close down and pick up nothing. Thus
= (A /2πi) { θ(t+τ/2) 2πi - θ(t- τ/2)2πi }
= A [ θ(t+τ/2) - θ(t- τ/2) ]
which replicates (9.1). A bit more directly, we can compute x(t) on the sides of the box :
x(t) = (1/2π) !Syntax Error, Idω (Aτ) sinc(ωτ/2) e+iωt = (1/2π) !Syntax Error, Idω (Aτ) sinc(ωτ/2) cos(ωt)
so that, using x = ωτ/2 so dx = (τ/2)dω,
x(±τ/2) = (1/2π) !Syntax Error, Idω (Aτ) sinc(ωτ/2) cos(±ωτ/2)
= (Aτ/2π)(τ/2) !Syntax Error, I sinc(x) cos(x) = (Aτ/2π)(τ/2) π/2 = (A/2) ,
supporting the notion of Section 1 that x(t) = limε→0 [ x(t+ε) + x(t-ε) ]/2 at a point of discontinuity. Notice that the single integral has no pole at ω = 0 since sinc(0) = 1, so there is no issue of principle part integrals involved. The poles only appeared above when we split the integral into two integrals.
10. The Area Rules and Parseval's Formulas
Setting ω = 0 in the Fourier Transform (1.1) and then t = 0 in (1.2), one gets
X(0)!Syntax Error, Idt x(t) = [area under x(t) ] (10.1)
x(0) = (1/2π) !Syntax Error, Idω X(ω) = (1/2π) [area under X(ω) ] . (10.2)
For the box pulse example above, we saw that X(0) = (Aτ) from (9.2). In light of (10.1), it is thus not a coincidence that this is the area under the time-domain box.
From (10.2), we may conclude that the total area under the X(ω) curve (9.2) for our box pulse is 2πA, since x(0) = A, the height of our pulse. This is consistent with the fact that
!Syntax Error, Idx sinc(x) = π . (10.3)
Another area rule involves the power spectrum. First, it is easy using (1.1), (1.2) and (2.1) to prove this identity (one of Parseval's),
!Syntax Error, Idt a(t) b*(t) = (1/2π) !Syntax Error, Idω A(ω) B*(ω) . (10.4)
Here * means complex conjugation and is needed to make things work so one gets δ(ω - ω') in the proof. Again, the 2π factor is missing if one uses df in place of dω.
In the case a = b = x, one gets the energy area rule which says
!Syntax Error, Idt |x(t)|2 = (1/2π) !Syntax Error, Idω |X(ω)|2 = !Syntax Error, Idf |X(f)|2 . (10.5)
If x(t) is a voltage or current pulse, this says that the total energy (R = 1Ω) contained in the pulse is the same no matter which space is used to add it up. The pulse energy density is |x(t)|2 in the time domain, it is |X(ω)|2/2π in the ω domain, and it is |X(f)|2 in the frequency domain.
For our box pulse, the left side of (10.5) is A2τ. The right hand side gives the same result using (9.2) and the following fact,
!Syntax Error, Idx sinc2(x) = π . (10.6)
It is rather interesting that sinc(x) and sinc2(x) have the exact same area, see (10.3) and (10.6).
Fig 10.1
There are two other less-well-known Parseval's formulas which we just mention in passing,
!Syntax Error, Idt a(t) b(t) = (1/2π) !Syntax Error, Idω A(ω) B(-ω) (10.7)
!Syntax Error, Idt A(t) b(t) =!Syntax Error, Idω a(ω)B(ω) . (10.8)
These appear in Stakgold Vol. 2, page 24 and elsewhere. All these formulas can be proven in the same manner: just use (1.1), (1.2) and (2.1).
11. Differentiation and Integration Rules with Examples
Below (4.8) and at the end of Section 8 we saw examples of how d/dt → iω in ω-space. Here we state the differentiation rule both ways:
dx(t)/dt ↔ [iωX(ω)] (11.1)
dX(ω)/dω ↔ [– itx(t) ] (11.2)
To derive the first rule in the general case we use (1.2) to expand x(t) so that
dx(t)/dt = d/dt [(1/2π) !Syntax Error, Idω X(ω) e+iωt] = (1/2π) !Syntax Error, Idω X(ω) d/dt (e+iωt)
= (1/2π) !Syntax Error, Idω X(ω)iω (e+iωt) = (1/2π) !Syntax Error, Idω [ iω X(ω)] e+iωt .
Equation (11.2) has a similar derivation with a minus sign due to the sign of the exponent in (1.1).
So, (11.1) says that one gets the spectrum of the derivative of a function by multiplying the original function's spectrum by iω. For integration, one must therefore divide by iω.
(a) Let's apply (11.1) to our square pulse function. We have from (9.1) and (9.2),
x(t) = A [ θ(t + τ/2) - θ(t - τ/2) ]
X(ω) = (Aτ) sinc(ωτ/2) .
Differentiating x(t), we get a pair of opposite signed delta functions separated by distance τ (derivatives of the box edges),
x1(t) ≡ dx(t)/dt = A [ δ(t + τ/2) - δ(t - τ/2) ] .
According to (11.1), the spectrum must be,
X1(ω) = iω (Aτ) sinc(ωτ/2) = iω (Aτ)sin(ωτ/2)/ (ωτ/2) = 2iA sin(ωτ/2) .
This agrees with direct calculation,
X1(ω) = !Syntax Error, Idt x1(t) e-iωt = !Syntax Error, Idt A [ δ(t + τ/2) - δ(t - τ/2) ] e-iωt
= A [eiωτ/2 - e-iωτ/2] = 2iA sin(ωτ/2) .
As expected, there is no DC component since limω→0 X1(ω) = 0. In this drawing,
Fig 11.1
we see x1(t) on the left in heavy black, and the spectrum X1(ω) is on the right. The red line and dot show that there is zero energy at DC, ω = 0. The green dot on the right at the first peak of X1(ω)/i corresponds to the green sine curve on the left, which we would expect to give a strong component for the double delta. To understand the sign of the green dot, recall that (1.9) for an odd function x1(t) states X1(ω) = - i X1,s(ω) so that X1(ω)/i = - X1,s(ω) = the negative of the Fourier Sine projection.
(b) Now let's apply (11.2) to the following function (multiply box x(t) above by t )
x2(t) ≡ t x(t) = A t [ θ(t + τ/2) - θ(t - τ/2) ].
This represents a doublet sawtooth pulse centered at t=0. According to (11.2) in the ← direction,
X2(ω) = i dX(ω)/dω = i (Aτ)(τ/2) sinc'(ωτ/2) = ( iAτ2/2) sinc'(ωτ/2)
where sinc'(x) = cos(x)/x - sin(x)/x2. Again, X2(ω) has no DC component, since limx→0 sinc'(x) = 1/x - 1/x = 0. This is an agreement with the fact that the sawtooth clearly has a zero integral and this integral according to (1.1) is just X(0). Here is a picture similar to that shown above,
Fig 11.2
12. Time translation x(t) causes phase on X(ω).
Assume that some x(t) has a spectrum X(ω),
x(t) ↔ X(ω)
Then it follows directly from (1.2) that:
x(t - t1) ↔ X(ω) e-iωt . (12.1)
We saw this happening in the special case of (8.2); here we see that the result is completely general. Translation of a signal in time causes the spectrum to gain the phase shown.
According to (1.1), we have this analogous result ,
X(ω-ω1) ↔ x(t) e+iωt (12.2)
13. Exponential Sum Rules
For the first time in this document, sums appear. Everything above was integrals only.
In (2.1) stated above, the delta function is written as an infinite integral of an exponential,
!Syntax Error, Idx e±ikx = 2πδ(k) . (2.1)
A similar result involves a summation of exponentials. For k in the range -π to π we claim that:
!Syntax Error, Ieink = 2πδ(k) -π < k < π . (13.1)
To "prove" this, we argue as we did for (2.1) that for k ≠ 0, the phasors "wash out" in the infinite sum and we get zero = zero. For k = 0, the summand is 1, so the result is infinite, and thus the result is proportional to δ(k). As we did above, we can prove that the factor of 2π is correct by integrating both sides over k from -a to +a. The right side gives 2π. On the left, do the dk integral exactly as done above (2.2) to get
!Syntax Error, Idk!Syntax Error, Ieink = !Syntax Error, I!Syntax Error, Idk eink = !Syntax Error, I!Syntax Error, Idk cos(nk) // sin(nk) is odd
= !Syntax Error, I [2sin(na)/n ] = 2a + 4 { !Syntax Error, I [sin(na)/n ] } = 2a + 4 { } = 2π .
In the last few steps, the negative part of the sum is reflected into a positive part since [2sin(na)/n] is even in n. The sum in curly brackets appears as 1.441.1 on p 46 of Gradshteyn-Ryzhik,
This sum is restricted then to 0 < a < 2π, but since we had in mind a being some small positive number, this is not a problem, although it does provide a hint of what is to come below.
Since the right side of (13.1) is real, the equation is also valid with e-ink on the left.
Now we want to generalize (13.1) for k in the range -∞ to +∞. The result is fairly obvious. Instead of just a delta function at k=0, we have delta function spikes at each k value for which the summand equals 1. Thus, spikes will be at k = 0, ± 2π, ± 4π, and so on,
!Syntax Error, Ieink = !Syntax Error, I2πδ(k - 2πm) -∞ < k < ∞ . (13.2)
Again, one can prove that the constant is 2π at each spike by integrating over dk from 2πm-a to 2πm+a, for small a. Generally speaking, the right side of (13.2) must have the form shown because the left side is periodic in k with period 2π, and (13.1) gives that result for -π < k < π .
Replacing n→-n shows that (13.2) is also valid with e-ink on the left side.
The exponential sum rule (13.2) plays a critical role in the analysis of periodic pulse trains in Chapter 2 below.
Equations (2.1) and (13.2) are more carefully derived in Appendix A. There it is shown that in each case the delta function is the limit of a certain sequence of functions which all have unit area and which, as the limit is taken, become more and more isolated to the neighborhood of the delta function argument. The Appendix presents the essence of the distribution theory of delta functions.
One result derived in Appendix A (b) is a finite sum version of (13.2) [ see (A.29) and (A.30) ]
!Syntax Error, I eink = 2π { } ≡ 2π δ5(k,N) . -∞ < k < ∞ (13.3)
In the limit N→∞, Appendix A shows how the right side of (13.3) approaches the right side of (13.2).
Replacing n→-n shows that (13.3) is also valid with e-ink on the left side.
Poisson Sum Formula: Setting k = 2πt/α in (13.2) with e-ink gives ( where α is any real number)
!Syntax Error, Ie-in2πt/α = !Syntax Error, Iδ(t/α - m) = | α | !Syntax Error, I δ(t - mα) . (13.4)
Applying !Syntax Error, Idt x(t) to both sides and using (1.1) one finds that
!Syntax Error, IX(2πn/α) = | α | !Syntax Error, Ix(mα) . (13.5)
This fascinating result appears for example in Stakgold Vol I (1.23b) and is known as the Poisson Sum Formula. Sometimes people refer to the underlying equation (13.2) by this name.
Chapter 2: Pulse Trains and the Fourier Series Connection
In this chapter we take an arbitrarily shaped pulse and superpose an infinite number of instances of that pulse spaced by a fixed time interval T1. This "pulse train" is then a periodic function of period T1. We continue with the Fourier Integral notions of Chapter 1 -- such as the spectral components X(ω) -- and we then make the connection with traditional Fourier Series and their coefficients. We show how the Fourier Integral spectrum becomes discrete for a periodic function, and we are able then to relate the Fourier Series coefficients to the spectral components Xpulse(ω) of the pulse used to generate the pulse train.
In the background, and to serve as a vehicle for doing a few calculations, we address a particular problem. We consider the symmetric zero-DC-offset square-wave pulse train generated from two completely different methods, one involving adding a negative DC offset to a simple positive square wave pulse train, and the other using biphase pulses.
Our main purpose here is to build tools that will be used in more complicated problems. The methods presented here form the basis for treating amplitude-modulated pulse trains made from pulses of arbitrary shape, including the "arbitrariness" of a pulse being statistically present or absent.
14. The Spectrum of a Simple Pulse Train
Recall that a simple pulse train is just a sequence of identical pulses of shape xpulse(t).
(a) Infinite Length Simple Pulse Train
We assume that xpulse(t) is some "reasonable" (non-pathological) function. The pulse train is given by,
x(t) =!Syntax Error, I xpulse(t - tn) tn = nT1 . pulse train (14.1)
Let Xpulse(ω) be the spectrum of xpulse(t). This xpulse(t) does not really have to be a "pulse", but it is convenient to think of it as such. We imagine that xpulse(t) is a function that is somewhat localized in the region of t=0, and vanishes for very large positive and negative time. The half-width of the pulse can be larger than T1 as discussed below, so pulses can overlap. Thus, our xpulse(t) is not itself periodic, and we thus expect it to have a continuous spectrum.
For example, from (9.2) we already know the spectrum of a single box pulse of height A and width τ centered at t=0:
Xpulse(ω) = (Aτ) sinc(ωτ/2) . (14.2)
Now consider a second pulse which is a copy of our original pulse, but which is translated T1 units to the right in time. From (12.1), we know the spectrum of this second pulse:
X(ωsecond pulse) = Xpulse(ω) e-iωT.
Now construct an infinite periodic wave by superposing pulses at t = 0, ±T1, ±2T1, ... . We get,
X(ω) = Xpulse(ω) !Syntax Error, I eiωnT (14.3)
According to our exponential sum rule (13.2) with k = ωT1, we can write the exponential sum in (14.3) as a sum of delta functions to get,
X(ω) = Xpulse(ω)!Syntax Error, I 2πδ(ωT1 - 2πm) . (14.4)
Defining ω1 ≡ 2π/T1 this becomes
X(ω) = (1/T1) Xpulse(ω)!Syntax Error, I 2πδ(ω - mω1) . (14.5)
which is a standard form. Moving Xpulse(ω) into the sum then gives
X(ω) = !Syntax Error, I (1/T1) Xpulse(ω) 2πδ(ω - mω1)
= !Syntax Error, I (1/T1) Xpulse(mω1) 2πδ(ω - mω1) . (14.6)
Thus, we have a set of evenly spaced delta function spikes which occur at these frequencies:
ωm = mω1 m = 0,1,2,3...... (14.7)
In general, one has,
f(ω) δ(ω - a) = f(a) δ(ω - a) .
Both sides of this last equation are zero when ω ≠ a, and at ω = a, f(a) = f(ω).
Because the quantity (1/T1)Xpulse(ω) occurs frequently in the following discussion, we define a more compact notation for it as follows:
c(ω) ≡(1/T1)Xpulse(ω) . (14.8)
Thus, c(ω) is nothing more than our (continuous) pulse spectrum divided by the fundamental period T1. We can then rewrite (14.6) as follows:
X(ω) = !Syntax Error, I c(ω) 2π δ(ω - mω1) = !Syntax Error, I c(ωm) 2π δ(ω - mω1) . (14.9)
As was just noted above, we can harmlessly replace ω with ωm = mω1 inside c(ω) in (14.8). This leads us to define a set of numbers as follows
cm ≡ c(ωm ) = c(mω1) . (14.10)
These numbers are just the values that the function c(ω) takes at our delta spike frequencies. We arrive then at our final form for the spectrum of an infinite simple pulse train,
X(ω) = !Syntax Error, Icm 2π δ(ω - mω1) . (14.11)
Now we are ready to summarize all these results:
Fourier Integral Transform of an Infinite Simple Pulse Train (14.12)
1. Let xpulse(t) be any reasonable pulse. Construct a pulse train x(t) with spacing T1:
x(t) = !Syntax Error, Ixpulse(t - nT1) . (14.1)
By its construction, x(t) is periodic with period T1, which we can write formally as:
x(t + nT1) = x(t) . n = any integer
If x(t) is a known periodic function of period T1, a candidate for xpulse(t) is x(t) over
any one period.
2. Define c(ω) to be the Fourier Integral transform of the pulse, scaled by 1/T1:
c(ω) ≡(1/T1)Xpulse(ω) = (1/T1) !Syntax Error, I dt xpulse(t) e-iωt . (14.8) and (1.1)
3. Then the Fourier Integral transform of the Pulse Train is as follows:
X(ω) = !Syntax Error, I c(ω) 2π δ(ω - mω1) = !Syntax Error, I cm 2π δ(ω - mω1) (14.9)
where cm = c(ωm ), ωm = mω1, ω1 = 2π/T1.
4. These cm are the same cm which appear in the next section. That is, they the complex Fourier Series
coefficients.
Item 3 is our main result. It says that the Fourier Transform spectrum of an infinite sequence of pulses is a sum of equally-spaced delta function spikes whose coefficients are given by the continuous spectrum of the central pulse evaluated at the spike frequencies ω = mω1. The pulse spectrum c(ω) (1/T1)Xpulse(ω) is normally thought of as the "coefficient envelope", while the equally spaced delta function spikes are the "lines". In this sample symbolic drawing of a spectrum, the infinitely-high delta function spikes of the spectrum are represented by finite vertical red line segments whose heights are the coefficients cm. The red lines are the spectrum, and they track the envelope c(ω).
Fig 14.1
It may happen that certain cm vanish, meaning that such lines are not present.
The item 3 sum includes the DC line m=0 having ω0 = 0. Unless c0 happens to vanish, the pulse train has a DC component. As noted in (10.1), Xpulse(0) is the area under xpulse(t). Only if this area is zero do we get c0 = c(0) (1/T1) Xpulse(0) = 0.
Whereas the Fourier Transform spectrum of a single pulse (localized, non-periodic) is continuous in ω, that of an infinite sequence of pulses is entirely discrete and has no continuous portions. This conforms with the well-known fact that the spectrum of any periodic function is discrete. In fact, we have just proven this to be so. Any periodic signal has to repeat some pattern, and we just take that pattern to be our xpulse(t).
Note on xpulse(t)
In our summary box (14.12) above, we say that if x(t) is some known periodic function, one can take as a candidate for xpulse(t) the function x(t) restricted to any one period. In this case, the dt integration endpoints for the projection Xpulse(ω) only cover that selected period. If we select the period centered at t=0, then item 2 in the above summary box becomes perhaps more familiar:
c(ω) (1/T1)Xpulse(ω) = (1/T1) !Syntax Error, Idt x(t) e-iωt . (14.13)
What is perhaps less obvious is that there are many different candidates for xpulse(t) that result in the same x(t) pulse train. These other choices for xpulse(t) are pulses which slop over into more than one period T1. When a pulse train is formed with such pulses, the pulses overlap.
To see how this might work, think of a pulse which has a nice gaussian shape and goes about half way into each neighboring T1 interval. Draw some of these, then add them up to make the sum curve x(t). In this case, for a candidate xpulse(t), one can use either the gaussian, which overlaps into several intervals, or one can use one interval's worth of the sum curve x(t) (shown as the darker curve)
Fig 14.2
We have tried to keep our formulas completely general to allow for pulse trains formed from pulses which overlap into more than one period. The resulting spectrum is of course the same no matter which xpulse(t) is chosen. Later on in the power discussion we shall always regard xpulse(t) as meaning the shape of x(t) over T1, as indicated by the black curve above.
To summarize, we can write c(ω) in two equivalent ways
c(ω) (1/T1)!Syntax Error, Idt x(t) e-iωt = (1/T1)!Syntax Error, Idt xpulse(t) e-iωt . (14.14)
If we evaluate (14.14) at the discrete spike frequencies ω = mω1, we get
cm = (1/T1)!Syntax Error, Idt x(t) e-imωt = (1/T1)!Syntax Error, Idt xpulse(t) e-imωt . (14.15)
Now since e-imω(t+T) = e-imωt e-imωT = e-imωt e-im2π = e-imωt, function e-imωt is periodic with period T1. Since x(t) in the first integral in (14.15) is also assumed periodic with period T1, the integration can be over any interval of width T1, so one usually takes this interval to be (0,T1). Thus,
cm = (1/T1) !Syntax Error, Idt x(t) e-imωt = (1/T1)!Syntax Error, Idt xpulse(t) e-imωt (14.16)
(b) Finite Length Simple Pulse Train
It is a simple matter to modify the above development for a finite length pulse train. We use a finite pulse train having pulses centered about time t = 0 as in (14.17), then (14.3) becomes (14.18) below :
x(t) =!Syntax Error, I xpulse(t - tn) tn = nT1 , pulse train (14.17)
X(ω) = Xpulse(ω) !Syntax Error, I eiωnT . (14.18)
The sum is done using (13.3) to give
X(ω) = Xpulse(ω) 2πδ5(ωT1,N) = c(ω) 2π T1δ5(ωT1,N) (14.19)
where δ5 is a delta function model described in Appendix A. This δ5 is periodic with period 2π and has identical peaks separated by 2π. For large N we know that
δ5(k,N) ≈ !Syntax Error, Iδ4(k - 2πm, N+1/2) for large N (A.18)
where δ4(x,M) is another delta function model which peaks only near x=0. Thus for large N we can write
X(ω) ≈ c(ω) !Syntax Error, I 2π T1δ4(ωT1 - 2πm, N+1/2) . (14.20)
To the extent that these δ4 peaks are very narrow (large N) we can move c(ω) inside the sum and evaluate it at ωT1 = 2πm (which means ω = mω1) to get
X(ω) ≈ !Syntax Error, I cm 2π T1δ4(ωT1 - 2πm, N+1/2) . (14.21)
In the limit N→ ∞, we get δ4(ωT1 - 2πm, N+1/2) → δ(ωT1 - 2πm) and then
X(ω) = !Syntax Error, I cm 2π T1 δ(ωT1 - 2πm) = !Syntax Error, I cm 2π δ(ω - mω1)
which agrees with (14.11).
Example: Suppose the pulse is our usual box of width T1 and height A. Then the pulse train is a constant DC level x(t) = A. We know that all the cm will vanish except c0 which is easy to evaluate
c0 = (1/T1) !Syntax Error, I dt xpulse(t) = (1/T1) (AT1) = A .
The spectrum is then
X(ω) =!Syntax Error, I cm 2π δ(ω - mω1) = c02πδ(ω) = A 2πδ(ω)
which is a delta line at ω = 0 with factor 2πA, consistent with (8.1).
15. Connection with the traditional Fourier Series
The pulse train spectrum (14.11) may be inserted into the Fourier transform expansion (1.2) to get
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt = (1/2π) !Syntax Error, Idω [!Syntax Error, Icm 2π δ(ω - mω1)] e+iωt
= !Syntax Error, Icm !Syntax Error, Idω δ(ω - mω1) e+iωt = !Syntax Error, Icm e+imωt (15.1)
= c0 + !Syntax Error, I[ cm e+imωt + c-me-imωt] = c0 + !Syntax Error, I[ cm e+imωt + (cm e+imωt)* ]
= c0 + !Syntax Error, I2 Re [cm e+imωt] = c0 + 2 Re [ !Syntax Error, Icm e+imωt ] . (15.2)
In the above we have used the reflection rule (7.1) applied to cm ≡(1/T1)Xpulse(ωm) to find that
c-m = cm*, and then c-me-imωt = (cm e+imωt)* .
We know that the cm are in general complex numbers, so make the following two definitions:
am ≡ 2 Re [ cm ] = (2/T1) Re [ Xpulse(mω1) ]
- bm ≡ 2 Im [ cm ] = (2/T1) Im [ Xpulse(mω1) ] . (15.3)
Since cm = (1/T1)Xpulse(mω1) it follows that
cm = (1/2) [ am - ibm ] . (15.4)
From (14.16) , assuming as we do from now on that x(t) is real, we get
cm (1/T1) !Syntax Error, Idt x(t) e-imωt (15.5)
= ( 1/T1) !Syntax Error, Idt x(t) [ cos(mω1t) - i sin(mω1t)]
so that
am = 2 Re [ cm ] = (2/T1) !Syntax Error, Idt x(t) cos(mω1t) (15.6)
bm = -2 Im [cm ] = (2/T1) !Syntax Error, Idt x(t) sin(mω1t) . (15.7)
In all the above integrals, we can replace !Syntax Error, Idt x(t) by !Syntax Error, Idt xpulse(t) as noted in (14.16).
Since x(t) is real, we know from (7.1) that X(-ω) = X(ω)*, so X(0) must be real. We also know this from the "area rule" (10.1) -- the area under a real function x(t) had better be real. Thus from (15.3) b0 = 0 and from (15.4) c0 = a0/2 so that
DC component of x(t) = c0 = (a0/2) = (1/T1) Xpulse(0) . (15.8)
If we install expression (15.4) for cm into (15.2) we get this result:
x(t) = c0 + 2 Re [!Syntax Error, Icm e+imωt ] = a0/2 + !Syntax Error, I Re { [ am - ibm ] [ cos(mω1t) + i sin(mω1t)] }
= a0/2 +!Syntax Error, I am cos(mω1t) + !Syntax Error, I bm sin(mω1t) ω1 = 2π/T1 (15.9)
This expansion, along with projections (15.6) and (15.7), is the traditional Fourier Series expansion of a periodic function of period T1. Thus, our seemingly uninteresting am and bm coefficients are exactly the standard Fourier Series coefficients. Moreover, the DC component of x(t) is equal to c0 = (a0/2).
For completeness, we write down an alternate form of (15.9),
x(t) = a0/2 + !Syntax Error, IAm cos(mω1t + φm) (15.10)
= a0/2 + !Syntax Error, IAm [cos(mω1t) cos(φm) - sin(mω1t)sin(φm) ]
= a0/2 + !Syntax Error, I[Am cos(φm)] cos(mω1t) + !Syntax Error, I[-Am sin(φm)] sin(mω1t)
Thus,
am = Am cos(φm) Am =
-bm = Am sin(φm) tan(φm) = -bm/am . (15.11)
So, here is a summary of the above efforts:
Fourier Series Transform (15.12)
1. Let xpulse(t) be any reasonable pulse. Construct a pulse train x(t) with spacing T1:
x(t) = !Syntax Error, Ixpulse(t - nT1) (14.1)
By its construction, x(t) is periodic with period T1, which we can write formally as:
x(t + nT1) = x(t) n = any integer
If x(t) is a known periodic function of period T1, a candidate for xpulse(t) is x(t) over any one period.
2. Define the Fourier Series coefficients by these projections = transforms (cm = [ am - ibm ]/2)
cm ≡ (1/T1) !Syntax Error, I dt xpulse(t) e-imωt = (1/T1) !Syntax Error, I dt x(t) e-imωt (14.16)
am ≡(2/T1) !Syntax Error, Idt xpulse(t) cos(mω1t) = (2/T1) !Syntax Error, I dt x(t) cos(mω1t) (15.6)
bm ≡ (2/T1) !Syntax Error, Idt xpulse(t) sin(mω1t) = (2/T1) !Syntax Error, I dt x(t) sin(mω1t) (15.7)
3. The pulse train is then given by these expansions = inverse transforms: (ω1 = 2π/T1)
x(t) =!Syntax Error, Icm e+imωt = a0/2 + !Syntax Error, I am cos(mω1t) + !Syntax Error, I bm sin(mω1t) (15.9)
Note that am, bm, cm and x(t) all have the same dimensions, perhaps volts.
Thus, we have derived the Fourier Series Transform from the Fourier Integral Transform. Recall that it is not necessary that xpulse(t) be totally contained within a width T1 We have infinite endpoints on the dt integrations above, and xpulse(t) is allowed to be any "reasonable" function, meaning the projection integrals must converge.
16. Fourier Series for a positive square wave pulse train
From equation (9.2) the Fourier Integral spectrum of a positive box pulse of width τ and height A is
Xpulse(ω) = (Aτ) sinc(ωτ/2) . (16.1)
From (14.8) and (14.10) the complex Fourier Series coefficients are, using ω1 = 2π/T1,
cm = (1/T1) Xpulse(mω1) = (Aτ/T1) sinc(mπτ/T1) . (16.2)
Thus, from (15.3), we know the a and b coefficients as well:
am = (2Aτ/T1) sinc(mπτ/T1) m = 0,1,2,3... (16.3)
bm = 0. m = 0,1,2,3...
We have here the Fourier Series coefficients for an infinite pulse train of positive pulses of amplitude A, width τ, and period T1, such that the time t=0 occurs in the middle of a positive pulse. If T1 = τ, the pulse train is a constant DC level A and cm = δm,0A, a case of minimal interest, so we assume T1 > τ :
Fig 16.1
The reader is invited to compute the above Fourier Series coefficients in the standard manner, using the conventional formulas in the summary box (15.12). This is done also on page 32-33 of Bennett and Davey (who use T1 = T). Their result agrees with the above.
17. More about positive square-wave pulse trains
We can now summarize what we know about the positive square-wave pulse train with pulse height A, pulse width τ, pulse centered at t = 0, and period T1 (with ω1 = 2π/T1, see drawing above) :
xpulse(t) = A [ θ(t + τ/2) - θ(t - τ/2) ]. (9.1) (17.1)
c(ω) = (1/T1) Xpulse(ω) = (Aτ/T1) sinc(ωτ/2) (9.2) and (14.8) (17.2)
x(t) = !Syntax Error, I xpulse(t - nT1) (14.12) (17.3)
X(ω) =!Syntax Error, Ic(ω) 2πδω - mω1 ) = !Syntax Error, Icm 2πδω - mω1 ) (14.11) (17.4)
cm = (1/T1) Xpulse(mω1) = (Aτ/T1) sinc(mπτ/T1) (17.2) ω = mω1 (17.5)
c0 = (Aτ/T1) = DC component . (15.8) and (14.2) (17.6)
For general τ, all spectral lines are present. Apart from an overall constant, the envelope function c(ω) is sinc(x), where x = ωτ/2. Here is a linear graph of |sinc(x)| = |sin(x)/x| (red) along with a graph of 1/x (blue). It is traditional to plot the absolute value of the spectrum since the power in each line is proportional to the square |cm|2 (shown later in (33.27)),
Figure 17.1: Plot of |sinc(x)| function along with 1/x. Fig 17.1
In the case of general pulse width τ (that is, for arbitrary pulse train duty cycle = τ/T1), one should imagine the evenly-spaced delta spikes superposed on the above picture. The spikes are located at xm = ωmτ/2 = mω1τ/2 = m(πτ/T1), for m = 1,2,3... The spacing between the spikes is dx = τT1)π. Thus, the number of spikes per hump is (T1/τ) since each hump is π wide. At low duty cycle, the spacing is small, and there are many lines for each hump of the |sinc(x)| curve. Here is a rough plot for an ~8% duty cycle, (T1/τ) = 16:
Figure 17.2. Same |sinc(x)| function with delta spike "lines". Height of each line Fig 17.2
is relative magnitude of the cm coefficient. Plot is for τT1/16, duty cycle about 8% .
We shall now examine some special cases as application of what has so far been established.
(a) If τ = T1/2 (50% duty cycle) we get a symmetric positive square wave pulse train,
Fig 17.3
and (17.5) reduces to
cm = (A2) sinc(mπ2). (17.7)
The DC component (the m=0 line) is c0 = (A/2), which is what we expect. All the other even lines vanish due to the sinc form. For m = odd integers, we know that
sin(mπ/2) = (-1)(1-m)/2 = (i)1-m = real, since m odd (17.8)
We summarize these facts for our symmetric pulse train with t=0 centered on a positive pulse:
cm = (Aπ) (i)1-m (1/m) m = odd (17.9)
cm = 0 m = even, m ≠ 0
c0 = (A2)
( If we were to shift the square wave down A/2, the cm would be the same except c0 = 0. )
For Fig 17.3, if A = 2 we get
c1 = (2/π) = 0.64 c3 = - (1/3)(2/π) = - 0.21 c5 = (1/5)(2/π) = 0.13 .
In terms of Figure 17.1, the spacing between the spike positions is π/2. Thus, all the m=even spikes occur exactly at the zeros of the sinc(x) function, that is why they all vanish. The m=odd spikes occur centered between these zeros, very close to the peaks of the humps. The 1/m drop-off of the Fourier coefficients seen in (17.9) is reflected in our plot of 1/x in the picture. The 1/x curve intersects the odd spikes at the cm coefficient values which are dropping off as 1/m (apart from overall constant). This plot uses A = 2 :
Fig 17.4
Since all cm in (17.9) are real, we know that bn = 0 so there are only Fourier Series cosine contributions to x(t). This is pretty clear looking at the time domain waveform shown in Fig 17.3 which is even in t.
The pulse train we have constructed above has t=0 occurring in the middle of a positive pulse. If we were to shift our entire pulse train to the left by τ/2,
Fig 17.5
so that falling pulse edge lines up with t=0, we would acquire an overall factor eiωτ/2 according to (12.1) which should then be added as a factor to (17.4). At the lines ω = mω1 this factor becomes
e+imωτ/2 = e+im(2π/T)(T/4) = eimπ/2 = (i)m acting on the cm coefficients. This cancels the phase shown in (17.9) leaving only a constant i.
So, here are the results for the same pulse train with t=0 occurring at a falling edge:
cm = i (Aπ) (1/m) m = odd (17.10)
cm = 0 m = even, m ≠ 0
c0 = (A2)
Since all the odd-m cm are now imaginary, we know that the corresponding am vanish, and only Fourier sines contribute to the above, as one would expect, since x(t) is now an odd function of t. The magnitudes of the cm are the same for the original pulse train and the shifted pulse train, so the spectral energy distribution is unaffected by a time shift of the pulse train.
(b) If τ = T1, we get from (17.5) that cm = Asinc(mπ), so now all lines vanish except the line at m=0, which has a coefficient A. This is again reasonable, since such a pulse train is just a constant DC function x(t) = A. In terms of Figure 17.1, the zeros spacing is now π, and all the delta spikes align with zeros of the sinc function, except the DC line spike.
(c) If τ > T1, the theory still applies, but the waveforms are a bit strange looking since they overlap. As τ is continuously increased, the amount of overlap builds up, and the DC coefficient continues to increase, as shown in (17.6). The black waveform below shows x(t) in the case where T1/τ = 3/4. The contributing pulses are drawn alternating red and blue and slightly displaced to make them more visible.
Fig 17.6
(d) If τ → 0, but Aτarea is held fixed, we have xpulse(t) → Aτ δ(t). For area Aτ = 1, xpulse(t) = δ(t) and in this case xpulse is exactly the first delta function model considered in Appendix A (a). To control dimensions properly, we instead set area Aτ = T1 so that xpulse(t) = T1δ(t) = δ(t/T1) which is dimensionless. We then find from (1.1) that Xpulse(ω) = T1, from (17.2) that c(ω) = 1, and from (17.4) the spectrum shown below,
Pulse Pulse Train
xpulse(t) = T1δ(t) x(t) = !Syntax Error, IT1δ(t - nT1)
Xpulse(ω) = T1 X(ω) = !Syntax Error, I2πδ(ω - mω1) . (17.11)
Thus, in the spectrum of a sequence of time-domain delta functions, all "lines" are present and have the same coefficient 2π. This function is often used as a sampling function in A/D conversion analysis. Notice that here, even though the time-domain pulse is a delta function, it's spectrum is still continuous -- being a constant T1. The infinite pulse train spectrum is discrete, as always. We shall have more to say later on the implications of (17.11).
(e) We started with a time-domain pulse centered at t = 0. As noted earlier, if this is not the case, Xpulse(ω) picks up the phase exp(-iωa) where a is the new time origin of the pulse. Looking at (15.5), we see that as x(t) → x(t-a), cm → e-imωa cm so the phasor cm simply rotates in the complex plane. This does not affect any of our qualitative conclusions above, such as lines disappearing in certain cases. Also, the DC coefficients are unaffected since this exp(-iωa) = 1 at ω = 0. As one slides the pulse train by varying point a, the mixture of real and imaginary part of the cm varies. This corresponds to amplitude moving between the sine and cosine terms of the Fourier series. The energy/power in spectral lines is unaffected since |cm|2 does not change.
18. Non-positive pulse trains
This is pretty much a non-issue. We can take any pulse train described by coefficients cm and superpose a constant DC level of say - B units. This corresponds to Δc0 = -B. Thus, if we choose B = -A/2, we can cancel out the DC level in our pulse trains of (17.9) or (17.10).
Here are the cm for a pulse train with no DC offset, 50% duty cycle, peak-to-peak amplitude A, and with falling edge aligned on t=0, taken from (17.10) with cancellation of the DC term :
cm = i (Aπ) (1/m) m = odd (18.1)
cm = 0 m = even
Fig 18.1
19. Biphase pulse and pulse train
Define a biphase pulse as being centered at t=0. The left pulse has width τ and amplitude A/2, the right pulse has width τ and amplitude -A/2, so the peak-to-peak amplitude is A, and a negative going edge aligns with t=0.
Fig 19.1
We can analyze this as the superposition of a positive and negative pulse of the square type studied above, but each pulse has amplitude A/2 instead of A. Also, the positive square pulse is time- shifted to the left by τ/2 and the negative pulse is shifted to the right by τ/2, so we pick up as corresponding spectral (12.1) "shift phase" on each contributing pulse. The result is:
xpulse(t) = SquarePulse(A/2, t+τ/2) - SquarePulse(A/2, t - τ/2) (19.1)
Xpulse(ω) = (Aτ/2) sinc(ωτ/2) [ e+iωτ/2 - e-iωτ/2]
= (Aτ) sinc(ωτ/2) [i sin(ωτ/2) ] = (Aτ) [i sin(ωτ/2) ] = (2iA/ω) sin2(ωτ/2)
= (iAτ) sin2(x)/x x = ωτ/2 . (19.2)
This is the same as our envelope (9.2) for the positive pulse train (with pulse centered at t=0), except for the extra factor [isin(ωτ/2)]. Because of this extra factor, the coefficient envelope here is quite different from that for the square pulse. As ω →0the envelope function approaches zero -- there is no longer a central hump. Here is a normalized plot comparing the box spectrum (9.2) [red] to the biphase pulse spectrum (19.2) [black], both in absolute value :
Figure 19.2. Same |sinc(x)| and 1/x function, with biphase sin2(x)/x plot added. Fig 19.2
Our biphase pulse train spectrum is given by (17.4) and a new version of (17.5),
X(ω) = !Syntax Error, Icm 2πδω - mω1 ) (17.4)
cm = (1/T1) Xpulse(mω1)= (iAτ/T1) sinc(mπτ/T1) sin(mπτ/T1)
= (iA/mπ) sin2(mπτ/T1) . (19.3)
Notice that c0 = 0 so that all biphase pulse trains have zero DC offset.
Now select the special case τ = T1/2 to construct a square wave with zero DC component,
Fig 19.3
The expression (19.3) reduces to:
cm = (iA/mπ) sin2(mπ/2) . (19.4)
As before, the even lines all vanish. For the odd m lines, the phase factor in (17.8) is now squared, so it is always 1. Thus, we summarize our results for a (τ = T1/2) biphase pulse train:
cm = (iAπm) m = odd
cm = 0 m = even (19.5)
This result agrees exactly with (18.1) which was obtained by a different process involving three steps: (1) treat a positive symmetric square wave with positive pulse centered at t=0; (2) shift it so that negative going edge aligns with t=0, thus changing the phase factor; (3) add a DC term to cancel the DC offset.
One might wonder how such different spectra envelopes (black and red in Fig 19.1) can yield exactly the same cm coefficients for m = 1,2,3... in the case τ = T1/2. The reason is easily understood. When τ = T1/2, the delta spikes in Figure 19.1 are positioned at x = mπ/2, and at these points the two curves have the same values.
Here is a (semi) logarithmic view Fig 19.2. Of course log(0) = -∞, so the downward spikes of both the red and black curves really go down infinitely far, but get truncated in the plotting calculation mesh. Spectrum analyzers often allow for such a logarithmic vertical scale.
Figure 19.4. Logarithmic version of Figure 19.2. Fig 19.4
Chapter 3: Sampled Signals and Digital Transforms
In Sections 20-26, we shall used symbols ∆t, T1, tn, and ω1 frequently. We use whichever symbol seems most convenient at the moment. ∆t is the time spacing between samples of an analog signal. We define T1 = ∆t to make a connection with Chapter 2 where T1 was the spacing between pulses superposed to make a pulse train. As before, ω1 = 2π/T1 . Symbol tn = n ∆t represents the particular times we choose to examine some signal. So:
T1 = ∆t ω1 = 2π/T1 = 2π/∆t tn = n ∆t = n T1
20. Sampled Signals and their Image Spectra
As a specific application of our simple pulse train results boxed in (14.12) we consider the case where pulse xpulse(t) is a delta function, so we have a pulse train x(t) which is an infinite sequence of these delta functions spaced by time T1. This time we let T1 be the amplitude of each delta function, and as usual, we use ω1 = 2π/T1. The basic equations for this situation are :
xpulse(t) = T1 δ(t) = δ(t/T1) // dimensionless
Xpulse(ω) = T1 (8.3)
c(ω) = 1 (14.12) item 2
d(t) = !Syntax Error, I T1 δ(t - nT1) (14.12) item 1 (20.1)
D(ω) = !Syntax Error, I2πδ(ω - mω1) (14.12) item 3 (20.2)
where we have renamed our pulse train of delta functions and its spectrum to be d(t) and D(ω), in order to free up x(t) and X(ω) for new meanings.
If we now multiply the delta function sequence d(t) times some reasonable continuous signal y(t), the result is a set of delta spikes which are amplitude modulated by the values that y(t) takes at the spike sampling points tn = nT1. This product we shall call x(t), it is our "sampled signal", and ω1 is the radian/sec "sampling rate".
x(t) = y(t) d(t) =!Syntax Error, Iy(t)T1δ(t - nT1) =!Syntax Error, Iy(tn) T1δ(t - nT1)=!Syntax Error, Iyn T1δ(t - nT1) (20.3)
where yn ≡ y(tn) and tn = n T1. We can apply the "reverse" convolution theorem stated in (3.7) to the leftmost equation in (20.3) to get
X(ω) = (1/2π)!Syntax Error, Idω' Y(ω - ω') D(ω') . (20.4)
Inserting (20.2) into (20.4) quickly yields a famous result
X(ω) = (1/2π)!Syntax Error, Idω' Y(ω - ω') D(ω') = (1/2π)!Syntax Error, Idω' Y(ω - ω')[ !Syntax Error, I2πδ(ω' - mω1)]
= !Syntax Error, I!Syntax Error, Idω' Y(ω - ω') δ(ω' - mω1) = !Syntax Error, I Y(ω - mω1)
or
X(ω) = !Syntax Error, IY(ω - mω1) . (20.5)
We have therefore shown that,
x(t) = !Syntax Error, I T1 δ(t - tn) y(t) = !Syntax Error, I T1 δ(t - tn) y(tn) (20.6)
X(ω) = Y(ω) + !Syntax Error, IY(ω - mω1) . (20.7)
The first term on the right side of (20.7) is the good old Fourier Integral spectrum of y(t). The second term is a set of identical copies of Y(ω) that are shifted by all possible integer multiples of ω1. Usually these are called image spectra, and the term Y(ω) is called the main spectrum. Here is a picture,
Figure 20.1. Example of a main spectrum with four of the image spectra. Fig 20.1
Thus, by sampling signal y(t) with delta functions to create the sampled signal x(t), we have picked up an infinite set of image spectra in addition to the main spectrum Y(ω).
If the spectrum Y(ω) of the "reasonable" original signal y(t) completely cuts off at some ωc below ω1/2 (as shown in Figure 20.1), then the spectra are completely disjoint. One can then run signal x(t) through a low-pass filter that removes all these image spectra, ending up with X(ω) = Y(ω). And from Y(ω), one can presumably reconstruct y(t). Thus, these image spectra can be "dealt with". The larger the gaps between the spectra, the lower the cost of the low-pass filter required to remove the image spectra.
Of course if the spectrum of y(t) has ωc > ω1/2, then the spectra in (20.7) and Fig 20.1 overlap, and it is impossible to recover Y(ω) by itself using a low pass filter. If a low pass filter is placed just above the end of the Y(ω) spectrum at ωc, the filtered signal will be contaminated with contributions from the first image spectrum, an effect loosely known as aliasing, as indicated in this picture,
Figure 20.2. Here the image spectra overlap the main one. This is bad news. Fig 20.2
There is no place one can set a low-pass or band-pass filter to cleanly capture just the main spectrum (or any of its images) by itself. To avoid this problem, one must select the sampling rate ω1 > 2ωc. The quantity 2ωc is known as the Nyquist rate, so the sampling rate must be larger than the Nyquist rate. This means that for the highest frequency of interest, one must have at least 2 samples per sine wave. In audio, one thinks of ωc/2π ≈ 20 KHz, so the Nyquist rate is 2ωc/2π = 40KHz and typical values for ω1 are ω1/2π = 44.1 KHz or 48 KHz. Aliasing in audio sounds like distortion, and in video causes "edge jaggies" and other artifacts.
21. Digital Filters, Image Spectra and Group Delay
(a) A Digital Filter as an approximation to an Analog Filter
In Section 3 we derived the convolution theorem stated in (3.6) which we repeat here:
a(t) = !Syntax Error, I dt' b(t-t') c(t') sometimes written a = b * c (21.1)
A(ω) = B(ω) C(ω) . (21.2)
As demonstrated in Section 4 (b), one can interpret c(t) as an input signal, a(t) as an output signal, and b(t) as a "filter" which acts on the input to create the output. Equation (21.2) shows the action of such a filter in the frequency domain. B(ω) might be a low-pass filter, a band-pass filter, or some other filter.
When a spectrum like B(ω) is associated with a filter, it is called the transfer function of that filter.
As discussed in the second comment after (3.7), the filter (21.1) can be thought of as a = Bc where B is a linear integral operator, so the filter (21.1) is linear in the usual sense of a linear operator,
B (c1+c2) = Bc1 + Bc2 and B (αc) = αB (c).
Moreover, by considering the fact that
a(t+Δ) = !Syntax Error, I dt' b(t+Δ-t') c(t') = !Syntax Error, I dt" b(t-t") c(t"+Δ) // -t" = Δ - t' (21.3)
one sees that the filter is invariant under a time shift of the input stream. This might not be the case if the filter kernel had the more general form b(t,t') instead of b(t-t').
Filters of the type (21.1) are therefore referred to as linear time-invariant (LIT) filters.
A time-domain digital filter can only approximate the continuous integration shown in (21.1). What a digital (FIR) filter really does is this,
a(tn) = !Syntax Error, I ∆t b(tn - tm) c(tm) where tn = n ∆t . (21.4)
The objects appearing in (21.4) are just numbers -- the values the functions a, b and c take at particular times, so one could just as well write this as
an = !Syntax Error, I∆t bn-m cm . (21.5)
Think of the "digital filter" as a set of numbers bk ; ck is the input signal to the filter, and an is the output of the filter. Typically these numbers are represented by one byte in (black & white) video, and by two bytes in audio. The set of numbers bk is in practice finite. For example, a "5 tap filter" has only these non-zero values: b-2, b-1, b0, b1, b2 . Therefore the summation in (21.5) in practice is finite. ∆t is the time between samples, so perhaps 1/∆t is 13.5 MHz for digital 601 video or 44.1 KHz for digital audio.
Since in digital practice the convolution integral (21.1) is replaced by the summation (21.5), one is forced to ask oneself: what happens in this case to (21.2)? We have all the tools needed to answer this question.
Recall the Fourier Integral transform pair (1.1) and (1.2) which we repeat here,
X(ω) = !Syntax Error, I dt x(t) e-iωt // projection, transform (21.6)
x(t) = !Syntax Error, Idω X(ω) e+iωt . // expansion, inverse transform (21.7)
If we set t = tn = n ∆t , we can rewrite (21.7) as:
x(tn) = !Syntax Error, Idω X(ω) e+iωnΔt . (21.8)
Here now is the set of steps one needs to carry out:
(1) write (21.8) for each of the functions a(tn), b(tn) and c(tn) in terms of A(ω), B(ω), and C(ω') :
a(tn) = !Syntax Error, Idω A(ω) e+iωnΔt
b(tn) = !Syntax Error, Idω B(ω) e+iωnΔt
c(tm) = !Syntax Error, Idω' C(ω') e+iω'mΔt (21.9)
(2) jam these three expansions into (21.4) :
a(tn) = !Syntax Error, I ∆t b(tn - tm) c(tm) (21.4)
!Syntax Error, Idω A(ω) e+iωnΔt = !Syntax Error, I ∆t !Syntax Error, Idω B(ω) e+iω(n-m)Δt !Syntax Error, Idω' C(ω') e+iω'mΔt
(3) move the m-summation as far to the right as possible, it comes to rest against an exponential,
RHS = !Syntax Error, Idω B(ω) e+iωnΔt !Syntax Error, Idω' C(ω') !Syntax Error, I ∆t e+i(ω'-ω)mΔt
(4) do this summation using the exponential addition theorem (13.2) with k = ∆t(ω - ω') :
!Syntax Error, I eimΔt(ω-ω') = !Syntax Error, I2π δ[ ∆t(ω - ω') - 2πm ] = (2π∆t) !Syntax Error, I δ( ω - ω' - mω1)
Right here is where the image spectra described below first appear! Both sides of this equation treated as a function of ω are periodic with period ω1. If we were to multiply both sides by Δt then take the limit Δt→0 we would get (since ω1 = 2π/Δt, this means ω1→ ∞ as well)
!Syntax Error, Idt eit(ω-ω') = 2π δ(ω-ω')
which is just (2.1). The images (δ lines at this point) have run off to infinity and the function is no longer periodic. So image spectra arise from the fact that a discrete sum of phasor functions eimΔt(ω-ω') ( each of which is periodic in ω) produces a periodic function, even if that sum is infinite.
(5) kill the dω' integration against the delta function
RHS = !Syntax Error, Idω B(ω) e+iωnΔt !Syntax Error, Idω' C(ω') 2π !Syntax Error, Iδ( ω - ω' - m ω1)
= !Syntax Error, Idω B(ω) e+iωnΔt !Syntax Error, I !Syntax Error, Idω' C(ω') δ( ω - ω' - m ω1)
= !Syntax Error, Idω B(ω) e+iωnΔt !Syntax Error, I C(ω-mω1)
so that
!Syntax Error, Idω A(ω) e+iωnΔt = !Syntax Error, Idω B(ω) e+iωnΔt !Syntax Error, IC(ω-mω1) .
Since the functions e+iωnΔt form a complete set, we may identify the integrands to obtain
A(ω) = B(ω) !Syntax Error, IC(ω-mω1) . (21.10)
(6) Alternatively, we could kill the dω integration against the delta function. We repeat the first line in (3) changing the order of integration
RHS = !Syntax Error, Idω' C(ω') !Syntax Error, Idω B(ω) e+iωnΔt 2π !Syntax Error, Iδ( ω - ω' - m ω1)
= !Syntax Error, Idω' C(ω') !Syntax Error, I!Syntax Error, Idω B(ω) e+iωnΔt δ( ω - ω' - m ω1)
= !Syntax Error, Idω' C(ω') !Syntax Error, I B(ω' + mω1) e+i(ω'+ mωn)Δt .
But eimωnΔt = 1 because mω1nΔt = mn(2π/T1)T1 = mn2π. Since the m sum is symmetric, we can replace m→ -m making no difference, and we then replace ω'→ω on the RHS. The result is then
!Syntax Error, Idω A(ω) e+iω'nΔt = !Syntax Error, Idω C(ω)eiωΔt !Syntax Error, I B(ω - mω1) .
Again using the completeness of the e+iωnΔt basis functions, we equate integrands to get
A(ω) = !Syntax Error, I B(ω - mω1) C(ω) . (21.11)
which is the form we shall use below. We noted in (3.2) how the convolution theorem is invariant under b↔c, and we see this symmetry in the two results just obtained, (21.10) and (21.11). We have then arrived at this statement of our digital convolution theorem:
a(tn) = !Syntax Error, I ∆t b(tn - tm) c(tm) tn = n ∆t (21.12)
A(ω) = [ Bω !Syntax Error, IB(ω - mω1) ] C(ω) . (21.13)
This pair of equations should be compared to the analog convolution theorem (21.1) and (21.2),
a(t) = !Syntax Error, I dt' b(t-t') c(t') sometimes written a = b * c (21.1)
A(ω) = B(ω) C(ω) (21.2)
We see that there is a penalty for working in the imperfect, discrete world of time-sampled signals like a(tn). The penalty is that there are extra ω-space terms in (21.13) that are not present in (21.2).
Recall that B(ω) is the spectrum (transfer function) of a filter kernel b(t) which we are approximating by a set of coefficients bk. In analogy with the spectrum X(ω) shown in (20.7) of a delta-sampled signal x(t), the main term B(ω) in (21.13) is called the main spectrum of the filter, while the other terms in the square bracket are the filter's image spectra passbands. The filter then has a transfer function which looks like the spectrum of Fig 20.1.
A perfect analog filter would of course have no such image spectra, this is what (21.2) is all about. It has no such artifacts because it filters at all times t, not just at particular points tn. The digital filter is "blind" between sample points, so you can stick it with some high frequency signals which wiggle an arbitrary number of wiggles between the sample points. These high frequency signals are what in effect get passed through the image pass bands of a digital low-pass filter. All the above math should not blind the reader to this straightforward physical understanding of the image spectra. Here is an example,
Fig 21.1
The red and black signals are treated exactly the same by a digital filter since they have exactly the same sample values. But the red signal has a very strong frequency component with period Δt = T1 and thus with frequency ω1 = 2π/T1 and so the red signal in effect passes through the first image passband of the filter, giving the same output signal that the black signal would give going through the main passband. One says that the red signal is an alias of the black signal, or it is aliased into the black signal, giving the same filter output. Perhaps a violin comes of our filter out sounding like a tuba.
A common use of a digital filter is to remove the image spectra of digitized signals. These image spectra are sitting staring us in the face in (20.7). Suppose we construct a digital filter with some set of bn coefficients to implement a low-pass filter to remove the signal image spectra. But we have just seen that this filter itself has image passbands, so we have to be careful that some of the image spectra of our sampled signal x(t) don't slip through these image pass bands of the filter. A standard trick ("oversampling") is to run the filter at a rate ω'1 which is perhaps 4X or 8X times faster than the rate ω1 of the sampled signal (ω1 = 2π/Δt). Recall that ω1 > 2ωc, the Nyquist rate. The filter's image spectra now at mω1' are then pushed away from the central region, causing the lower image spectra of the signal x(t) to be blocked by the filter. Some very high frequency data might get through the image bands of the filter, but this can be removed by a simple analog filter (perhaps just a resistor and capacitor) after the D/A converter which converts the digital signal to analog. An example of this technique is presented in Section 30 using a digital filter implemented in Section 29 which has the desirable properties of Section 28.
(b) Filter Group Delay
The discussion here is given in terms of an analog filter. The steps stated below can be repeated for a digital filter and one arrives at the same set of conclusions.
Recall the convolution theorem from the start of this section,
a(t) = !Syntax Error, I dt' b(t-t') c(t') sometimes written a = b * c (21.1)
A(ω) = B(ω) C(ω) . (21.2)
We interpret this as a filter acting on signal c(t) to produce signal a(t). To assist this interpretation, we rename signals in this way ( i = input, o = output)
o(t) = !Syntax Error, I dt' b(t-t') i(t') sometimes written o = b * i (21.1)
O(ω) = B(ω) I(ω) (21.2)
where b and B represent the action of the filter. In general we can write the complex filter spectrum in terms of its magnitude and phase functions (using a traditional sign convention for said phase)
B(ω) = |B(ω)| e-iφ(ω) . (21.14)
In order to derive the concept of group delay, we assume that our filter is a passband filter of width 2a centered at some frequency ω2, and having this somewhat idealized spectral shape,
B(ω) = (21.15)
This could for example be a low-pass filter centered at ω2 = 0 with ω range (-a,a).
Let us assume that i(t) represents a very narrow input pulse whose center lies at t = 0. Since the pulse is narrow in the time domain, we know (uncertainty principle in Section 1) that it will have a broad smoothly-varying spectrum Xpulse(ω). The ultimate pulse is i(t) = δ(t) which has Xpulse(ω) = 1 from (8.3).
From (1.2) the output of the filter can be written as
o(t) = (1/2π) !Syntax Error, Idω O(ω) e+iωt = (1/2π) !Syntax Error, Idω B(ω) I(ω) e+iωt
= (1/2π) !Syntax Error, Idω B(ω) Xpulse(ω)e+iωt = (1/2π) !Syntax Error, Idω |B(ω)| Xpulse(ω)e-iφ(ω)e+iωt
≈ (1/2π) |B(ω2)| Xpulse(ω2) !Syntax Error, Idω e-iφ(ω)e+iωt .
We have assumed that |B(ω)| is a smooth function near ω = ω2 to make the approximation on the last line. Similarly, we assume that that filter phase function is also smooth so we can approximate it in this linear fashion in the neighborhood of ω = ω2,
φ(ω) ≈ φ(ω2) + (ω-ω2)φ'(ω2) = α + (ω-ω2)β α = φ(ω2) β = φ'(ω2) . (21.16)
Then we find that
o(t) ≈ (1/2π) |B(ω2)| Xpulse(ω2) e-i(α-βω2) !Syntax Error, Idω e+iω(t-β) .
The integral may be evaluated as
!Syntax Error, Idω e+iω(t-β) = [i(t-β)]-1 [ e+i(ω2+a)(t-β) - e+i(ω2-a)(t-β)]
= [i(t-β)]-1 eiω2(t-β) 2i sin[a(t-β)] = 2a eiω2(t-β) sin[a(t-β)]/ [a(t-β)]
= 2a eiω2(t-β) sinc[a(t-β)] . (21.17)
Thus, the filter output is
o(t) = (a/π) |B(ω2)| Xpulse(ω2) e-i(α-βω2) eiω2(t-β) sinc[a(t-β)]
= [(a/π) |B(ω2)| Xpulse(ω2) e-iα] eiω2t sinc[a(t-β)] . (21.18)
The last two factors show the time dependence of o(t). The eiω2t represents an oscillation at ω2 which is the center of the bandpass filter. This is modulated by an envelope function sinc[a(t-β)] causing the spectrum of o(t) to fill the pass band, as we also know from O(ω) = B(ω) I(ω) . The initial narrow pulse i(t) = Xpulse(t) is spread out into a pulse o(t) of width determined by the first zero of the sinc function, and centered at t = β. Comparing the center of the input and output pulses, one concludes that the pulse has been delayed by amount β, which is known as the group delay. Recall that β = φ'(ω2) .
We have therefore proven the following theorem:
Group Delay Theorem. When a narrow time-domain pulse is passed through a bandpass filter, the output pulse is delayed approximately by an amount τd = dφ/dω evaluated at the bandpass center frequency. This delay is called the group delay of the filter.
(21.19)
Corollary. If the phase function of a filter φ(ω) is linear in ω, then the phase approximation made in (21.16) is exact, so the theorem just stated has a group delay which is a constant throughout the passband of the filter. That is to say, dφ/dω is a constant for a filter with linear phase. The implication is that different pulse shapes, each having slightly different spectra, will all pass through the filter with the same delay, regardless of where in the bandpass band these pulse spectra hit. The result is good "fidelity" of a time varying signal such as an audio signal or a radar pulse stream.
(21.20)
22. The Digital Fourier Transform X'(ω) Part I
As a reminder from the opening paragraph of this Chapter,
T1 = ∆t ω1 = 2π/T1 = 2π/∆t tn = n ∆t = n T1 .
Recalling from (1.1) that X(ω) = !Syntax Error, I dt x(t) e-iωt, we can write down the following non-equation:
X(ω) ≠ !Syntax Error, I∆t x(tn) e-iωnΔt projection = transform (22.1)
X(ω) is the genuine Fourier Integral transform of x(t). Only in the limit ∆t → 0 are the two sides equal, and we then reproduce (1.1). So let's define something new called X' that is equal for any finite ∆t:
X'(ω) ≡ !Syntax Error, I∆t x(tn) e-iωnΔt projection = transform (22.2)
Dimensions: If Dim[x(tn)] = V, then Dim[X'(ω)] = V-sec, the same as Dim[X(ω)] .
Although X(ω) can have any shape we want, the new spectrum X'ω) is periodic with period ω1 ,
X'(ω - mω1 ) = !Syntax Error, I∆t x(tn) e-i(ω-mnω)Δt = !Syntax Error, I∆t x(tn) e-iωnΔt = X'(ω)
where, as earlier, eimωnΔt = 1 because mω1nΔt = mn(2π/T1) T1 = mn2π. So X'(ω) is periodic:
X'(ω - mω1 ) = X'(ω) m = any integer . (22.3)
We now claim (to be shown below) that the inverse of (22.2) is the following:
x(tm) = !Syntax Error, I dω X'(ω) e+iωmΔt expansion = inversion (22.4)
This looks like to (1.2) except the integration endpoints are here finite. Thus, we have a different projection formula, and a correspondingly different expansion formula. For want of a better name, let us call this new transform the Digital Fourier Transform pair, as opposed to the Fourier Integral Transform pair given in (21.6) and (21.7).
We shall now verify that (22.4) is correct "in both directions". We do this in full detail to give the reader a chance to "practice" using many results presented earlier.
First, insert (22.4) into the right side of (22.2) to get ,
!Syntax Error, I∆t x(tn) e-iωnΔt = !Syntax Error, I∆t [!Syntax Error, I dω' X'(ω') e+iω'nΔt] e-iωnΔt
= !Syntax Error, I dω' X'(ω) Δt !Syntax Error, I e+inΔt(ω'-ω) // sliding n sum to the right
= !Syntax Error, I dω' X'(ω) Δt !Syntax Error, I2πδ(Δt(ω'-ω) - 2πm) // (13.2) with k = Δt(ω'-ω)
=!Syntax Error, I!Syntax Error, I dω' X'(ω') δ(ω'-ω-mω1) // δ(ax) = (1/a)δ(x)
= !Syntax Error, I X'(ω+mω1) Θ( -ω1/2 ≤ ω+mω1 ≤ ω1/2) // (2.2) with special Θ notation
= X'(ω) !Syntax Error, I Θ( -ω1/2 ≤ ω+mω1 ≤ ω1/2) // (22.3) that X'(ω + mω1 ) = X'(ω)
= X'(ω) . // (A.50), see Appendix A (e). (22.5)
In the second last step, we used (22.3) that X'(ω+mω1) = X'(ω), allowing X'(ω) to be extracted from the sum on m. Then in the last step we use (A.50) with α = ω1 and x = ω. The sum Σm Θ = 1 basically says that one partitions the curve f(ω) = 1 into little sections of length ω1, with attention paid to what happens at the boundaries of these little sections.
Second, insert (22.2) into the right side of (22.4) to get
!Syntax Error, I dω X'(ω) e+iωmΔt = !Syntax Error, I dω [!Syntax Error, I∆t x(tn) e-iωnΔt] e+iωmΔt
= !Syntax Error, I∆t x(tn) !Syntax Error, I dω e-iω(n-m)Δt = !Syntax Error, I∆t x(tn) !Syntax Error, Idω cos[(n-m)Δtω]
= !Syntax Error, I∆t x(tn) δn,m (π/Δt) = !Syntax Error, I x(tn) δn,m = x(tm)
Here we have used !Syntax Error, Idω cos[(n-m)Δtω] = δn,m (π/Δt) since
!Syntax Error, Idω cos[(n-m)Δtω] = sin[(n-m) Δt (ω1/2) ] = 0 n ≠ m
!Syntax Error, Idω cos[(n-m)Δtω] = !Syntax Error, Idω = (ω1/2) = (π/Δt) n = m
One should keep in mind that this new transform, the Digital Fourier Transform, is dependent on the constant ∆t = T1. Changing this constant changes the transform. The Fourier Integral Transform contains no such constant. In effect, T1 = 0.
We use the term "digital" in Digital Fourier Transform only because in the time domain the function x(t) is represented by a sequence of evenly spaced samples x(tn) and we say nothing about what x(t) might be doing between these sample times. The term Digital Fourier Transform is just our unofficial name for this transform, and the official name will appear later in Section 24.
Notice that both the Fourier Integral Transform and the Digital Fourier Transform are (at first) used to analyze time-domain functions (or sequences) that are of limited temporal extent, so we think of x(t) or x(tn) more or less as some kind of pulse. Technically, x(t) or x(tn) are non-periodic (aperiodic). Here is a side by side comparison of these two transforms:
Fourier Integral Transform
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (1.1)
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (1.2)
Digital Fourier Transform
X'(ω) ≡ !Syntax Error, I∆t x(tn) e-iωnΔt projection = transform (22.2)
x(tm) = !Syntax Error, I dω X'(ω) e+iωmΔt expansion = inversion (22.4)
For an aperiodic temporal function x(t) or sequence x(tn), the spectra X(ω) and X'(ω) are both continuous spectra, even though (1.1) shows X(ω) as an integral and (22.2) shows X'(ω) as a sum of functions which are continuous in ω. In the next section, we shall see the fascinating relationship between X(ω) and X'(ω).
In the limit Δt→0, X'(ω) → X(ω) and ω1→ ∞, so the Digital Fourier Transform is where the Fourier Integral Transform ends up if the continuum of time is divided into discrete chunks.
Now let's go back to our discrete convolution relation (21.4),
a(tn) = !Syntax Error, I∆t b(tn - tm) c(tm) tn = n ∆t . (22.6)
Dimensions: dim(b) = sec-1, dim(Δt b) = 1, so dim(a) = dim(c).
What does this look like in the frequency domain? To find out, we insert into (22.6) expansions of the form (22.4) for the functions a, b and c. We just did this in Section 21 above. The steps (1),(2),(3),(4) are exactly the same except our dω and dω' integration endpoints are (-ω1/2, ω1/2) instead of (-∞,∞). The first new feature occurs in step (5) where we pick up the analysis:
!Syntax Error, Idω A'(ω) e+iωnΔt = !Syntax Error, Idω B'(ω) e+iωnΔt !Syntax Error, Idω' C'(ω') 2π !Syntax Error, Iδ( ω - ω' - m ω1)
= !Syntax Error, Idω B'(ω) e+iωnΔt!Syntax Error, I!Syntax Error, Idω' C'(ω') δ( ω - ω' - m ω1)
= !Syntax Error, Idω B'(ω) e+iωnΔt !Syntax Error, I C'(ω-mω1) Θ( -ω1/2 ≤ ω-mω1 ≤ ω1/2) // (2.2)
= !Syntax Error, Idω B'(ω) e+iωnΔt C'(ω) !Syntax Error, I Θ( -ω1/2 ≤ ω-mω1 ≤ ω1/2) // (22.3) for C'(ω)
= !Syntax Error, Idω B'(ω) e+iωnΔt C'(ω) // (A.50), see Appendix A (e).
Since e+iωnΔt forms a complete set on the interval (-ω1/2, ω1/2), we may equate integrands to find
A'(ω) = B'(ω)C'(ω) . (22.7)
Thus, our new Digital Fourier transform yields this simple diagonalized result with none of those extra image terms. Of course we must remain aware that A'(ω) is not the genuine spectrum of a(t), it is some new thing. Just because we defined a new animal and got (22.7) does not mean that the image spectra go away in (20.7) and (21.10) and (21.11). Here then is the Digital Fourier Transform convolution theorem in comparison with that for the Fourier Integral Transform:
a(tn) = !Syntax Error, I∆t b(tn - tm) c(tm) A'(ω) = B'(ω)C'(ω) tn = nΔt (22.8)
a(t) = !Syntax Error, I dt' b(t-t')c(t') A(ω) = B(ω) C(ω) (3.6)
23. The Digital Fourier Transform X'(ω) Part II
(a) Relation between X'(ω) and X(ω)
The next problem is to figure out how the genuine Fourier Integral spectrum X(ω) is related to our new Digital Fourier Transform X'(ω). Start with the Fourier Integral expansion (1.2) ,
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt expansion = inverse transform . (1.2)
Partition the integration into a set of little ranges of width ω1 :
x(t) = !Syntax Error, I !Syntax Error, Idω X(ω) e+iωt .
Change integration variable to ω' = ω - mω1,
x(t) = !Syntax Error, I !Syntax Error, Idω' X(ω'+mω1) e+i(ω'+mtω)
= !Syntax Error, Idω' [ !Syntax Error, I X(ω'+mω1) e+imωt ] e+iω't .
Next, set t = tn = nT1 on both sides. This makes the exponential inside the square bracket equal 1, so
x(tn) = !Syntax Error, Idω' [ !Syntax Error, I X(ω'-mω1) ] e+iω'nΔt .
Now compare this to the Digital Fourier expansion defined in (22.4) which we duplicate here, changing ω to ω' and m to n:
x(tn) = !Syntax Error, I dω' X'(ω') e+iω'nΔt . expansion = inversion (22.4)
Since the functions e+iω'nΔt form a complete basis on the interval (-ω1/2,ω1/2), equate integrands of the last two equations to get,
X'(ω) = !Syntax Error, IX(ω- mω1) = [ X(ω) + !Syntax Error, IX(ω - mω1) ] . (23.1)
This is that thing that keeps popping up everywhere -- the main spectrum plus all the image spectra. Thus, we have shown that this combination is precisely the Digital Fourier Transform spectrum. We can therefore go back and reexamine some of our earlier results with this new knowledge:
Consider (20.7):
X(ω) = !Syntax Error, IY(ω - mω1) = [ Y(ω) + !Syntax Error, IY(ω - mω1) ] = Y'(ω) . (23.2)
This says that the Fourier Integral spectrum of a "reasonable" signal y(t) multiplied by a sequence of delta functions is exactly the Digital Fourier Transform spectrum Y'(ω). Of course Y'(ω) is computed from (22.2) from a knowledge of y(t) only at the sample points tn.
Next, we realize that our digital filter equations (21.10) and (21.11) ,
A(ω) = B(ω) !Syntax Error, IC(ω-mω1) = !Syntax Error, I B(ω - mω1) C(ω) ,
become
A(ω) B(ω) C'(ω)
A(ω) B'(ω) C(ω) (23.3)
The second equation is our low-pass digital filter B with input C and output A. The filter with all its image pass bands is now conveniently represented by B'(ω). A(ω) and C(ω) are still the Fourier Integral spectra of a and c. However, we already know from (22.7) that (23.3) is true with primes on A and C as well,
A'(ω) B'(ω) C'(ω) . (23.4)
It might seem unusual that (23.3) and (23.4) can all be true. They are all true, and we can now present a much more compact derivation of (23.4) by making use of (23.3) :
A(ω) B'(ω) C(ω) // (23.3) which is really just (21.11)
A(ω - mω1) B'(ω - mω1) C(ω - mω1) // set ω → ω - mω1,
= B'(ω) C(ω - mω1) // (22.3) for B'(ω)
Then:
!Syntax Error, I A(ω - mω1) = B'(ω) !Syntax Error, I C(ω - mω1)
or
A'(ω) B'(ω) C'(ω)
(b) Summary of the Digital Fourier Transform
We now summarize what we know about the Digital Fourier Transform (this box takes 2 pages)
Digital Fourier Transform (23.5)
1. Let x(t) be any reasonable function.
2. Divide up the time axis into steps tn = n ∆t; let T1 ∆t and ω1 2π/T1.
3. We can think of samples xn = x(tn) for the above x(t). Alternatively, we can think of the
xn as some given sequence, and one could then construct an infinite number of functions
x(t) for which xn = x(tn).
4. In terms of x(t), the Digital Fourier Transform and its inverse are given by
X'(ω) ≡ !Syntax Error, I∆t x(tn) e-iωt projection = transform (22.2) // V-sec
x(tn) = !Syntax Error, I dω X'(ω) e+iωt expansion = inversion (22.4) // V
More generally, dispensing now with x(t) and writing tn = nT1 in the exponential,
X'(ω) ≡ T1!Syntax Error, Ixn e-iωnT projection = transform
xn = !Syntax Error, Idω X'(ω) e+iωnT expansion = inversion
If Dim(xn) = V, then Dim(X') = V-sec.
5. By its definition (and tn = n ∆t), X'(ω) is periodic in ω with period ω1:
X'(ω - mω1) = X'(ω) m = any integer (22.3)
6. The relation between X'(ω) and the Fourier Integral spectrum X(ω) of x(t) is given by:
X'(ω) = !Syntax Error, IX(ω- mω1) = [ X(ω) + !Syntax Error, IX(ω- mω1) ] (23.1)
7. The Digital Fourier Transform diagonalizes any convolution sum:
a(tn) = !Syntax Error, I∆t b(tn - tm) c(tm) tn = n ∆t (22.6)
A'(ω) = B'ωC'(ω) (22.7)
8. It is also true that
A(ω) = B'ωC(ω) = B(ω)C'(ω) (23.3)
24. The Z Transform X"(z)
The Digital Fourier Transform described in Sections 22 and 23 is really the Z Transform times Δt. We have concealed this fact up till now because the ω-space version, called X'(ω)in Section 23,allows direct comparison to the Fourier Integral spectrum X(ω). We have already drawn the major conclusions. Here we just change the clothing.
Change variables from ω to dimensionless z, [ ω1= 2π/Δt so Δt = 2π/ω1 = π/(ω1/2) = T1 ]
z ≡ eiωΔt = eiπ[ω/(ω/2)] dz = z i ∆t dω dω = . (24.1)
Note that as ω runs over its range -ω1/2 to +ω1/2 , phasor z runs from -π to π on a unit circle.
Now define the Z Transform X"(z) in terms of the Digital Fourier Transform X'(ω),
X"(z) ≡ X'(ω(z)) . (24.2)
Dimensions: If Dim(xn) = V, then Dim(X') = V-sec so Dim(X") = V, the same as xn, see also (24.3).
With this substitution, and letting
xn = x(tn) = x(n∆t),
the above Digital Fourier Transform formulas (22.2) and (22.4) (see box above) immediately become:
X"(z) =!Syntax Error, Ixn z-n projection = transform (24.3)
xn = !Syntax Error, Idz X"(z) zn-1 expansion = inversion (24.4)
where C is a contour doing one counterclockwise traversal of the unit circle in the z plane. These two equations are the Z Transform and its inverse.
Limit Comment: Since X'(ω) → X(ω) as Δt→0, it follows that limΔt→0 [ Δt X"(z)] = X(ω). So this is how one could get from the Z Transform to the Fourier Integral Transform.
Mapping Comment: One can think of z = eiΔtω as describing an analytic mapping (conformal map) from the complex ω-plane to the z-plane. Here is a picture of that mapping :
Fig 24.1
The infinite gray vertical strip of the ω-plane with -ω1/2 ≤ Re(ω) ≤ ω1/2 maps into the entire z plane. The real axis in the red range -ω1/2 ≤ ω ≤ ω1/2 maps into the unit circle in the z plane as shown. The upper half of the strip in the ω-plane maps into the interior of the unit circle, and the lower half of the strip maps into the exterior of the unit circle. The blue and green arrows map as shown. Generally, horizontal segments in ω map into origin-centered circles in z, and vertical lines in ω map into rays in z.
The z plane shows the principle Riemann sheet of the mapping with a black branch cut going off to the left from the z plane origin. If in the ω plane one continues the red arrow into the next strip to the right, Re(ω) > ω1/2, one dives through the branch cut on the right and arrives on the next sheet in z.
For some general function f(ω) define F(z) ≡ f(ω(z)). The function F(z) would have an induced branch cut as shown on the right, with some discontinuity across it. In this case, the red circle would not represent a closed integration contour, so the usual rules of complex integration around closed loops would not apply. However, if f(ω) were periodic with period ω1, there would be no discontinuity across the branch cut in F(z) because f(ω) would take the same value on the two vertical edges of the grey strip in the ω plane, and therefore F(z) would have the same value on the two sides of the cut, which means there is no cut. In this case, the red circle does represent a closed contour.
According to (22.3), the Digital Fourier Transform X'(ω) is periodic with period ω1. Therefore the Z Transform X"(z) has no branch cut and the red circle is a closed contour, as used in the examples below. This is why the Z Transform is so useful. The redundant information in the infinite number of vertical strips in the ω plane is reduced to non-redundant information in the z plane. The mapping is completely analytic, introducing no poles or branch cuts.
If a function F(z) = (z-a)-1 has a pole in the z plane at a, as shown in Fig 24.1 by the x on the right, then f(ω) has a pole at ωa = ln(a)/(iΔt) as shown by the x on the left, ln(a) < 0. To show this, consider ω in the neighborhood of ωa:
f(z(ω)) = = = = ≈ .
The bottom line is that in going from the Digital Fourier Transform to the Z Transform, we are simply making a change of variable and removing redundant information. There is nothing dramatically new introduced by doing this. As we shall see below, there is a notational economy in writing z-1 for a delay of Δt in place of e-iΔtω .
So far in these notes we have run into the Fourier Integral Transform and its Sine and Cosine cousins, the Laplace Transform, the Fourier Series Transform, the Digital Fourier Transform, and the Z Transform. They are all variations on the same theme, and we have shown how they are all related to each other. They all have an analogous set of "basic results" and "rules". We now peruse these results and rules for the Z Transform.
(a) Convolution Theorem
According to the definition X"(z) ≡X'(ω(z))/Δt, if we transcribe the convolution result A'(ω) = B'(ω) C'(ω) of (23.4) , we pick up an extra factor of ∆t . Thus we compare convolution theorems :
an = !Syntax Error, I∆t bn-m cm A'(ω) = B'(ω)C'(ω) (22.8)
an = !Syntax Error, I∆t bn-m cm A"(z) = ∆t B"(z) C"(z) (24.5)
Dimensions: Dim(a,c,A",C") = V, Dim(b,B") = sec-1.
In (24.5), it is convenient to absorb the Δt factor into the bn-m coefficients. To do this, we define
hn ≡ ∆t bn (24.6)
so that (24.5) may be written in this simpler and more traditional form, where H"(z) is the Z Transform of hn,
an = !Syntax Error, Ihn-m cm A"(z) = H"(z) C"(z) . (24.7)
Dimensions: Dim(a,c,A",C") = V, Dim(h,H") = 1.
Equation (24.7) is the digital convolution theorem stated in terms of the Z Transform.
(b) Unit Impulse
The analog of the unit impulse δ(t-a) at t=a must be a sequence of numbers xn which are all zero except the one say at some integer m. We might write this as
xn = δm(n) ≡ δn,m "unit impulse" n = all integers, the sequence index (24.8)
If we stuff this into the Z-Transform projection (24.3) , we get
X"(z) = z-m . " unit impulse response" (24.9)
This looks a lot like our Fourier Integral result (8.2) (setting t1 = tm)
x(t) = δ(t - tm)
X(ω) = e-iωt = e-iωΔtm = z-m . (8.2)
The expression z-m on the right is the same in both cases. The Fourier Integral Transform does to its appropriate "unit impulse" just what the Z Transform does to its appropriate "unit impulse". The unit impulses are different.
In a filter with input I and output O we have O"(z) = H"(z) I"(z), where H"(z) is the filter transfer function. If I is taken to be a unit impulse at time t=0, then from the above I"(z) = z0 = 1. Thus, quantity H"(z) is the z-domain response of the filter to an impulse at t=0. From (24.4) one can then get the time domain impulse response hn. We shall do this below for an "RC" filter.
(c) Time Translation
Above we show a unit impulse δm(n) at time m and its Z transform z-m. A unit impulse one step later in time would be δm+1(n), and its Z transform would be z-m-1 = z-m z-1 . This suggests that if a signal is delayed by one time step, its Z transform acquires a factor z-1. Advancing a signal one step means multiply by z+1. These facts are true for an arbitrary signal; they follow immediately from (24.4):
xn+1 = !Syntax Error, Idz X"(z) zn-1 z+1 // advance one step xn+1 ↔ z+1X"(z) (24.10)
xn-1 = !Syntax Error, Idz X"(z) zn-1 z-1 // delay one step xn-1 ↔ z-1X"(z) . (24.11)
A very similar thing happens in the Fourier Integral Transform world, where time translation generates a multiplicative phase as shown in (12.1): x(t - t1) ↔ X(ω) e-iωt.
In general, one can delay a digital signal one step in time by running it through a D flip-flop having clock period Δt, so this is why such flip-flops are associated with z-1 in a digital filter. There is no analogous device to associate with z+1. It would have to be a causality-violating device.
(d) Derivative Limit
Based on the preceding subsection, we know that the following difference of two sequences has this transform,
↔ X"(z) [ ] . (24.12)
This is just a simple superposition. If we take the limit ∆t → 0, the LHS becomes dx/dt, and the RHS becomes X"(z) iω, since z-1 = exp(-iω∆t) ≈ 1 - iω∆t. Since limΔt→0 [ Δt X"(z)] = X(ω), we are not surprised to find that the iω rule (11.1) applies to both X"(z) and X(ω).
(e) Digital RC filter
This filter was treated in terms of the Fourier Transform in Section 4 (b) where we wrote its analog description in (4.5),
RC dvo(t)/dt + vo(t) = vi(t) . (4.5) (24.13)
Undoing the limit as just described above, we write this in digital form as
RC + vo(tn) = vi(tn) . (24.14)
For any finite Δt, this equation is of course different from (24.13) but for small Δt we expect it to be a good approximation for the system described by (24.13).
Letting on ≡ vo(tn) and in ≡ vi(tn) this reads
RC + on = in . (24.15)
Z Transform each of the four terms shown and use (24.11) on on-1 to get
RC O"(z) [ ] + O"(z) = I"(z)
or
[ α (1-z-1) + 1] O"(z) = I"(z) . α ≡ (RC/Δt) = dimensionless
If we want to interpret this circuit as a digital filter, we write, as in (24.7),
O"(z) = H"(z) I"(z) . (24.16)
The filter transfer function is then
H"(z) = = = = . (24.17)
We may now use (24.4) to recover the time domain signal,
hn = !Syntax Error, Idz H"(z) zn-1 = !Syntax Error, Idz . (24.18)
For n ≥ 0, the integrand has a single pole at location z = α/(1+α) where α = (RC/Δt). As α ranges from 0 to ∞, the pole location moves from 0 to 1, so it is always inside the unit circle contour,
Fig 24.2
The integral may be evaluated as 2πi times the residue at this pole :
hn = 2πi ()n = ()n+1 = ()n+1 .
The samples hn are dimensionless, but to compare with our earlier RC work we write as in (24.6) that hn = Δt gn to get
gn = ()n+1 . (24.19)
In the case n < 0, in addition to the pole just mentioned, there is a pole or order n at z = 0. But when n < 0, we can expand the contour out to a Great Circle at infinity and the z-|n| factor then causes the integral to vanish. The reason is that in this limit we have, with z = Reiθ,
!Syntax Error, I dz z-|n|-1 = !Syntax Error, IRi eiθ e-iθ(|n|+1) R-(|n|+1) = R-|n| { !Syntax Error, I e-iθ|n| } . (24.20)
But the integral {..} is finite, and as R→∞, R-|n| → 0 for n = -1,-2... so the GC integral is 0.
Thus, in terms of the Heaviside Step function,
gn = g(tn) = (1/RC) (1+α-1)-n-1 θ(n+ε) α = (RC/Δt) (24.21)
where ε > 0 is any quantity less than 1 so we avoid the fact that θ(0) = 1/2. We can compare this to the analog output of the true RC filter (4.10)
g(t) = (1/RC) e-(t/RC) θt) . (4.10)
Both the analog and digital filters demonstrate causality with the θ factors shown. However, the analog filter decays in an exponential fashion, whereas the digital decays in a geometric manner. We can rewrite the digital result in this manner
gn = g(tn) = (1/RC) e-(n+1)ln(1+1/α) θ(n+ε) . (24.22)
In the limit Δt << RC we have α << 1 and then ln(1+1/α) ≈ 1/α = Δt/(RC) and this result becomes
g(tn) = (1/RC) e-(n+1)Δt/(RC) θ(n+ε) = (1/RC) e-t/(RC) θ(n+ε) (24.23)
and, since tn+1 = tn + Δt ≈ tn, this replicates the analog result (4.10) in the small Δt limit.
So we learn that, in order to make our digital RC filter produce the same results as an analog RC filter, we must take Δt << RC, which is no big surprise since this was assumed at the start going from (24.13) to the difference equation (24.14).
(f) Poles in H"(z) imply feedback and infinite impulse response (IIR)
A general form for an implementable dimensionless transfer function H"(z) is a ratio of polynomials in z. We saw an example in the RC filter (24.17) above. So consider this general form,
H"(z) = [Σn=0M anzn ]/ [Σn=0N bnzn] . (24.24)
In the special case that the denominator has the form Σn=1N bnzn = zk for some integer k ≥ M, we have
H"(z) = [Σn=0M anzn] / (zk) = Σn=0M an zn-k = Σn=0M an (z-1)k-n .
Since k ≥ M, the exponents on (z-1)k-n are all non-negative. In this case we can write
H"(z) = a0(z-1)k + a1(z-1)k-1 + ..... + aM (z-1)k-M
= a0z-k + a1z-k+1 + ..... + aM z-k+M k ≥ M (24.25)
where all the (z-1) exponents are non-negative integers. As we shall show by example below, since a filter transfer function having this general form has only positive powers of (z-1), it can be implemented by hardware which has no feedback loops, and which therefore has an output which dies out some finite number of clocks after the input dies out. If this filter is given an impulse as input, the output dies out after a certain number of clocks. Thus, the filter has a finite impulse response and is then called a Finite Impulse Response or FIR filter (example below).
Notice that in our special case H"(z) has a pole of order k at z = 0. When we later claim that transfer functions having poles must be implemented in hardware with feedback giving an infinite impulse response, we are referring to poles not located at z = 0.
For our example we shall assume k = M = 2. Then,
H"(z) = a0z-2 + a1z-1 + a2 = A + Bz-1 + Cz-2. (24.26)
Then if I"(z) and O"(z) are the input and output of our filter,
O"(z) = H"(z) I"(z), (24.16)
we have
O"(z) = [A + Bz-1 + Cz-2] I"(z) = A I"(z) + Bz-1 I"(z) + Cz-2 I"(z) (24.27)
Using the shift rule (24.11) we can translate the above equation into the time domain to get
on = A in + B in-1 + C in-2 . (24.28)
These last two equations can be represented by these diagrams:
Fig 24.3
The time-domain diagram represents a piece of "hardware" wherein the output is developed with two D flip-flop registers (clock period Δt) and three constant multipliers and two adders. This hardware circuit has no "feedback" because no flip-flop output is ever involved in determining a flip-flop input. Sometimes authors combine these two pictures, drawing the time domain register elements as boxes with z-1 labels inside. This convention appears in the following wiki picture (left),
http://en.wikipedia.org/wiki/Finite_impulse_response Fig 24.4
On the right we show the usual notation for attaching a clock to a register. In these pictures, each line (but not the clock) represents a "bus" of however many bits n is used to represent a digital sample. The triangle symbol for a multiplier suggests an "amplifier" which scales a signal. Later we shall use a simple X placed on a bus to indicate multiplication by a constant. The flip-flops are clocked by a square-wave clock pulse train having period Δt. At each positive edge of the clock signal, the value which the register input has just before that edge is loaded into the register. The register output then holds that value constant until the next positive clock edge.
Here is the response of the circuit of Fig 24.3 to a unit impulse aligned with i1 :
Fig 24.5
and it seems pretty clear that the impulse response is finite.
We now consider a different example with poles. Suppose H"(z) is the inverse of that of the previous example,
H"(z) = = (24.29)
so now H"(z) has some non-zero poles (poles not at z=0). Then we get I and O swapped, so
I"(z) = [ A + Bz-1 + Cz-2 ] O"(z) . (24.30)
Solve this for O"(z) in the following manner (solve for A O"(z) then divide by A),
O"(z) = (1/A) I"(z) + (- B/A) z-1 O"(z) + (- C/A) z-2 O"(z) . (24.31)
Translating this to the time domain using rule (24.11) gives,
on = (1/A) in + (- B/A) on-1 + (- C/A) on-2 . (24.32)
The corresponding drawings are these :
Fig 24.6
Here one can see the feedback: register inputs are dependent on register outputs. This is an Infinite Impulse Response (IIR) filter, since the impulse response hn carries on forever due to the feedback. See hn in (24.19) as another example: geometric decay which never goes away completely. In that example the transfer function H(z") has a pole as shown in (24.17). [ The response might go away in a real digital circuit with a finite number of quantization bits. ]
(g) The Digital RC filter revisited
We can now draw up the RC filter discussed above. We had in (24.16) and (24.17),
O"(z) = [H"(z) ]I"(z) = I"(z) = I"(z) (24.33)
or
O"(z) – z-1 O"(z) = I"(z)
or
O"(z) = z-1 O"(z) + I"(z) (24.34)
Fig 24.7
As just noted above, the presence of a non-zero pole in H"(z) gives feedback.
Defining β ≡ 1/α = (Δt/RC), then in the regime in which the filter is accurate α >> 1 so β << 1, and then
= = ≈ β(1-β) ≈ β
(24.35)
= = ≈ (1-β) ≈ e-β ,
which yields another form which sometimes appears in textbooks (Lam pages 509 and 503)
Fig 24.8
If we use these constants in (24.17) we get the rational polynomial transfer function
H"(z) =
and then from (24.18) with hn = Δt g(tn),
g(tn) = e-nΔt/RC = e-t/RC θ(n+ε) . (24.36)
This is an accurate result even when α is not large (β not small), so although this is not the design that emerged from our small-Δt analysis in section (e) above, it is certainly a better design for a digital RC filter. The two designs produce the same output for Δt << RC.
(h) Other circuits
Typical examples of IIR filters having feedback are serial scramblers and CRC generators. One thinks of the input sequence I"(z) as a huge polynomial in z, where the presence or absence of each power represents a 1 or a 0. That is, think of the incoming stream as a superposition of unit impulses with weights equal to the binary digits of the data stream. The transfer function H"(z) = 1/polynomial, so we write O"(z) = H"(z) I"(z) = I"(z)/polynomial. The output stream is then the quotient of polynomial division. One way to interpret the above discussion is as follows:
no poles → polynomial multiplication → no feedback → FIR
poles with no zeros → polynomial division → feedback → IIR
poles and zeros→ simultaneous polynomial multiplication and division → feedback → IIR
This subject will be pursued more in a separate document.
(Z Transform summary box on next page)
(i) Z Transform Summary
Z Transform (24.37)
1. Let x(t) be any reasonable function.
2. Divide up the time axis into steps tn = n ∆t; let T1 ∆t and ω1 2π/T1.
3. We can think of samples xn = x(tn) for the above x(t). Alternatively, we can think of the
xn as some given sequence, and one could then construct an infinite number of functions
x(t) for which xn = x(tn).
4. In terms of x(t), the Z Transform and its inverse are given by
X"(z) = !Syntax Error, Ix(tn) z-n (24.3)
x(tn) = !Syntax Error, Idz X"(z) zn-1 . (24.4)
More generally, dispensing now with x(t) and using just xn,
X"(z) = !Syntax Error, Ixn z-n (24.3)
xn = !Syntax Error, Idz X"(z) zn-1 (24.4)
The contour C goes once counterclockwise around the unit circle in the z-plane.
5. The Z Transform diagonalizes any convolution sum :
an = !Syntax Error, I∆t bn-m cm A"(z) = ∆t B"(z) C"(z) (24.5)
an = !Syntax Error, Ihn-m cm A"(z) = H"(z) C"(z) (24.7)
where hn ≡ ∆t bn and H"(z) = ∆t B"(z)
6. The Z transform is related to the Digital Fourier Transform of box (23.5) by
X"(z) ≡ X'(ω) where z = eiωΔt (24.2)
25. Amplitude Modulated Pulse Trains
In Section 14 we studied the spectrum of a simple pulse train made by superposing equal pulses xpulse(t) with spacing T1. We found that the Fourier Integral spectrum X(ω) of such a pulse train was given by an infinite sequence of delta function spikes with amplitudes determined by an envelope function c(ω) which is just a multiple of the spectrum of the pulse (summary box 14.12).
x(t) =!Syntax Error, I xpulse(t - tn) tn = nT1 pulse train (14.1)
X(ω) = !Syntax Error, I c(ω) 2π δ(ω - mω1) = !Syntax Error, I cm 2π δ(ω - mω1) spectrum (14.9)
where c(ω) ≡(1/T1)Xpulse(ω) = (1/T1) !Syntax Error, Idt xpulse(t) e-iωt (14.8) and (1.1)
The numbers cm = c(mω1) turned out to be exactly the complex Fourier Series coefficients.
Later in Section 20 we studied an amplitude-modulated pulse train in which xpulse(t) = T1δ(t), and we took note of the continuous spectrum of such a pulse train,
x(t) = y(t) d(t) = !Syntax Error, Iyn T1δ(t - nT1) yn = y(nT1) (20.3)
X(ω) = Y'(ω) = !Syntax Error, IY(ω - mω1) = Y(ω) + !Syntax Error, IY(ω - mω1) . (20.7)
where Y'(ω) was the Digital Fourier Transform of y(t) shown in items 3 and 4 of box (25.3).
In this section we shall combine both these ideas to obtain an amplitude modulated pulse train with an arbitrary pulse shape xpulse(t). We continue to denote the amplitude modulated pulse train by x(t),
x(t) = !Syntax Error, I yn xpulse(t -tn). (25.1)
What is the spectrum of this new pulse train? To find out, we insert (25.1) into (1.1),
X(ω) = !Syntax Error, Idt x(t) e-iωt = !Syntax Error, Idt [!Syntax Error, Iyn xpulse(t - tn)] e-iωt
= !Syntax Error, I yn !Syntax Error, Idt xpulse(t - tn)] e-iωt =!Syntax Error, I yn [!Syntax Error, Idt' xpulse(t') e-iωt'] e+iωt // t' = t-tn
= !Syntax Error, I yn Xpulse(ω) e+iωt = Xpulse(ω) !Syntax Error, I yn e+iωt
where we used (1.1) to recognize Xpulse(ω). Recall now the Digital Fourier Transform as summarized in the box (23.5). From item 4 in that box, we can interpret the n sum above in this way (Δt = T1)
!Syntax Error, I yn e+iωt = Y'(ω) = Y"(z) (25.2)
which says, apart from a constant factor, this sum is the Digital Fourier Transform of y(t). [In this and the following equations, we will try to show results in terms of both the Digital Fourier Transform Y'(ω) and the Z Transform Y"(z) = Y'(ω)/T1. ]
From item 6 in that same box, we know that Y'(ω) = [ Y(ω) + !Syntax Error, IY(ω- mω1) ]. We conclude the above calculation of the spectrum X(ω) to find that, using the definition (14.8) of c(ω),
X(ω) = Xpulse(ω) Y'(ω) = c(ω) Y'(ω) = Xpulse(ω) Y"(z) . (25.3)
Comparing this to (20.7) quoted just above, we see that the spectral effect of replacing the T1δ(t) pulse by xpulse(t) is the addition of the pulse spectrum c(ω) = Xpulse(ω)/T1 as an overall factor. We then recover the delta function result as a special case where c(ω) = T1/T1 = 1 as at the start of Section 20.
Thus we arrive at this very significant result which deserves its own box:
Amplitude Modulated Pulse Train (25.4)
x(t) = !Syntax Error, I yn xpulse(t -tn) (25.1)
X(ω) = c(ω) Y'ω) c(ω) [ Y(ω) + !Syntax Error, I Y(ω - mω1)] = Xpulse(ω) Y"(z) (25.3)
c(ω) (1/T1)Xpulse(ω) = (1/T1) !Syntax Error, Idt xpulse(t) e-iωt (14.8) and (1.1)
Y'(ω) = T1Y"(z) = T1!Syntax Error, Iyn e-iωnT projection = transform (23.5)
The boxed result above is one of the holy grails of the spectral analysis of digital signals. Notice that by selecting yn to vanish outside some range, the box applies to both infinite and finite pulse trains.
Example 1: A finite pulse train
Consider this finite sequence of yn samples
Fig 25.1
We can regard the red outline curve as an amplitude modulated pulse train whose pulse shape is a box of height A = 1 and width τ = T1. The Fourier Integral Transform spectrum of this box from (9.2) is
Xpulse(ω) = T1 sinc(ωT1/2) . (9.2)
From box (25.4) the Fourier Integral Transform spectrum X(ω) of the pulse train is given by
X(ω) = (1/T1)Xpulse(ω) { Y'ω) } = Xpulse(ω) [ Y'(ω)/T1]
= sinc(ωT1/2) { Y'ω) } = sinc(ωT1/2) { T1!Syntax Error, Iyn e-iωnT } (25.5)
where Y'ω) is the Digital Fourier Transform of the sequence yn as shown in (23.5).
Here is a Maple plot of | Y'ω) | with T1 = 1.
Fig 25.2
where we see the expected image spectra at Nω1 = N2π. There is a strong DC component at ω = 0 and the peak there is the sum 19 of the yn values (all of which are positive) so X(0) = Y'(0) = 19 .
Next we show in red a plot of | X(ω) | from (25.5) for the finite pulse train,
Fig 25.3
where the blue curve provides an outline of X(0) |sinc(ωT1/2)| . The red curve is the spectrum of the physical red analog signal shown in Fig 25.1 and there are no image spectra. The sinc function in this example crushes out the image spectra with its zeros.
Now we shall attempt some reconstructions.
First, we reconstruct the yn from Y'(ω) using the inversion formula in box (23.5),
yk = !Syntax Error, Idω Y'(ω) e+iωkT expansion = inversion (23.5)
which are in fact the yn we started with.
Second, we reconstruct the pulse train x(t) from X(ω) using the inversion formula (1.2),
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (1.2)
Fig 25.4
which replicates our starting figure. The reason for Re(s) is that that s has a tiny imaginary part ~ 10-9 due to calculational error, and the plot routine requires a real function. Maple does the integral analytically as shown (see (C.14) for signum ).
Example 2: The unit impulse and the sinc sum rule
Even the simplest case is interesting. The yn sequence is taken as a unit impulse scaled by y0
Fig 25.5
Xpulse(ω) = T1 sinc(ωT1/2) . // for box of unit height (9.2)
From box (25.4) the Fourier Integral Transform spectrum X(ω) of this "pulse train" is given by
X(ω) = (1/T1)Xpulse(ω) { Y'(ω) }
= sinc(ωT1/2) { T1!Syntax Error, Iyn e-iωnT }
= sinc(ωT1/2) { T1y0 } = sinc[π(ω/ω1)] { T1y0 } // = Y(ω) (25.6)
so in this example Y'ω) = T1y0. If we regard the red plot as y(t), then X(ω) = Y(ω), the Fourier Integral Transform of y(t). They are the same since this pulse train has only one pulse.
A plot of |X(ω)| = |Y(ω)| has a familiar look (T1= 1, ω1= 2π, y0 = 1) :
Fig 25.6
We have just noted that Y'ω) ≡ y0T1 = 1. How exactly does the image spectrum equation in box (23.5) item 6 , namely
Y'(ω) = [ Y(ω) + Σm≠0Y(ω- mω1) ] , (25.7)
work out? First, we plot the right side of (25.7) limiting the sum range to m = -100 to 100 :
Fig 25.7
It appears that the shifted sinc functions are adding up to produce the constant Y'ω) = 1. In terms of the math, this must mean that
Y'(ω) = !Syntax Error, IY(ω - mω1) = yo T1!Syntax Error, I sinc[π(ω/ω1 - m)] = yoT1 (25.8)
which implies the following unusual sum rule, valid for any real x :
!Syntax Error, I sinc[π(x-m)] = 1 . (25.9)
This result is sometimes quoted with x = 0 but it is in fact valid for any x. We have in effect proven the sum rule with the above analysis, but as usual we would like to find verification. First process the sum as follows,
!Syntax Error, I sinc[π(x-m)] = !Syntax Error, I = (1/π) sin[πx]!Syntax Error, I .
The sum on the right can be further processed,
!Syntax Error, I = + [!Syntax Error, I+!Syntax Error, I] = + 2x !Syntax Error, I .
According to GR 142.3 (page 44),
we may replace
+ 2x !Syntax Error, I = π csc(πx)
and then we find that
!Syntax Error, I sinc[π(x-m)] = (1/π) sin[πx] π csc(πx) = 1
which then verifies the sum rule (25.9).
26. A simple application: Aperture Correction
The output of a digital system usually involves a D/A converter followed by an analog post-filter. Let us assume that this system is attempting to reproduce some reasonable analog waveform y(t). Assume that each converted value is held as charge on a capacitor for some portion τ of the conversion period T1, and then the capacitor charge is instantly dumped to ground for the remainder of the period. Period τ is called the aperture. In this way, we produce a signal x(t) that is a sequence of square pulses modulated by the values y(tn) :
Figure 26.1. The smooth curve is y(t), the pulse train is x(t). Spacing is ∆t = T1. Width Fig 26.1
of each pulse is τ (the aperture), so duty cycle is τ/T1.
What is the spectrum of x(t)? It is an amplitude modulated pulse train, so according to (25.3) the spectrum of x(t) is
X(ω) = (1/T1) Xpulse(ω) Y'ω (26.1)
The pulse xpulse(t) is a square pulse of unit height, width τ, and with its left edge aligned with t=0. We know the spectrum of this pulse from (9.2), but by (12.1) we must add a time-shift phase exp(-iωτ/2) because we are translating our earlier pulse τ/2 units to the right to make the left edge line up at t=0. Thus, from (9.2) and (12.1),
Xpulse(ω) = τ sinc(ωτ/2) e-iωτ/2 (26.2)
so the spectrum of x(t) is
X(ω) = (τ/T1) sinc(ωτ/2) exp(-iωτ/2) Y'ω (26.3)
The magnitude of X(ω) is the product of two functions which we now illustrate, where the grey humps represent Y(ω) and its images which combine to make Y'ω, whatever it might be,
Figure 26.2. The humps are |Y'(ω)| and the red curve is (τ/T1) |sinc(ωτ/2)|. Fig 26.2
Presumably our low pass analog post-filter is going to select out the portion of the spectrum indicated by the dotted lines in Figure 26.2. In this region we have,
X(ω) = (τ/T1) sinc(ωτ/2) exp(-iωτ/2) Yω), (26.4)
where Y(ω) is the main spectrum of Y'(ω). The factor (τ/T1)sinc(ωτ/2) represents an undesired magnitude distortion of the spectrum X(ω) due to the aperture τ. The phase φ(ω) = -iωτ/2 is a harmless linear phase which just means the whole signal is delayed by time τ/2, as shown in Section 21 (b).
The distortion is at its worst when the aperture τ fills the entire period T1, in which case the signal in Figure 26.1 looks like a traditional stepwise fit to y(t). The distortion is worst because the zeros of sinc(ωτ/2) are at ωm = m (2π/τ), so they are moved in as close as possible when τ is as large as possible, τ = T1.
The distortion can be reduced by making τ as small as practicable. In this case, the zeros move out, and the central hump of sinc(ωτ/2) is broad, so its drop-off during Y(ω) is minimized. Of course the amplitude (τ/T1) of X(ω) also drops off as τ is made small, so there is a tradeoff.
In any event, there is still some distortion represented by sinc(ωτ/2) varying in the dotted region in Figure 26.2. Usually one attempts to correct for this aperture distortion by building into the analog post-filter an exactly compensating boost at frequencies near the cutoff region of the filter.
Thus, if the post-filter would normally be some F(ω) cutting off in the region of the second dotted line in Figure 26.2, a correcting filter would have the spectrum F(ω)/sinc(ωτ/2). This filter needs to know the aperture time τ in addition to the cutoff frequency. Such a filter is said to have "sine x over x correction".
27. The Discrete Fourier Transform
Up to this point, xpulse(t) has always been considered a continuous function of time t. A simple pulse train was formed as x(t) = Σn xpulse(t-tn) and an amplitude modulated pulse train as Σn yn xpulse(t-tn) where tn = nT1. Now for the first time we wish to consider a digital approximation to xpulse(t). That is the main subject of this section, and we shall develop it in analogy to Section 22 for the Digital Fourier Transform.
In a slight reversal of our normal order of doing things, in section (a) we shall develop the Discrete Fourier Transform (DFT) for a pulse train, then in section (b) we develop the Discrete Fourier Transform for an isolated pulse, this latter being the traditional form of the DFT.
(a) The Discrete Fourier Transform for a Simple Pulse Train x(t)
Recall from Section 15 the discussion of the Fourier Series Transform with complex coefficients cm. This was summarized in box (15.12) from which we quote,
Fourier Series Transform: (complex form)
cm ≡ (1/T1) !Syntax Error, I dt xpulse(t) e-imωt = (1/T1) !Syntax Error, I dt x(t) e-imωt (14.16) (27.1)
x(t) = !Syntax Error, Ixpulse(t - nT1) = !Syntax Error, I cm e+imωt (14.1) + (15.9) (27.2)
Here, x(t) is an infinite pulse train created by superposing pulses xpulse(t) at spacing T1. Thus, x(t) is a periodic function with period T1.
We wish now to redefine our concept of interval ∆t. In our previous discussion, we set ∆t = T1. Here we wish instead to break up each interval T1 into N pieces of size ∆t, so now we have:
∆t = T1/N ω1 = (2π/T1) = 2π/(N∆t)
T1 = N ∆t (2π/N) = ω1Δt
tn = n∆t ω1tn = n ω1Δt = n (2π/N) . (27.3)
Here tn = n∆t represents a sequence of sample times for x(t). We still have our same periodic pulse train as in (14.1) which we then evaluate at discrete times t = tn to get (27.5).
x(t) = !Syntax Error, I xpulse(t-mT1) . (14.1) (27.4)
x(tn) = !Syntax Error, I xpulse(tn-mT1) . (27.5)
There are N points tn per period T1. If we rewrite (27.2) evaluated at these points, taking ω1 from (27.3) and setting t = tn = n∆t , we get
x(tn) = !Syntax Error, Icm e+imn(2π/N) . (27.6)
So far we haven't really done anything except examine x(t) at some sample points.
Following an approach similar to that of Section 22, consider now the following non-equation,
cm ≠ (1/T1) !Syntax Error, I ∆t xpulse(tn) e-imωt . (27.7)
Only in the limit ∆t → 0 does (27.7) become an equality, since it then reproduces (27.1). So let's define something new called c'm that is equal to the right side of (27.7) for a specific finite Δt = T1/N :
c'm ≡ (1/T1) !Syntax Error, I ∆t xpulse(tn) e-imωt . (27.8)
Using (27.3) this becomes
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) . projection = transform (27.9)
Recall that xpulse(t) is usually taken to be a pulse which vanishes outside a range of width T1, and in this case the sum in (27.9) has only N non-vanishing terms.
In the Fourier Series world, one can have any number of unique cm coefficients. For the c'm in (27.9) this is no longer true. There are in fact only N unique values of c'm because they keep repeating. This is because (27.9) implies that
c'm+kN = c'm for any integer k (27.10)
due to the fact that e-i(kN)n(2π/N) = e-ikn(2π) = 1.
So c'm is a periodic digital sequence of period N.
We claim now (to be proven in section (b) below) that the correct expansion of pulse train x(t) to accompany projection (27.9) is the following:
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) . expansion = inverse transform (27.11)
Due to the periodicity of c'm shown in (27.10), the expansion (27.11) can also be written as
x(tn) = (27.12)
Proof of (27.12): For N even write the claimed result separating off the negative part of the series,
!Syntax Error, I c'm e+imn(2π/N) = !Syntax Error, I c'm e+imn(2π/N) + !Syntax Error, I c'm e+imn(2π/N) .
In the first term replace m by m' = m+N to get
!Syntax Error, I c'm e+imn(2π/N) = !Syntax Error, Ic'm'-N e+i(m'-N)n(2π/N) = !Syntax Error, I c'm' e+i(m')n(2π/N)
where we have used (27.10) to say c'm'-N = c'm' and e+i(-N)n(2π/N) = 1. Changing m'→m we then write the our two-term sum as
!Syntax Error, I c'm e+imn(2π/N) = !Syntax Error, I c'm e+imn(2π/N) + !Syntax Error, I c'm e+imn(2π/N) = !Syntax Error, Ic'm e+imn(2π/N) .
But this the sum in (27.11), so we have proven (27.12) for N even. The proof for odd N is similar and it is left to the reader.
We can now verify that our new transform approaches the Fourier Series Transform (27.1) and (27.2) in the limit N→∞. The first line below is the large N (small Δt) limit of (27.9), while the second line is the limit of (27.12) for even or odd N where N>>1 ( use is made of the relations in (27.3) and limN→∞ tn = limN→∞ (nΔt) = t) :
limN→∞ c'm = limN→∞ {(1/T1)!Syntax Error, I∆t xpulse(tn) e-imωt} = (1/T1)!Syntax Error, I xpulse(t) e-imωt = cm
limN→∞ x(tn) = limN→∞ { !Syntax Error, I c'm e+imωt} = !Syntax Error, I cm e+imωt = x(t) ,
This new transform pair (27.9) and (27.11) we shall call the Discrete Fourier Transform of a Pulse Train, as opposed to the Fourier Series Transform pair given in (27.1) and (27.2). We reserve the term Discrete Fourier Transform to refer to the transform of an isolated pulse. As we shall see in section (c) below, for this normal DFT, the sum in (27.9) becomes finite.
In the Discrete Fourier Transform, time is "discrete", only tn appear, and therefore we only see functions evaluated at these discrete time points,
xn ≡ x(tn)
xpulse,n ≡ xpulse(tn)
In contrast, the Fourier Series Transform has a continuous time variable t and functions xpulse(t) and pulse train x(t) appear.
Both transforms have discrete spectra as indicated by cm and c'm and this is because in both cases the pulse train is a periodic function.
Just as a reminder, with the Digital Fourier Transform we dealt with sample sequences like yn = y(tn) =
y(nT1) where T1 was the spacing between pulses composing a pulse train. In such a sequence, there is only one sample per T1 period. In contrast, with our current Discrete Fourier Transform discussion, yn = y(tn) = y(nT1/N) and there are N samples per T1 time period. In both cases one could argue that the sequence is a set of digital or discrete values, so the transform names are somewhat arbitrary.
(b) Proof of the Discrete Fourier Transform for a Simple Pulse Train x(t)
To show this transform really works, we insert (27.9) for c'm into (27.11),
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) = !Syntax Error, I[(1/N) !Syntax Error, Ixpulse(tk) e-imk(2π/N)] e+imn(2π/N)
= (1/N)!Syntax Error, Ixpulse(tk) !Syntax Error, I e+im(2π/N)(n-k) . (27.13)
We now quote an obscure identity proven in Appendix B which says
!Syntax Error, Ie+ims(2π/N) = N!Syntax Error, Iδs,mN N > 0 s = integer . (B.1)
This is a discrete version (s = integer) of (13.2) (s = real) which we quote for comparison
!Syntax Error, Ieims = !Syntax Error, I2πδ(s - 2πm) -∞ < s < ∞ (13.2)
Setting s = n-k, (B.1) says [ since δn-k,mN = δk,n-mN ]
!Syntax Error, Ie+im(2π/N)(n-k) = N !Syntax Error, Iδk,n-mN . (27.14)
Then we find that
x(tn) = (1/N)!Syntax Error, Ixpulse(tk) N !Syntax Error, Iδk,n-mN = !Syntax Error, I !Syntax Error, Ixpulse(tk) δk,n-mN
= !Syntax Error, I xpulse(tn-mN) = !Syntax Error, I xpulse(tn - mT1) . (27.15)
Since this reproduces the pulse train (27.5), we conclude that indeed (27.11) is the expansion that accompanies the projection (27.9).
At this point, we make a box to summarize the Discrete Fourier Transform of a simple pulse train:
Discrete Fourier Transform of a Simple Pulse Train (27.16)
1. Let xpulse(t) be any reasonable pulse. Construct a simple pulse train x(t) with spacing T1:
x(t) = !Syntax Error, I xpulse(t - nT1) x(t + mT1) = x(t) (27.5)
By its construction, x(t) is periodic with period T1. If x(t) is a known periodic function of
period T1, a candidate for xpulse(t) is x(t) over any one period (and zero elsewhere).
2. Break up each T1 interval into N steps of width ∆t = T1/N. Let tn = n∆t = (n/N)T1 .
3. Define the Discrete Fourier Transform coefficients c'm by this projection = transform:
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) m = integer (27.9)
Only N of these are unique because c'm is periodic in index m with period N:
c'[m+nN] = c'm n = any integer (27.10)
4. The pulse train at sample points tn is then given by this expansion = inversion:
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) (27.11) but see also (27.12)
From this last result we may confirm that x(tn + mT1) = x(tn) so x is indeed periodic.
(c) The Discrete Fourier Transform for an Arbitrary Pulse
The results of box (27.16) apply to any sampled pulse xpulse(t) . We could consider, for example, the set of xpulse(tn) functions which are non-zero only for tn = nΔt lying inside some limited temporal range indicated by A ≤ n ≤ B. For such functions (27.8) will have the form,
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) . (27.17)
The inversion formula continues to be (27.11)
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) . (27.11)
If the range (A-B)Δt > T1, the above stated transform is valid, but the pulse xpulse(tn) cannot in this case have an arbitrary shape. This is because (27.11) forces x(tn + T1) = x(tn), meaning x(t) is periodic. For example, if (A-B)Δt ≈ 1.3 T1, then the portion of xpulse(tn) in (T1, 1.3T1) must be a replication of the portion of xpulse(tn) in (0, 0.3T1). If we want a DFT pulse transform that allows for arbitrary pulse shape, we must restrict A and B so that (A-B)Δt ≤ T1. We can of course consider pulses which are restricted to (A-B)Δt < T1 to be special cases of pulses defined on (A-B)Δt = T1, where we just add zero padding to arrive at the interval T1.
Therefore we restrict A,B so that (A-B)Δt = T1 or (A-B) = T1/Δt = N.
In this way, we arrive at this special case of the transform of the box (27.16) which applies to an arbitrary pulse of width T1 (that is, a pulse having only N discrete values)
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) m = 0,1...N-1 (27.18)
// (2π/N) = ω1Δt
xpulse(tn) = !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 (27.11) (27.19)
This is the official Discrete Fourier Transform (DFT). Due to the periodicity property (27.10), the sum in (27.17) could be taken over any set of N adjacent steps, and without loss of generality we take these N steps to be 0,1,...N-1. If one were to regard the pulse as being translated to some other set of N steps like n = -3,-2,-1,0,1,... N-4, the coefficients c'm would be exactly the same apart from a simple m-dependent phase. For example, let x'pulse be the translated pulse. Then,
d'm ≡ (1/N) !Syntax Error, Ix'pulse(tn) e-imn(2π/N) = (1/N) !Syntax Error, Ixpulse(tn-3) e-imn(2π/N)
= (1/N) !Syntax Error, Ixpulse(tn') e-im(n'-3)(2π/N) // n' = n+3
= e+i3m(2π/N) { (1/N) !Syntax Error, Ixpulse(tn') e-imn(2π/N)} = e+i3m(2π/N) c'm
= e+i3(mω)Δt c'm (27.20)
This result is a reflection in the current context of the time-shift rule (12.1) which we restate here as
x(t + 3Δt) ↔ e+i3ωΔt X(ω) (12.1)
Note that c'm refers to the spectral frequency mω1.
We now summarize the DFT in a box:
Discrete Fourier Transform for an Arbitrary Pulse (27.21)
1. Let xpulse(t) be an arbitrary reasonable pulse defined for t in (0,T1).
2. Break up T1 into N steps of width ∆t = T1/N. These relationships hold
∆t = T1/N ω1 ≡ (2π/T1) = 2π/(N∆t)
T1 = N ∆t (2π/N) = ω1Δt
tn = n∆t ω1tn = n ω1Δt = n (2π/N) (27.3)
Thus, the sequence values of interest are xpulse(tn) for n = 0,1,2...N-1.
3. Define the Discrete Fourier coefficients c'm by this projection = transform:
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) m = 0,1...N-1 (27.18)
4. The accompanying expansion = inverse transform is given by
xpulse(tn) = !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 (27.19)
In the above box one could of course replace xpulse(tn) by some generic function x(tn) defined on (0,T1), and one could go further and write x(tn) as xn to get this more common statement of the DFT:
c'm ≡ (A/N) !Syntax Error, Ixn e-imn(2π/N) m = 0,1...N-1 projection = transform
xn = (1/A) !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 expansion = inverse transform (27.22)
Here we have added an arbitrary constant A to the first equation and 1/A to the second which maintains the validity of the DFT transform pair. If one takes A=N, the 1/N factor moves to the second equation. Another choice is A = to make the two equations symmetrical. The transform pair is also valid if the phase signs are switched, just as with the Fourier Integral Transform. This would be associated with a version of (B.1) having the opposite phase sign obtained by just complex conjugating (B.1).
(d) Comments on the Discrete Fourier Transform
One might wonder about the purpose of the Discrete Fourier Transform of a Pulse Train, and its relation to earlier transforms. This can be illuminated by a simple set of pictures.
First, go back to the Section 2 analysis of a making a pulse train x(t) by superposing shifted copies of pulse xpulse(t). Imagine, as in the discussion at the end of Section 14, that xpulse(t) is a Gaussian which of necessity extends beyond the domain of one period T1. Here is a picture of this pulse:
Figure 27.1. The pulse xpulse(t). Bars are distance T1 apart. Fig 27.1
If we now superpose these pulses, we get the following pulse train x(t), as was shown in Fig 14.2,
Figure 27.2. The function x(t) is the heavy curve. It is the sum of the gaussians. Fig 27.2
This picture gives us a chance to repeat a point made earlier, namely that xpulse(t) is not unique. One could use instead a portion of the heavy curve between any adjacent pair of bars.
The heavy curve is our pulse train, and we have chosen the most complicated case, that where the pulses overlap. Typically they do not overlap.
Now, the heavy curve is a periodic continuous function of time x(t), and it has in principle an infinite set of Fourier Series coefficients cm. These coefficients are really determined from the underlying pulse xpulse(t). In general, it takes an infinite number of time points to represent the smooth function xpulse(t), so there are an infinite number of coefficients cm in the "transformed space" where these coefficients live.
We know that the transform of the Gaussian xpulse(t) is a Gaussian Xpulse(ω), and we know that the Fourier coefficients are given by
cm = (1/T1) Xpulse(mω1) where ω1 = 2π/T1 .
One can visualize (see Fig 14.1) the infinite set of the cm as tracing the envelope of this gaussian Xpulse(ω). Of course it may happen that many of the cm vanish if xpulse(t) has simple harmonic content. The point is that there could be an infinite number of cm.
This infinitude matches the infinitude of real points along the pulse xpulse(t). If we consider the regular Fourier integral spectrum Xpulse(ω) in its own right, we again have an infinitude of complex numbers needed to describe the pulse in the transformed space, subject to X(-ω) = [ X(ω)]* of (7.1) which knocks down this complex double infinity to a single infinity, balancing the time side of the transform.
Having said all this, we are now ready to move from analog to digital. Consider the same pulse xpulse(t) evaluated only at the discrete points tn, so the pulse is now represented by this sequence of numbers:
xpulse(tn) tn = n ∆t
and we assume that there are N sample points in each period T1. In our figures below, N = 8, and we approximate the tail of the Gaussian with a few extra points.
Here then is a picture of the set of numbers xpulse(tn) which describe our pulse:
Figure 27.3. Pulse is now a set of 18 numbers xn(pulse) . N = 8 Fig 27.3
Now as before, build a digital pulse train by superposing pulses:
Figure 27.4. Digital pulse train represented by the fat hatched bars. Fig 27.4
In this figure, the thin dark bars are the numbers which describe the pulse. The fat hatched bars represent the sum of the thin bars -- remember that we have overlap here.
Note that the resulting sequence -- the fat bars -- form a periodic sequence, just as we had a periodic function given by the heavy curve in Figure 27.2. Note also that again we could have used an "equivalent pulse sequence" here consisting of just the set of 8 fat bars in one interval.
Thus, although our original pulse contained 18 numbers, the minimal pulse contains only 8 numbers. If we now compute the Discrete Fourier Transform coefficients cm' according to the formula in box (26.15),
c'm ≡ (1/N) !Syntax Error, I xpulse(tn) e-imn(2π/N)
we find that only 8 of the c'm are unique because of the translation rule shown in the same box. Select those with m = 0,1,2,3,4,5,6,7. We should be happy to find that it takes only 8 numbers in the transform space (where the cm' live) to represent the 8 numbers in the time domain which represented our pulse in its minimal representation -- the 8 fat bars in period T1. For this minimal pulse, there are only 8 non-vanishing terms in the above sum. Thus, the cm' are related to the eight fat bar heights by a set of numbers which form an 8x8 symmetric matrix, namely
Mmn = (1/N) e-imn(2π/N)
in terms of which we have
c'm = Σm Mmn xpulse(tn)
or
c' = M xpulse (27.18)
xpulse = M-1 c' = N M* c' (27.19)
Of the 64 matrix elements of M, only 8 are unique, and these 8 elements lie equally spaced on a circle of radius (1/N) in the complex plane.
As a possible application of the Discrete Fourier Transform (DFT), consider some sort of digital circuit that puts out a set of numbers that repeat after every N numbers. Perhaps this is what a scrambler does with a constant input. In this case, one can think of the set of N numbers as tracing the envelope of a pulse xpulse(t). The appropriate "frequency domain" transform of this repeating sequence of numbers is the DFT. In the frequency domain we get a finite set of N numbers cm' as the transform.
Just as with regular Fourier series coefficients, the DFT coefficients c'm are a measure of the frequency content of the signal. Recall that the pulse train x(t) is mapped out by:
x(tn) = !Syntax Error, I c'm e+imn(2π/N) = !Syntax Error, I c'm e+imωt ω1 = (2π/T1)
One should think of n taking lots of values and tracing out the envelope of the function x(t). Clearly, coefficient c'm is the weight of frequency component mω1. So c'0 measures the DC component, and c'1 measures the amount of frequency component ω1 and so on.
There is a limit on how high a frequency component one can have. Consider a sine wave with period ∆t = the sample spacing. It would have the same value at every sample point, and would thus show up in the DC component. The frequency corresponding to period ∆t is ωN = Nω1. This is why c'N = c'0. In a similar fashion, potential frequencies ωn with n>N are also "aliased" down into lower frequencies according to the translation rule for the c'm. Thus, the highest frequency we can really have is (N-1)ω1.
So this gives a reasonable "Fourier explanation" of why there are a finite number of distinct c'm coefficients involved in the spectral expansion above for x(tn).
We repeat one more time an important fact stressed earlier: as N (the number of sample points per T1 interval) increases, the number of DFT coefficients c'm increases as well, and these c'm becomes closer and closer to the Fourier Series coefficients cm. In the limit N → ∞, c'm = cm, and the DFT and the Fourier Series exactly align.
For finite N, the c'm differ from the cm in exactly the same way that the area under a stepwise approximated curve differs from the area under the smooth curve. This fact follows directly from the definitions of the c'm and cm.
Chapter 4: Some Practical Topics
This chapter applies the results of earlier chapters to a few simple test situations and applications. By providing some wordy discussion of seemingly mundane topics, we attempt to prop up our so-far mostly mathematical approach to Fourier analysis. It is in matters like these that one's understanding is really put to the test.
28. Do FIR filters have linear phase?
We shall show in two different ways that a FIR filter has linear phase provided it has symmetric coefficients. The first method is direct, the second more intuitive.
Method 1
We saw in (21.5) how a digital filter is represented by a set of numbers bn. Recall the Z transform projection,
B"(z) =!Syntax Error, Ibn z-n . // FIR filter
Since z lies on the unit circle, we may represent it as z = eiθ as in (24.1). Thus,
B"(eiθ) =!Syntax Error, Ibn e-inθ . // FIR filter
Assume that bn is a finite set b0, b1, b2....bN. Then,
B"(z) =!Syntax Error, Ibn z-n = b0 + b1 z-1 + b2 z-2 + ... bN-1z-(N-1) . (28.1)
Assume next that the set of bn is "symmetric" such that b0 = bN-1, b1 = bN-2 and so on.
It is not hard to obtain our conclusion using general N, but it is a lot easier to see what is
going on if we pick some sample N values.
Let N = 5. Then we have
B"(z) =!Syntax Error, Ibn z-n = b0 + b1 z-1 + b2 z-2 + b3z-3 + b4z-4
= b0 + b1 z-1 + b2 z-2 + b1z-3 + b0z-4 // assume symmetric
= z-2 (b0z2 + b1 z + b2 + b1z-1 + b0z-2)
= z-2 [b0(z2 + z-2) + b1(z +z-1) + b2] .
Now set z = eiθ and continue along,
= e-2iθ [b0(e2iθ + e-2iθ) + b1(eiθ + e-iθ) + b2]
= 2e-2iθ [b0cos(2θ) + b1cos(θ) + b2] . 2 = (N-1)/2
The phase of this filter is -2θ. If we used N = 7, a repeat of the above analysis would give
B"(z) = 2e-3iθ [b0cos(3θ) + b1cos(2θ) + b2cos(θ) + b3] 3 = (N-1)/2
with a phase of -3θ. For a general odd value of N, the z phase comes out being -i[(N-1)/2]θ .
Now consider even values of N. For N = 4 we have
B"(z) =!Syntax Error, Ibn z-n = b0 + b1 z-1 + b1 z-2 + b0z-3
= z-1.5 ( b0z1.5 + b1 z.5 + b1 z-.5 + b0z-1.5)
= z-1.5 [ b0(z1.5 + z-1.5) + b1 (z.5 + z-.5)]
= 2e-i1.5θ[ b0cos(1.5θ) + b1cos(0.5θ)] . 1.5 = (N-1)/2
For N = 6 the result would be
= 2e-i2.5θ[ b0cos(2.5θ) + b1cos(1.5θ) + b2 cos(0.5θ)] 2.5 = (N-1)/2 .
For a general even value of N, the phase comes out being -[(N-1)/2]θ which is the same as the phase for the general odd N value. Thus we have shown that, for general N, and using θ = ωΔt from (24.1),
B"(z) = 2 e-iωΔt(N-1)/2 [ real sum of cosine terms ] (28.2)
According to the definition of "filter phase" in (21.14), our filter B"(z) has
phase = + [(N-1)/2] Δt ω . (28.3)
Since this phase is linear in ω, our symmetric-coefficient digital FIR filter has "linear phase". Using the same definition of group delay used for an analog filter in (21.19), the group delay for such a linear phase digital filter is
τd = d(phase)/dω = Δt(N-1)/2 = a constant (28.4)
so we expect a symmetric FIR filter to exhibit good fidelity when it acts on an input signal.
Method 2
Consider the Fourier integral spectrum X(ω) of a real-valued pulse x(t) that is symmetrical and centered at t=0. Since x(-t) = x(t), we can fold the negative portion of the dt integration in (1.1) over to the positive side. Doing this gives x(t) times e-iωt + e+iωt = 2cos(ωt). Thus, everything is real, and X(ω) must therefore be real. We have already seen several examples of this: δ(t) gives X(ω) = 1, a square pulse gives (Aτ) sinc(ωτ/2).
If we displace the pulse to the right by some amount of time M∆t, then X(ω) is no longer real, it picks up the usual shift phase from (12.1) which here would be exp(-iωM∆t).
We now construct a digital filter O"(z) = B"(z)I"(z). The input will be a unit pulse at time 0 so in(t) = δn,0 and therefore I"(z) = 1 from (24.8) and (24.9) with m=0. The output of the filter is then O"(z) = B"(z). Consider an N=3 filter with B"(z) = a + bz-1 + az-2. This corresponds to output signal o(0) = a, o(∆t) = b and o(2∆t) = a. Since this is a symmetric pulse centered at t = Δt, we know from the previous paragraph that the spectrum of this pulse has a phase e-iΔt relative to the real spectrum of a similar pulse centered at t = 0. Next, consider an N=4 filter with coefficients a,b,b,a. The output will be sequence a,b,b,a centered at t = (3/2)Δt, so its spectral phase will be e-i(3/2)Δt relative to that of similar pulse centered at t = 0. In both cases, we see that the output pulse is centered at t = [(N-1)/2] Δt, so this must be the group delay of a symmetric filter with N coefficients. The filter phase must then be the function φ = [(N-1)/2] Δt ω, which is linear in ω, in agreement with the result of the more formal Method 1.
29. A Simple Digital Low-Pass Filter
This section describes a particular implementation of a digital low-pass filter. There is a whole world of such filters, and this design is meant only as an illustration. In Section 30 the filter described here will be used as a 4x oversampling interpolation filter for a D/A converter output design.
The ideal "brick wall" filter has this spectrum,
Fig 29.1
Recall our box-shaped pulse in the time domain (height 1, width τ) and its spectrum
x(t) = [ θ(t + τ/2) - θ(t - τ/2) ] (9.1)
X(ω) = τ sinc(ωτ/2) . (9.2)
For this x(t), (1.1) gives the X(ω) shown. If we try X(ω) = [ θ(ω + ωc) - θ(ω - ωc) ] in (1.2), we know the result will be (1/2π) * 2ωc sinc(tωc), just swapping the variables t↔ω and τ/2→ωc. We thus obtain the following brick wall filter B(ω) of Fig 29.1 and it associated time-domain pulse shape b(t),
B(ω) = [ θ(ω + ωc) - θ(ω - ωc) ] (29.1)
b(t) = (π/ωc) sinc(ωct) . // b(t) is even in t (29.2)
As mentioned in Comment (1) at the end of Section 3, since b(t) is a filter kernel, it has dimensions of inverse time and the filter spectrum (transfer function) B(ω) is dimensionless.
Recall the Convolution theorem (3.6),
o(t) = !Syntax Error, I dt' b(t-t')i(t') O(ω) = B(ω) I(ω) (3.6)
where i(t) is the input to a filter and o(t) the output. Using i(t) = δ(t), we get o(t) = b(t), so b(t) is the impulse response of the filter. [In this special situation, we are not following our Section 3 Comment (1) convention since this i(t) has dimensions of inverse time instead of being dimensionless.]
A digital filter approximating (3.6) has this form,
o(tn) = !Syntax Error, I ∆t b(tn - tm) i(tm) where tn = n ∆t . (21.4)
or
on = !Syntax Error, I ∆t bn-m im . (29.3)
If we set the input to a digital unit impulse at t = 0, i(tm) = im = δm,0, then the output is
on = ∆t bn (29.4)
so ∆t bn is the unit impulse response of the digital filter. Recalling from (3.2) the symmetry of the convolution equation (or just set m' ≡ n-m) we can write (29.3) instead as
on = !Syntax Error, I ∆t in-m bm . (29.5)
In equations (29.3) and (29.5) we think of in and on as being dimensionless, and bn as having dimensions of inverse time so ∆t bn is dimensionless. In (24.6) we used hn ≡ ∆t bn but here we stick with bn.
Example: We assume these parameters, since the resulting filter will be useful later on :
T1 = 1
ω1 = 2π/T1 = 2π
ωc = ω1/2 = π // Nyquist rate, see end of Section 20
Δt = T1/4 = 1/4 // filter will be clocked at 4x rate (29.6)
Maple computes the bm from (29.2) as follows (tiny offset added to avoid divide by zero in the hand-made sinc function)
(29.7)
The filter has symmetric coefficients b-n = bn since b(t) in (29.2) is even in t, so it will exhibit a linear phase response as discussed in Section 28. This in turn means a constant group delay as in (28.4).
We can verify the locations of these points on the sinc curve,
Fig 29.2
The digital filter implementation using (29.5) is just this equation (Δt = 1/4),
4on = !Syntax Error, I in-m bm = inb0 + !Syntax Error, I in-m bm + !Syntax Error, I in-m bm
= inb0 + !Syntax Error, I in-m bm + !Syntax Error, I in+m bm // since b-m = bm
= inb0 + !Syntax Error, I [in-m + in+m ] bm
= inb0 + [in-1 + in+1 ] b1 + [in-2 + in+2 ] b2 + .... + [in-10 + in+10 ] b1 . (29.8)
This equation is implemented in the following piece of hardware,
Fig 29.3
Notice that the registers on the top march samples left to right, while those on the bottom go right to left. The clock lines are not drawn; all registers are clocked with period Δt = T1/4 = 1/4. The registers (D flip-flops) sometimes appear as boxes containing z-1 as in Fig 24.4. If a register input is in+1 in the middle of a clock period, that register's output is the previously clocked sample in. Usually the clock is a square wave signal and the registers transfer input to output on the positive clock edges of the square wave. The circled plus signs are adders, while lines marked with an X indicate multiplication by the constant appearing next to the X. All lines indicate busses containing some number of bits used to represent the digital signals, perhaps 8, 10 or 12.
An actual design might be done a bit differently using pipelining registers to avoid the large combinatoric delay built up through the long string of adders at the bottom (if speed is an issue).
We now wish to compute the spectrum ("transfer function") of this digital filter to see how close it comes to being a "brick wall" with cutoff at ωc. Basically, we want to compute the Digital Fourier Transform spectrum associated with the finite sequence of samples bm. Recall that Δt bm is the dimensionless impulse response of the filter.
bm = (π/ωc)sinc(ωcmΔt) m = -10 to 10, else 0 21 "taps" (29.9)
We know that if we include terms from m=-∞ to m=+∞, we shall obtain for the Digital Fourier Transform spectrum B'(ω) an exact brick wall box-shaped filter with image boxes going off to the left and right. But for m limited to the range (-10,10), which makes use of 21 bm coefficients (a 21 "tap" filter), we expect to get only an approximation to Fig 29.1. From box (23.5),
B'(ω) ≡ (T1/4)!Syntax Error, Ibn e-iωnT/4 . (29.3)
Here is a plot of the central peak for a filter of 21 taps (blue) compared with one of 101 taps (red). Notice that the cutoff frequency is at ωc = π, and as usual plots are of | B'(ω) |, so the ringing on both sides of the peak is "rectified",
Fig 29.4
The 21-tap blue curve "brick wall", though not perfect, is pretty good, giving a fairly steep edge while maintaining a linear phase characteristic.
Below is the same plot with a wider range of ω (called w in the Maple code), showing the two nearest image spectra. Because we have selected Δt = T1/4 = 1/4 (4x oversampling) for this filter, the first image spectrum on the right is centered at 4ω1 = 4(2π) ≈ 25 .
Fig 29.5
In this Section we have described a particular example of a low-pass filter. One problem that is evident from the plots above is that there is ringing in the spectra, known as "the Gibbs phenomenon". This can be reduced by multiplying the filter coefficients by a symmetric Gaussian-like weighting or "window" function. There are many proposed window functions associated with names Bartlett, Hann, Kaiser, Hamming, Blackman, etc.
30. Use of Oversampling in a D/A Converter Design
Here we discuss the design of an output circuit which contains a D/A converter. We are not concerned with the internal design of the actual D/A converter "chip" itself.
(a) A very simple D/A converter
Consider the following finite-length digital signal, which we assume has time spacing T1,
yn (n=-5..5) = { 1,2,3,3,2,1,1/5,-1,-2,-2,-1}
Fig 30.1
All samples other than those shown are 0.
Using an arbitrary pulse shape xpulse(t), we can construct an amplitude-modulated pulse train x(t) whose spectrum is X(ω), as shown in summary box (25.4),
x(t) = !Syntax Error, I yn xpulse(t -tn) tn = n T1 yn = y(tn) (30.1)
X(ω) = (1/T1)Xpulse(ω) Y'(ω) , (30.2)
where from summary box (23.5),
Y'(ω) ≡ T1!Syntax Error, Iyn e-iωnT . // Y"(z) = Y'(ω)/T1 (30.3)
If we were to select xpulse(t) to be a box of height 1 and width T1, then we could regard the stair-step outline function shown in Fig 30.1 as a candidate analog signal y(t) whose samples are the yn. In this special case, y(t) = x(t) so Y(ω) = X(ω). From (9.2) and (12.1) we have
Xpulse(ω) = Xbox(ω,T1) = e-iωT/2 T1 sinc(ωT1/2) (30.4)
where the phase arises since the box (0,T1) = (0,1) is shifted T1/2 to the right of the position of the symmetric box used in Section 9. Then using (30.2),
Y(ω) = X(ω) = e-iωT/2 sinc(ωT1/2) Y'(ω) = e-iωT/2 sinc(ωT1/2) T1!Syntax Error, Iyn e-iωnT . (30.5)
Y(ω) is the Fourier Integral Transform spectrum of the stair-step analog signal in Fig 30.1. Here are plots first of |Y'(ω)| from (30.3) using Fig 30.1 data, and second (red) of |Y(ω)| using (30.5).
|Y'(ω)| Fig 30.2
|Y(ω)| Fig 30.3
We see the expected image spectra in Y'(ω) in the first plot, but these spectra are quite suppressed in the second plot due to the taming effect of the sinc function zeros in (30.5), as shown in blue.
The above discussion describes the output of the following simple n-bit D/A converter design.
Fig 30.4
The purpose of the register on the left is to provide a stable signal on bus B to the D/A converter. We assume that the D/A converter is "glitch free" on its output, and just does what it should do.
(b) Oversampling just the D/A converter
We now trivially modify the above design by changing the D/A clock from clk1x to clk4x which runs 4X faster than clk1x,
Fig 30.5
The D/A converter is now "4x oversampling" the data on the B bus. Besides making the D/A converter work harder, it seems clear that the output signal x(t) will be exactly the same as shown in Fig 30.1. Thus the plots of | Y'(ω) | and | Y(ω) | = | X(ω) | shown above apply to this design as well as that of Fig 30.4.
It is useful, nevertheless, to think of the output of the oversampled design as follows, where the nonvanishing yn amplitudes are numbered n = -20 to + 23,
Fig 30.6
Now the output rectangles are 1/4 as wide because the D/A is clocking 4X faster. The analog outline is the same, but our analysis will be different. We shall now compute X(ω) in terms of the thin rectangles of Fig 30.6. Looking at the four y0 = 1 samples to the right of the vertical axis, those four boxes will make this contribution to the spectrum
X(ω) = Xbox(ωT1/4) [... + y0 + y0 e-iω(T/4) + y0 e-2iω(T/4) + y0 e-3iω(T/4) + .... ] (30.6)
Each thin box has a phase e-iω(T/4) relative to the box to its left due to (12.1). Since the pulse is 4x narrower than before, Xbox(ωT1/4) is given by (30.4) with T1→T1/4.
We can write the square bracket in (30.6) as
[ 1 + e-iω(T/4) + e-2iω(T/4) + e-3iω(T/4) ] y0 ≡ F(ω) y0 . (30.7)
Every group of four terms will have this same common factor F(ω), so we can factor it out of the entire sum. The sum now looks like this:
X(ω) = Xpulse(ω,T1/4) F(ω) { ..... y0 + y1 e-4iω(T/4) + y2 e-8iω(T/4) + ..... } . (30.8)
But now the expression in curly brackets is exactly Y'(ω)/T1 of (30.3), our original Digital Fourier Transform spectrum of y(t). Thus we conclude that
X(ω) = (1/T1) Xpulse(ω,T1/4) F(ω) Y'(ω)
= [ e-iωT/8 (1/4) sinc(ωT1/8) ] F(ω) Y'(ω) . (30.9)
So this is X(ω) as computed in terms of the thin boxes of Fig 30.6. But we already argued that oversampling the D/A does not change the analog output signal x(t) or its spectrum X(ω), so somehow the expressions in (30.9) and (30.5) must be the same. This can only be true if
e-iωT/2 sinc(ωT1/2) = [ e-iωT/8(1/4) sinc(ωT1/8) ] F(ω) ?
or, writing out the sinc functions,
e-iωT/2 sin(ωT1/2)(2/ωT1) = [ e-iωT/8(1/4) sin(ωT1/8) (8/ωT1) ] F(ω) ?
or
e-iωT/2 sin(ωT1/2) = [ e-iωT/8 sin(ωT1/8) ] F(ω) ?
To verify this fact, we define z ≡ e-iωT/4 ( variable for the Z transform). The above then reads
z2 (z-2-z2) = [z1/2 (z-1/2 - z1/2) ] [ 1 + z + z2 + z3 ] ?
or
(1-z4) = (1 - z)( 1 + z + z2 + z3) ?
But this is a standard factorization so we find that X(ω) is indeed the same either way we compute it. For some other oversampling factor like 6x or 8x, the verification is similar. We have just shown that
Xbox(ω,T1) = F(ω) Xbox(ω,T1/4)
which we can think of as saying the product of two filters on the right gives the one on the left.
(c) Add zero-stuffing to reduce aperture
We now add a multiplexor to our previous D/A converter design which causes the first sample in each group of four samples to pass through, but "grounds" the last three samples:
Fig 30.7
The output of this design is the following analog signal with pulse amplitudes yn ( where n = -20 to +23 as before, but three of every four samples in the region of interest are zero),
Fig 30.8
Due to the zero stuffing, we have in effect reduced the aperture of the signal from 100% to 25%. We saw in Section 26 how this broadens the sinc function envelope (narrower box broader sinc) which in turn reduces the sinc distortion of the main spectrum. That same effect appears below.
Versions of equations (30.1,2,3,4) which apply to Figure 30.8 are (xpulse is now the thin box)
x(t) = !Syntax Error, I yn xpulse(t -tn) tn = n (T1/4) yn = y(tn) (30.1)
X(ω) = (4/T1)Xpulse(ω) Y'(ω) , (30.2)
Y'(ω) ≡ (T1/4)!Syntax Error, Iyn e-iωnT/4 . (30.3)
Xpulse(ω) = Xbox(ω,T1/4) = e-iωT/8 (T1/4) sinc(ωT1/8) . (30.4)
Combining the pieces gives,
X(ω) = e-iωT/8 sinc(ωT1/8) [ (T1/4) !Syntax Error, Iyn e-iωnT/4 ]
= e-iωT/8 sinc(ωT1/8) [Y'(ω)]
The plot of |Y'(ω)| is the same as shown in Fig 30.2 but with 1/4 the amplitude ( the amplitudes yn shown in Fig 30.8 are stored in array yz[n] as will be shown later),
Fig 30.9
and the X(ω) plot is this,
Fig 30.10
The good news is that the blue sinc distortion is smoother near the central main spectrum (compare to Fig 30.3). The bad news is that there are lots of high-amplitude image spectra the must be dealt with.
(d) Add an ω1/2 digital low-pass interpolation filter
The new D/A design is this,
Fig 30.11
where B'(ω) is the transfer function of a low-pass filter which is clocked at the faster clk4x rate. We add low-cost registers at each stage in the pipeline to provide a stable input to the next stage.
In Section 29 we constructed an approximate brick-wall filter with this spectrum B'(ω),
Fig 30.12
The output spectrum of the Fig 30.11 design which includes this filter is then
Xnew(ω) = B(ω) X(ω) ,
where X(ω) was plotted in red in Fig 30.10. Here then is a plot of Xnew(ω) :
Fig 30.13
The effect of the digital filter is to remove the image spectra from Fig 30.10, a process sometimes called alias-rejection. Since this low-pass filter is not a perfect brick wall, there is some small distortion of the central spectrum. On the other hand, the aperture reduction due to oversampling with zero-stuffing has broadened the sinc hump perhaps alleviating the need for a sin(x)/x post-filter (Section 26). Residual high frequency data in the signal can be removed by a low-cost analog filter located to the right of the D/A converter in Fig 30.11.
Since we never specified the original signal y(t) for which Fig 30.1 is the sampled version, it is difficult to compare the spectrum of that y(t) with the output of the Fig 30.11 design. Nevertheless, plotting the time-domain output of the Figure 30.11 design is quite interesting.
It was noted that the thin bar amplitudes shown in Fig 30.8 (3/4 of which are 0) are stored in array yz[n]. Here is how that array is computed from the original amplitudes y[n] of Fig 30.1:
In terms of these yz amplitudes, the convolution sum in (29.5) which defines the action of our intepolation filter appears as
(yout)n = (1/4) !Syntax Error, I (yz)n-m bm (29.5)
where (yout)n is the output of the filter which becomes, after two 4x clock delays, the output of the design of Fig 30.11.
Notice that the aperture duty cycle of 25% reduces the amplitude of the the filter output by 1/4, and there will be a corresponding reduction in the time-domain filter output signal. As aperture goes to 0, the entire signal eventually goes away. This fact, glossed over in Section 29, is one cost of using a small aperture. For comparison purposes, we shall omit the 1/4 factor in the following code which computes
(yout)n for our 21 tap filter,
Here is a plot of the output sample values yout[n],
Fig 30.14
Since the D/A converter holds each sample for duration T1/4, the actual analog output will have the following form, which we obtain using our ancient Maple V's primitive histogram routine (which we have been painfully using to make all the bar plots above),
Fig 30.15
This may be compared with our starting digital signal of Fig 30.1,
Fig 30.1
The output Fig 30.15 seems a little "ratty". If we increase the filter from 21 taps to 41 taps, things improve significantly, though there is still some ringing before and after the output pulse of interest (recall the comment about Gibbs phenomena at the end of Section 29).
Fig 30.16
In the literature of oversampling, our oversampled digital low-pass filter is usually referred to as a digital interpolation filter, for obvious reasons comparing Fig 30.1 and Fig 30.16. In this application, since 3 out of every 4 incoming samples are zero from the zero-stuffing logic, it is possible to implement the filter more efficiently that we show in Fig 29.3 using polyphase techniques.
Chapter 5: Some Theoretical Topics
In this chapter we wander off on a more theoretical topic before returning in Chapter 6 to the practical computation of the power spectra of specific pulse train line codes. The material in this chapter is not used in that computation and the uninterested reader would do well to skip Section 31.
31. Spectral Dispersion Relations
(a) A simple integral equation for X(ω) analytic in the upper half plane
Let X(ω) be some arbitrary function of the complex variable ω which has two properties: (1) X(ω) is analytic in the upper half ω plane; (2) On any ray to ∞ in this upper half plane, X(ω) → X(∞), a constant which could be 0. Later we shall consider the case where "upper" ↔ "lower".
Consider then the following vanishing contour integral, where ω is real,
∫C dω' = 0 . (31.1)
Here, C is a counterclockwise contour which goes around the upper half ω' plane, but which detours infinitesimally around and above the pole at ω' = ω. The integral vanishes as usual since we can shrink the contour away to nothing.
Fig 31.1
We can regard this integral as being made of three pieces:
(1) infinite semicircle. The contribution here is, using ω' = Reiθ and thinking R→ ∞,
∫SC dω' = !Syntax Error, I (Reiθidθ) ≈ i !Syntax Error, Idθ X(Reiθ) = X(∞) iπ
(2) tiny semicircular detour around the pole at ω = ω'. This gives minus one half the pole residue since the path goes half way around this pole the wrong way, so the contribution is – iπ X(ω) (see Appendix C text below Fig C.1, the partial residue rule).
(3) the two pieces (-∞,ω-ε) and (ω+ε,+∞) along the real ω' axis as ε→0. This is basically the integral along the real axis but missing the single point ω = ω'. As noted in Appendix C, this is called a Cauchy principle part (principle value) integral, and sometimes people (including us) denote it with a little tick mark through the integral, , while others use the notation P∫ or p.v.∫. The principle part integral is a limit just as are the previous two pieces of the contour C.
Thus, we can rewrite (31.1) as follows:
X(∞) iπ – iπ X(ω) + dω' = 0
or
X(ω) = X(∞) + (1/iπ) dω' (31.2)
where X(ω) is analytic in the upper half plane and in this half plane on any ray X(ω) → X(∞)
This is an integral equation for X(ω) which involves a principle value integral of X(ω).
(b) A simple integral equation for X(ω) analytic in the lower half plane
We now repeat the previous section with upper → lower.
Let X(ω) be some arbitrary function of the complex variable ω which has two properties: (1) X(ω) is analytic in the lower half ω plane; (2) On any ray to ∞ in this lower half plane, X(ω) → X(∞), a constant which could be 0.
The new contour of interest is this
Fig 31.2
The differences now are that the great circle contour is now clockwise instead of counterclockwise, and that the little detour contour now goes "the right way" around the pole at ω' = ω. As a result, the contributions from both these terms get negated, but the principle part integral is unchanged. Equation (31.1) is as before but C is now this new contour
∫C dω' = 0 . (31.1)'
so that
–X(∞) iπ + iπ X(ω) + dω' = 0
or
X(ω) = X(∞) – (1/iπ) dω' (31.3)
X(ω) is analytic in the lower half plane and in this half plane on any ray X(ω) → X(∞)
Comparing to (31.2) one sees that the only difference is the sign of the integral. One way to understand this result is to think of reflecting the ω plane through the real axis, so that the imaginary axis is reflected and this is accounted for by taking i → - i in (31.2) to get (31.3). If we now define σ by
σ ≡ (31.4)
We can combine our two results as follows :
X(ω) = X(∞) + σ (1/iπ) dω' . (31.5)
With our adopted phase sign convention e-iωt in the Fourier Integral Transform (1.1), we normally obtain spectral functions X(ω) which are analytic in the lower half plane and so σ = -1. For other sources (such as Stakgold) which use the reverse sign e+iωt of the Fourier transform phase, one would use σ = + 1.
Example
We considered an RC filter in Section 4 (b) and found there the following transfer function,
G(ω) = = = . τ ≡ RC (31.6)
This function has a pole in the upper half plane at ω = i/RC and is analytic in the lower half plane with a ray limit there G(ω) → 0. For this function, (31.3) or (31.5) with σ = -1 claims that
G(ω) = – (1/iπ) dω' (31.7)
or
= – (1/iπ) dω' = – (1/iπ)(-i/τ) dω'
= (1/πτ) dω" = (1/πτ) dx a ≡ ω-i/τ, τ = RC .
As a principle value integral exercise, we now evaluate the integral shown to verify that it really comes out being G(ω) :
dx = limε→0 [!Syntax Error, I + !Syntax Error, I]
= (1/a) limε→0 { ln()|-ε-∞ + ln()|∞ε ]
= (1/a) limε→0 { ln() – ln(1) + ln(1) – ln() } = (1/a) limε→0 { ln() – ln() }
= (1/a) limε→0 { ln()} = (1/a) limε→0 { ln()} = (1/a) limε→0 { ln(- 1-iε') }
= (1/a) limε→0 { ln(e-iπ) } = (1/a) (-iπ) .
The term -iε' represents the fact that the log argument has a small negative imaginary part, which takes a bit of work to show:
= – = = .
We have then shown that the right side of (31.7) evaluates to the left side,
– (1/iπ) dω' = (1/πτ) dx = (1/πτ) (1/a) (-iπ) = - = = G(ω) .
(c) Dispersion Relations for X(ω)
Notice in (31.5) the very important factor of (1/i). If we now break X(ω) into its real and imaginary parts and then write down the real and imaginary parts of equation (31.5), we find that Re(X) and Im(X) are related to each other by the following two equations:
Re[X(ω)] = Re[X(∞)] + σ(1/π) dω' (31.8a)
Im[X(ω)] = Im[X(∞)] – σ(1/π) dω' . (31.8b)
Basically, this says that the real part of X(ω) along the real axis completely determines the imaginary part, and vice versa. One cannot arbitrarily set the real and imaginary parts independently. This is a general fact about analytic functions X(ω).
Next, let us assume in addition that X(ω) is the spectrum of a real function x(t). As we saw in Section 7, this implies the reflection rule X(ω) = X(ω)*, which says X(ω) is Hermitian. Thus, we can fold the negative portions of the above integrations over to the positive side. First (we omit principle value tick marks just for a while),
!Syntax Error, I dω' = !Syntax Error, I[-dω"] = !Syntax Error, I[-dω"]
= !Syntax Error, I[-dω"] = !Syntax Error, I[dω"] =!Syntax Error, Idω"
and therefore
!Syntax Error, I dω' = !Syntax Error, Idω' + !Syntax Error, Idω'
= !Syntax Error, Idω' Im(X(ω')] [ + ] = 2 !Syntax Error, Idω' .
The other integral can be folded in a similar manner,
!Syntax Error, I dω' = .... = – !Syntax Error, Idω'
!Syntax Error, I dω' = !Syntax Error, Idω' Re(X(ω')] [- + ] = 2ω!Syntax Error, Idω'
We then rewrite (31.5) as , valid for X(ω) = X(ω)* (tick marks restored),
Re[X(ω)] = Re[X(∞)] + σ (2/π) dω'ω' (31.9a)
Im[X(ω)] = Im[X(∞)] – σ(2/π) dω' . (31.9b)
These two equations are completely general, given the assumptions we have made. They are associated with the names Kramers and Kronig who wrote similar equations in 1926 for certain functions connected with the index of refraction and the dispersion of light (hence "dispersion relations").
(d) Dispersion Relations for γ(ω)
In filter theory, one thinks of X(ω) as the "transfer function" of a filter. It is usually easier to think in terms of the function γ(ω) which we define as
γ(ω) ≡ - ln [X(ω)] = α(ω) + i β(ω) . (31.10)
Then we get
X(ω) = e-γ(ω) = e-α(ω) e-iβ(ω) . (31.11)
Notice that we defined γ(ω) with a minus sign, so both exponents have minus signs. The real quantities αω and βωare the attenuation and phase functions of the filter.
Can we apply the dispersion relations to the function γ(ω) instead of X(ω) ? Yes, provided γ(ω) meets the same requirements assumed for X(ω). If X(ω) has a pole in the upper half ω plane, as in (31.6), then γ(ω) has a branch cut singularity in the upper half plane starting at the pole and going off to the left. No problem since γ(ω) is still analytic in the lower half plane. However, consider:
γω) ≡ - ln [X(ω)] = + ln[ 1/X(ω)] .
This says that a zero in X(ω) is just as bad as a pole from γ(ω)'s point of view. A zero of X(ω) in the lower half plane means γω) has a branch cut in the lower half plane starting at this zero location and going off to the left, and this invalidates our conditions (σ = -1).
Thus, we must now assume that X(ω) has neither zeros nor poles in the lower half plane, which maps into the Z Transform H"(z) having neither zeros nor poles outside the unit circle in Fig 24.1. A filter satisfying this condition is called a minimum phase filter.
Since we have assumed X(ω) goes to X(∞) on the great circle at infinity, we know that γ(ω) goes to γ(∞) = -ln[ X(∞)], so no extra assumption is needed here. If X(∞) = 0, then γ(∞) = -∞, which is a little inconvenient. It just says that the attenuation of our filter is infinite as ω → ∞.
So now we can write the dispersion relations analogous to (31.8) for γ(ω) instead of X(ω), assuming now that X(ω) has neither poles nor zeros in the lower half ω plane. We must choose σ = -1 in (31.4), and note that Re[γ(ω)] = α(ω) and Im[γ(ω)] = β(ω) :
α(ω) = α(∞) + σ (1/π) dω' (31.12a)
β(ω) = β(∞) – σ (1/π) dω' (31.12b)
Now if x(t) is real so that X(ω) = X(-ω)* , we find that γ(ω) is also Hermitian since X(ω) = e-γ(ω) :
X(-ω) = X(ω)* γ(-ω) = γ(ω)* (31.13)
α(-ω) = α(ω) and β(-ω) = - β(ω)
Since γ(ω) is Hermitian, we can process (31.12) just as we did processed (31.8) to get
α(ω) = α(∞) + σ (2/π) dω'ω' (31.14a)
β(ω) = β(∞) – σ (2/π) ω dω' (31.14b)
The main point of the above is that the phase of a minimum phase filter is completely determined by its attenuation, and vice versa. Even for general filters there will be some relation like the above, but it will include terms to describe the zeros of X(ω) in the lower half plane. The conclusion that the phase and attenuation cannot be independently set is unavoidable.
(e) Dispersion and Attenuation
We showed in (21.19) that the group delay of a filter is given by
τd = dφ/dω where B(ω) = |B(ω)| e-iφ(ω) .
Translating that into our current context, we get
τ(ω) = dβ(ω)/dω where X(ω) = e-γ(ω) = e-α(ω) e-iβ(ω) . (31.15)
If we define the integral appearing in (31.14b) as K(ω), including the (2/π),
K(ω) ≡ (2/π) dω' (31.16)
then we find that
τ(ω) = dβ(ω)/dω = d [ ω K(ω) ] /dω .
If the integral K(ω) were somehow a constant κ, we would conclude that τ(ω) = κ, and the filter would be "non-dispersive". As discussed in Section 21 (b), this means the filter is "linear phase" and the group delay is a constant independent of ω. All frequency components of a pulse packet would then traverse the filter in the same time, so the pulse does not spread out (disperse) in time.
Obviously K(ω) cannot really be independent of ω, so a non-dispersive minimum phase filter does not exist. However, over certain ranges of ω where K(ω) is very slowly varying, such a filter can be reasonably non-dispersive. This would be a region of ω far away from any region where the attenuation α(ω) strongly varies.
Crude Proof: Suppose α(ω) is very smoothly varying near some ω. In the integral (31.16) for K(ω) near ω we expect the main contribution to come from ω' close to ω, (ω-a,ω+a) for small a, since the denominator is 0 and therefore amplifies the numerator there. The denominator is roughly 2ω(ω'- ω) which is a pole. If we assume that α(ω) has some linear form α(ω') ≈ α(ω) + (ω-ω')α'(ω) near ω, then this integration region which would normally be highly amplifying in fact yields the following,
K(ω) ≡ (2/π) !Syntax Error, I dω' ≈ (2/π) !Syntax Error, I dω'
≈ (2/π) α(ω) { !Syntax Error, I } + (2/π) α'(ω) { !Syntax Error, I }
= (2/π) α(ω) { 0 } + (2/π) α'(ω) 2a ≈ (2a/π) ≈ 0 since α'(ω) is small
The rest of the integration region which is far from ω yields a contribution to K(ω) which is weakly dependent on ω and which we can regard as roughly constant K(ω) ≈ κ for some band Δω. We then get our desired approximate linear phase and constant group delay, and therefore very small dispersion,
τ(ω) = dβ/dω = d [ ω K(ω) ] /dω ≈ d [ ω κ ] /dω = κ .
However, if α(ω) varies significantly near ω, our linear term with α'(ω) might be large and there will likely be additional higher terms in the Taylor expansion of α(ω) so K(ω) might then vary strongly with ω due to the integration contribution from region (ω-a,ω+a). In this case, we get non-linear phase and dispersion.
To repeat the claim above: For ω far from regions where attenuation α(ω) significantly varies, we expect K(ω) to be roughly constant and so we have nearly linear phase, nearly constant group velocity, and small dispersion.
Attenuation and dispersion are intertwined. You can't have one without the other. This is a general fact one learns from the dispersion relations, without any specific filter in mind.
(f) Application to coaxial cable
Consider an infinitely long coaxial cable driven at its left end at z = 0. A coaxial cable acts as a filter G(ω). In the frequency domain, if we drive the cable with I(ω), the output O(ω,z) at z is
O(ω, z) = G(ω, z) I(ω) G(ω) = e-γ(ω)z γ(ω) = α(ω) + iβ(ω) . (31.17)
For a coaxial cable one has
γ = (31.18)
where R,L,G and C are resistance, inductance, conductance (across the dielectric) and capacitance all per unit length of the cable. If we ignore ohmic losses in both the conductor and the dielectric, then R = G = 0 and we get
γ = iω.
The inductance L is generally independent of ω, but C = ε(ω)2πε0/ln(b/a) = k1 ε(ω), where ε(ω) is the dielectric "constant", which in general is not constant as a function of ω. Thus we have
γ(ω) = iω.
From Maxwell's equations one knows that the index of refraction of a medium is given by
n(ω) = = /k2 .
So we then have,
γ(ω) = iωk2 n(ω) = iωk3 n(ω)
= iωk3[ Re(n) + i Im(n) ] = - ωk3Im(n) + iωk3Re(n) = α(ω) + iβ(ω)
so
α(ω) = -ωk3Im[n(ω)] β(ω) = ωk3Re[n(ω)] .
If it were true that Re[n(ω)] were independent of ω, then β(ω) would have linear phase and we would then have constant group delay and no dispersion in the coaxial cable.
It turns out that the index n(ω) has the right properties for the dispersion relations (31.8) to be valid, so
Re[n(ω)] = Re[n(∞)] + σ(1/π) dω' (31.19a)
Im[n(ω)] = Im[n(∞)] – σ(1/π) dω' (31.19b)
where usually Re[n(∞)] = 1 and Im[n(∞)] = 0. If it happened that Im[n(ω)] were very small, then (31.19a) says that Re[n(ω)] = Re[n(∞)] = constant, just what we want to get no cable dispersion.
In a non-polar dielectric, like polyethylene or teflon, n(ω) does in fact have a very small imaginary part for frequencies below the electromagnetic resonances of the medium. Thus, if we could ignore ohmic losses in the conductors, coaxial cables using these materials as dielectrics would be non-dispersive up to infrared frequencies -- where vibrational and rotational resonances set in.
Dispersion relations are often written for other functions such as the dielectric constant ε(ω). In this case one can regard the relationship between electric displacement D and electric field E
D(ω) = e(ω) E(ω) (31.20)
as a "filter", where everything is evaluated at the same point in space.
(g) The Dispersion Relation expressed in terms of the Hilbert Transform
Recall the integral equation which is the starting point for the dispersion relation discussion above,
X(ω) = X(∞) + i σ (1/π) dω' (31.5)
σ ≡ (31.4)
where we have introduced some offsetting minus signs. The integral appearing here is in fact another transform in our growing cornucopia of transforms, this one being the Hilbert Transform,
Xh(ω) ≡ (1/π) dω' . // projection = transform (31.21)
Thus, it happens that the dispersion relation (31.5) can be written
X(ω) = X(∞) + i σ Xh(ω) . (31.22)
If X(∞) = 0 and σ = +1, any solution to the dispersion relation (31.5) must be a function X(ω) which is equal to its own Hilbert transform times iσ. In Appendix C we find that (with β = 1)
X(ω) = eiω Xh(ω) = -i eiω . (C.43)
This X(ω) is then a particular solution to the dispersion relation since i Xh(ω) = eiω = X(ω) and in the upper half plane X(∞) ~ ei(+i∞) = e-∞ = 0. In (31.7) we found another solution for the case σ = -1 where X(∞) = 0 in the lower half plane.
The general study of the integral equation (31.5)
X(ω) = X(∞) + σ (1/iπ) dω' X(ω') (31.5)
and its possible solutions is complicated because the kernel 1/(ω'-ω) (called in this case a Cauchy kernel) is singular (it blows up when ω = ω'). See for example Polyanin and Manzhirov Chapter 15. It is more useful to think of the dispersion relation as an integral condition which a spectrum X(ω) must satisfy rather than an integral equation which completely determines that spectrum.
Chapter 6: Power in Pulse Trains
32. The Autocorrelation Function
Here we deal with some preliminary matters before studying the power spectra of pulse trains.
Start with a reasonable function x(t). Define the autocorrelation function of x(t) as follows:
rx(t) ≡ !Syntax Error, I dt' x(t') x(t' + t) . (32.1)
The integrand is the function evaluated at time t' times the same function evaluated at later time t'+t. Some sources define rx(t) with an extra overall "normalizing" constant factor. For example, if one were to define ax(t) ≡ rx(t)/ T where T is the duration of a pulse train, then ax(t) and rx(t) have different dimensions. Below we show that our rx(t) has dimensions of energy, so ax(t) would have dimensions of power. We prefer defining autocorrelation as shown in (32.1) with no normalizing constant.
A simple reflection property follows from the above definition (use t" = t' + t ):
rx(-t) = rx(t) . (32.2)
Since rx(t) is an even function of t, in (32.1) we could put either +t or -t in the last parentheses.
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, one 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, we can see that the result is not zero if t = 0, since we 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) ] . (9.1)
One can easily do the above integral (32.1) to get the answer, but it is very obvious what the answer is. We 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 tis 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) A2(τ - |t|) θ(τ - |t|) = (A2τ) [ 1 - |t|/τ ] θ(τ - |t|) (32.3)
and we find that the autocorrelation function is a triangle whose base is twice the pulse width,
Fig 32.1
(b) Energy, power and spectral energy density for a finite signal x(t)
The total energy in a finite duration signal x(t) can be computed in either the t-domain or the ω-domain using Parseval's formula (10.5), to which we add 1/R to each side,
E = !Syntax Error, Idt |x(t)|2/R = !Syntax Error, Idω . (32.4)
If we think of x(t) as the voltage across a resistor R, then dt x2(t)/R is the energy delivered to the resistor in time dt, and the integral on the left is the total energy in signal x(t). The dimensions on the right are, looking at (1.1),
dω = sec-1 (volt-sec)2/ohms = (volt2/ohms)sec = watts-sec = joules = energy . (32.5)
Setting R = 1Ω, we can write this as
E = !Syntax Error, Idt p(t) = !Syntax Error, Idω E(ω) (32.6)
p(t) ≡ |x(t)|2 = energy density in the t-domain (joule/sec = watt)
p(t)dt = energy in dt (joules)
E(ω) ≡ |X(ω)|2/2π = energy density in the ω-domain (joule-sec)
E(ω)dω = energy in dω (joules)
We shall refer to E(ω) as the spectral energy density of signal x(t) whose Fourier Transform is X(ω). The isolated single pulse xpulse(t) has a corresponding Epulse(ω). The function p(t) is the temporal energy density.
(c) The Wiener-Khintchine theorem
Changing to t" = -t', we can trivially rewrite the definition (32.1) as follows:
rx(t) !Syntax Error, Idt"x(t - t") x(-t") . // energy units (32.7)
From now on, we assume x(t) is a real valued function. Recall now the convolution theorem (3.6),
a(t) = !Syntax Error, I dt" b(t-t") c(t") A(ω) = B(ω) C(ω) . (3.6)
We see that (32.7) has the standard convolution equation form where we select
b(t) = x(t) ↔ B(ω) = X(ω)
c(t) = x(-t) ↔ C(ω) = X(ω) = X(ω)* // from (7.1) and (7.2)
Thus, the diagonalized frequency domain form A(ω) = B(ω) C(ω) is
Rx(ω) = |X(ω)|2 . (32.8)
Dividing by 2π we find that
E(ω) = (1/2π) Rx(ω) . (32.9)
This says that the spectral energy density E(ω) of signal x(t) is 1/2π times the Fourier Integral Transform Rx(ω) of the autocorrelation function rx(t) of the signal x(t). This result is sometimes called the Wiener-Khintchine [Khintchin] theorem.
Note also from (32.1) that rx(t) evaluated at t = 0 gives the total energy in signal x(t),
rx(0) = !Syntax Error, Idt x2(t) ≡ E = total energy in signal x(t) (32.10)
For us, the significance of (32.9) is that we can "inject statistics" into a computation of the autocorrelation function, and then we will know the power spectrum of our statistical signal from (32.9). All we have to do is Fourier transform the autocorrelation function rx(t). Examples will follow.
(d) Verification of Wiener-Khintchine for a Square Pulse
Equation (32.3) gives the autocorrelation function rx(t) for a square pulse. One can insert this into the Fourier transform (1.1) to compute Rx(ω),
Rx(ω) = !Syntax Error, I dt (A2τ) [ 1 - | t | / τ ] e-iωt = 2(A2τ) !Syntax Error, Idt (1-t/τ) cos(ωt)
= 2(A2τ) (1-cos(ωτ))/(ω2τ) = 4(A2τ) sin2(ωτ/2)/(ω2τ) = (A2τ2) sin2(ωτ/2)/(ωτ/2)2
= (Aτ)2 [ sinc(ωτ/2) ]2 , (32.11)
and this is recognized from (9.2) to be |X(ω)|2 for the square pulse, in agreement with (32.8) .
(e) Cross-correlation, convolution, and autocorrelation
Notation: a* means complex conjugation, b ∗ c means convolution, b ⋆ c means cross-correlation .
The cross-correlation of two functions b and c is defined this way
(b⋆c)(t) ≡ !Syntax Error, I dt' b*(t')c(t+t') = (c⋆b)*(-t) (32.12)
where the right equality is easy to show setting t+t' = t". So in general, b⋆c ≠ c⋆b .
In Section 7 we noted that a function is Hermitian if f*(-t) = f(t).
Fact: If b and c are both Hermitian, then b⋆c = c⋆b. (32.13)
Proof: b⋆c = !Syntax Error, I dt' b*(t')c(t+t') = !Syntax Error, I dt' b(-t')c*(-t-t') = !Syntax Error, I dt' b(t"+t)c*(t") = c⋆b
If b and c are both real and both even, they are both Hermitian so again, b⋆c = c⋆b .
The convolution of two functions b and c we saw from the (3.1) and (3.2) was this
(b∗c)(t) = !Syntax Error, I dt' b(t')c(t-t') = (c∗b)(t) .
In order to relate these two operations, we need to show more detail in the notation. Thus, using t" = -t',
[b(t)⋆c(t)](t) = !Syntax Error, I dt' b*(t')c(t+t') = !Syntax Error, I dt" b*(-t")c(t-t") = [b*(-t) ∗ c(t)](t) .
If b(t) is a Hermitian function so b*(-t) = b(t), then we have shown that :
Fact: If b is Hermitian, then b⋆c = b∗c. (32.14)
If b = c = real, then we have from (32.1) and (32.2),
rb(t) = !Syntax Error, I dt' b(t')b(t'+t) = !Syntax Error, I dt' b(t')b(t'-t)
so we have just proven this fact :
Fact: If b is real, then rb = b⋆b = b∗b. (32.15)
Thus, for a real function b, the autocorrelation function is the cross-correlation function of b with itself. This then gives some motivation for the name associated with rb. The autocorrelation function is also the convolution of b with itself.
33. Spectral power density of a Simple Pulse Train
In subsections (a) through (d) we deal only with simple pulse trains. Along the way, certain facts are developed which apply to general as well as simple pulse trains. In subsection (e) we gather together these general facts, and then show how quantities of interest can be related to the autocorrelation function.
Comment: Some texts use the phrase "power spectral density" (PSD). Although this wins on Google by a ratio of 3 to 1, we still prefer the phrase "spectral power density", and the same for "spectral energy density".
(a) Infinite Simple Pulse Train
This is the first section in which we use the δ(0) notation of Appendix A which may make the reader feel a bit uncomfortable. In subsection (b) we shall repeat everything for a finite pulse train and then take the limit N→∞ to obtain the same results without using δ(0). In both sections we shall include the Z Transform in passing, but our main work is in the ω variable, not the z variable.
From Section 14 (a) we know the spectrum of an infinite pulse train formed from pulses xpulse(t) separated by time T1 ,
x(t) = !Syntax Error, I xpulse(t - nT1) (14.1)
X(ω) = Xpulse(ω) !Syntax Error, I 2π δ(ωT1 - 2πm) . (14.4)
We can obtain the same expressions from box (25.4) which summarizes amplitude modulated pulse trains by setting all amplitudes to yn = 1,
x(t) = !Syntax Error, I yn xpulse(t -tn) = !Syntax Error, I xpulse(t -tn) (33.1)
X(ω) = (1/T1)Xpulse(ω) X'ω) = Xpulse(ω) X"(z) (33.2)
X"(z) = X'ω)/T1 = !Syntax Error, Iyn e-iωnT = !Syntax Error, I e-iωnT . (33.3)
X'(ω) is the Digital Fourier Transform of x(t), and X"(z) is the Z Transform, where z = eiωT .
In the last line we then use (13.2)
!Syntax Error, Ie±ink = !Syntax Error, I2πδ(k - 2πm) -∞ < k < ∞ (13.2)
so that (33.3) becomes
X"(z) = X'ω)/T1 = !Syntax Error, I e-iωnT = !Syntax Error, I2πδ(ωT1 - 2πm) (33.4)
and then (33.2) says
X(ω) = (1/T1)Xpulse(ω) X'ω) = Xpulse(ω) !Syntax Error, I2πδ(ωT1 - 2πm) (33.5)
in agreement with (14.4) quoted just above (33.1).
To find the power spectrum of a signal x(t), our first task is to compute | X(ω) |2. From (33.2) we get
|X(ω)|2 = |Xpulse(ω)|2 (1/T1)2 |X'ω)|2 = |Xpulse(ω)|2 | X"(z) |2 . z = eiωT (33.6)
We therefore must deal with the following object, using (33.4),
| X"(z) |2 = (1/T1)2 |X'ω)|2 = [ !Syntax Error, I2πδ(ωT1 - 2πm) ] 2 , (33.7)
and we are now faced with the issue of squaring delta functions. Formally these objects don't exist in the realm of distribution theory, but (as discussed in Appendix A) we can deal with them in an ad hoc way which proves to be useful. Consider,
[ !Syntax Error, I2πδ(ωT1 - 2πm) ] 2 = !Syntax Error, I2πδ(ωT1 - 2πm) !Syntax Error, I2πδ(ωT1 - 2πn)
= !Syntax Error, I !Syntax Error, I2πδ(ωT1 - 2πm) 2πδ(ωT1 - 2πn) .
Looking at the product of the two delta functions, there can be no contribution to the double sum unless m = n, so we continue
= !Syntax Error, I 2πδ(ωT1 - 2πm) 2πδ(0) = [2πδ(0)] !Syntax Error, I 2πδ(ωT1 - 2πm)
so that
[ !Syntax Error, I2πδ(ωT1 - 2πm) ] 2 = [2πδ(0)] !Syntax Error, I 2πδ(ωT1 - 2πm) . (33.8)
The object δ(0) is formally undefined, but in Appendix A we ascribe the meaning that 2πδ(0) = 2N+1 in the limit that N→ ∞ and we can always "undo the limit" when necessary. We shall firm up this idea in section (b) directly below. So we have shown then that
| X"(z) |2 = (1/T1)2 |X'ω)|2 = [2πδ(0)] !Syntax Error, I 2πδ(ωT1 - 2πm) (33.9)
or
= (1/T1)2 = !Syntax Error, I 2πδ(ωT1 - 2πm) . (33.10)
Then from (33.6)
= |Xpulse(ω)|2 = |Xpulse(ω)|2 (1/T1)2
= |Xpulse(ω)|2 !Syntax Error, I 2πδ(ωT1 - 2πm) . (33.11)
We shall now repeat the above set of steps for a finite pulse train.
(b) Finite Simple Pulse Train
Our finite pulse train always has pulses ranging from n = -N to N instead of from n = -∞ to ∞. We start off exactly as in the previous section but with limited sums,
x(t) = !Syntax Error, I yn xpulse(t -tn) = !Syntax Error, I xpulse(t -tn) (33.12)
X(ω) = (1/T1)Xpulse(ω) X'ω) = Xpulse(ω) X"(z) (33.13)
X"(z) = X'ω)/T1 = !Syntax Error, Iyn e-iωnT = !Syntax Error, I e-iωnT . (33.14)
In the last line we then use (13.3),
!Syntax Error, I eink = 2π { } ≡ 2π δ5(k,N) -∞ < k < ∞ (13.3)
where δ5 is a periodic delta function model discussed in Appendix A (b). Equation (33.14) becomes
X"(z) = X'ω)/T1 = !Syntax Error, I e-iωnT = 2π δ5(ωT1,N) (33.15)
and then equation (33.13) says
X(ω) = Xpulse(ω) 2π δ5(ωT1,N) . (33.16)
This δ5 is periodic with period 2π and has identical peaks separated by 2π. For finite N, these are peaks of finite width and height. Squaring, we find
| X(ω) |2 = | Xpulse(ω) |2 [2π δ5(ωT1,N)]2 . (33.17)
Recalling the definition of the δ6 delta function model from Appendix A (A.20),
2π δ6(k,N) ≡ (A.20)
we obtain
= | Xpulse(ω) |2 2π δ6(ωT1,N) (33.18)
and this is the finite pulse train result. We can then take the limit N→∞ and make use of (A.21),
limN→∞ δ6(ωT1,N) = !Syntax Error, Iδ(ωT1 - 2πm) (A.21)
to find that
limN→∞ [] = | Xpulse(ω) |2 !Syntax Error, I2π δ(ωT1 - 2πm) (33.19)
and this replicates (33.11) with the promised connection 2πδ(0) = limN→∞ (2N+1).
It is useful now to provide some side-by-side comparisons of results :
X"(z) = X'ω)/T1 = !Syntax Error, I e-iωnT = !Syntax Error, I2π δ(ωT1 - 2πm) infinite (33.4)
X"(z) = X'ω)/T1 = !Syntax Error, I e-iωnT = 2π δ5(ωT1,N) finite (33.15)
X(ω) = Xpulse(ω) !Syntax Error, I2π δ(ωT1 - 2πm) infinite (33.5)
X(ω) = Xpulse(ω) 2π δ5(ωT1,N) . finite (33.16)
= |Xpulse(ω)|2 !Syntax Error, I 2π δ(ωT1 - 2πm) infinite (33.11)
= | Xpulse(ω) |2 2π δ6(ωT1,N) finite (33.18)
One can interpret as the value of |X(ω)|2 per pulse in an infinite pulse train.
(c) Spectral Power Density of a Simple Pulse Train
In this section, everything is in the frequency domain, nothing is in the time domain.
Recall from (32.6) that
E(ω) ≡ |X(ω)|2/2π = energy density in the ω-domain (joule-sec) (32.6)
E(ω)dω = energy in dω (joules)
where E(ω) is the spectral energy density of signal x(t) whose Fourier Transform is X(ω).
If we divide E(ω) by 2N+1 or 2πδ(0) we obtain the pulse train's average spectral energy density per pulse, which is the same as the energy density of an average pulse in the pulse train. Using our two expressions above for infinite and finite pulse trains, we then find
= = |Xpulse(ω)|2 !Syntax Error, I 2πδ(ωT1 - 2πm)
= = | Xpulse(ω) |2 2π δ6(ωT1,N) . (33.20)
If we divide the spectral energy density of the average pulse by T1, we obtain the spectral power density of an average pulse, and this is the same as the average spectral power density of the pulse train. Thus,
P(ω) ≡ = = |Xpulse(ω)|2 (1/T1)!Syntax Error, I 2πδ(ωT1 - 2πm)
P(ω) ≡ = = |Xpulse(ω)|2 (1/T1) 2π δ6(ωT1,N) . (33.21)
If is perhaps helpful to define
T ≡ . (33.22)
Then (33.21) maybe be restated
P(ω) ≡ = = |Xpulse(ω)|2 (1/T1)!Syntax Error, I 2πδ(ωT1 - 2πm)
P(ω) ≡ = = |Xpulse(ω)|2 (1/T1) 2π δ6(ωT1,N) . (33.23)
Meanwhile, our xpulse(t) which lasts only for duration T1 itself has an energy and power density,
Ppulse(ω) ≡ = . (33.24)
Note: Even if xpulse(t) is wider than T1 as the gaussians are in Fig 14.2, the pulse is associated with the interval of width T1, and Xpulse(ω) involves the time integral over all of xpulse(t). It is convenient to think of the pulse as the black curve in Fig 14.2, in which case the pulse really fits within T1.
We can then write (33.23) in the following compact form
P(ω) ≡ Ppulse(ω)!Syntax Error, I 2πδ(ωT1 - 2πm) joules infinite
P(ω) ≡ Ppulse(ω) 2π δ6(ωT1,N) joules finite (33.25)
Notice that δ(ωT1 - 2πm) and δ6(ωT1,N) are both dimensionless, so the dimensions in each equation trivially match. A power density P(ω) has dimensions of energy = joules, so that P(ω)dω then has the dimensions of joules/sec = watts, and this is the pulse train power contained in interval dω of the spectrum.
For the infinite pulse train, we are always allowed to write
2π δ(ωT1 - 2πm) = (2π/T1) δ(ω - m(2π/T1)) = ω1 δ(ω - mω1) ω1 ≡ 2π/T1
to get
P(ω) ≡ Ppulse(ω) ω1!Syntax Error, I δ(ω - mω1) infinite (33.26)
which shows more explicitly that the power lines occur at the harmonics ω = mω1. Recall now these earlier facts,
c(ω) ≡(1/T1)Xpulse(ω) (14.14)
cm ≡ c(mω1) = (1/T1)Xpulse(mω1) . (14.10), (14.8)
For the infinite pulse train we can then write, using (33.24),
P(ω) ≡ Ppulse(ω) ω1!Syntax Error, I δ(ω - mω1) = !Syntax Error, I δ(ω - mω1)
= !Syntax Error, I δ(ω - mω1) = |c(ω)|2 !Syntax Error, I δ(ω - mω1) = !Syntax Error, I |c(mω1)|2 δ(ω - mω1)
so that
P(ω) = !Syntax Error, I |cm|2 δ(ω - mω1). (33.27)
This gives the power spectrum of a simple pulse train in terms of the complex Fourier Series coefficients cm.
Recall from box (15.12) that Dim(cm) = Dim[x(t)] = volts (say), so |cm|2 = watts into a 1Ω resistor, and since δ(ω - mω1) has dimensions sec, |cm|2 δ(ω - mω1) then has dimensions watt-sec = joules, as befits any P(ω) object.
If we assume x(t) is a real pulse train, then X(ω) is Hermitian, X(-ω) = [ X(ω)]* by (7.1), which means
c-m = (1/T1)Xpulse(-mω) = (1/T1)[Xpulse(mω)]* = cm*
so
|c-m|2 = |cm|2 x(t) real (33.28)
and then we can fold the negative part of the sum in (33.27) to get
P(ω) = !Syntax Error, I |cm|2 δ(ω - mω1) = |c0|2 δ(ω) + 2!Syntax Error, I|cm|2 δ(ω - mω1) . (33.29)
Finally, recalling from our Fourier Series box (15.2) that cm = [ am - ibm ]/2 and b0= 0, we get
P(ω) = a02 δ(ω) + (1/2) !Syntax Error, I(am2+bm2) δ(ω - mω1) . (33.30)
(d) Average Power P of a Simple Pulse Train
We seek an expression for the average power P in a general pulse train. This is of course a time domain quantity, not a frequency domain quantity.
P = [ total energy in pulse train / time duration of pulse train ] = average pulse train power
= (1/T)!Syntax Error, Idt |x(t)|2 = !Syntax Error, Idω // from (32.4) with R = 1Ω
so
P = !Syntax Error, Idω P(ω) . // from (33.23) (33.31)
This is certainly reasonable since P(ω) is the average spectral power density of the pulse train.
For the special case of an infinite simple pulse train, we found above that
P(ω) = !Syntax Error, I |cm|2 δ(ω - mω1) = a02 δ(ω) + (1/2) !Syntax Error, I(am2+bm2) δ(ω - mω1) .
Therefore the power in a simple pulse train is given by (33.31) as
P = !Syntax Error, I |cm|2 = a02 + (1/2) !Syntax Error, I(am2+bm2) . (33.32)
34. Spectral power density of a General Pulse Train
(a) General Pulse Train results and connection with the Autocorrelation Function
Certain results of the previous section apply to general pulse trains. They are gathered here:
E(ω) ≡ |X(ω)|2/2π = energy density in the ω-domain (joule-sec) (32.6)
T ≡ (33.22)
P(ω) ≡ = (33.23)
Ppulse(ω) ≡ = (33.24)
P = !Syntax Error, Idω P(ω) . (33.31)
We now bring the autocorrelation function into the discussion, but only in passing. Let x(t) be an arbitrary but real pulse train, and recall that
rx(t) ≡ !Syntax Error, I dt' x(t') x(t' + t) . (32.1)
Then, using T from (33.22),
rx(0) ≡ !Syntax Error, I dt' x(t')2 = P T = E = total energy in the pulse train (34.1)
so the average pulse train power maybe written in terms of the autocorrelation function evaluated at t = 0,
P = rx(0)/T . (34.2)
We diagonalized (32.1) treated as a convolution equation to obtain
|X(ω)|2 = Rx(ω),
called the Wiener-Khintchine theorem. Here Rx(ω) is the Fourier Integral Transform of the autocorrelation function rx(t) of x(t). Then from (33.23) that P(ω) = we get
P(ω) = Rx(ω)/ (2πT) . (34.3)
In this way, both P and P(ω) can be expressed in terms of the autocorrelation function. Thus, one approach to finding P and P(ω) for a pulse train is to try and determine rx(t).
Here then is a box summarizing all the general pulse train results:
Energy and Power Properties of a General Pulse Train (34.4)
E(ω) ≡ |X(ω)|2/2π = energy density in the ω-domain (joule-sec) (32.6)
T ≡ (33.22)
P(ω) ≡ = = Rx(ω)/ (2πT) joules (33.23) and (34.3)
Ppulse(ω) ≡ = (33.24)
P = !Syntax Error, Idω P(ω) = rx(0)/T watts (33.31) and (34.2)
If P(f)df = P(ω)dω = P(ω) 2πdf , then P(f) = 2πP(ω).
(b) Spectral power density for a General Pulse Train
In Section 33 (d) we dealt with simple pulse trains. Here we consider the more general amplitude modulated pulse train. In all equations, one can replace !Syntax Error, I by !Syntax Error, Ito adapt the equation to a finite pulse train instead of an infinite one. We start then with
x(t) = !Syntax Error, I yn xpulse(t -tn) (34.5)
X(ω) = (1/T1)Xpulse(ω) X'ω) = Xpulse(ω) X"(z) (34.6)
X"(z) = X'ω)/T1 = !Syntax Error, Iyn e-iωnT . (34.7)
To find the frequency-domain power spectrum of a signal x(t), our first task is to compute | X(ω) |2. From (34.6) we get
|X(ω)|2 = |Xpulse(ω)|2 (1/T1)2 |X'ω)|2 = |Xpulse(ω)|2 | X"(z) |2 z = eiωT (34.8)
We therefore must deal with the following object, using (34.7),
| X"(z) |2 = (1/T1)2 |X'ω)|2 = | !Syntax Error, Iyn e-iωnT | 2
= !Syntax Error, Iyn e-iωnT !Syntax Error, Iym* e+iωmT = !Syntax Error, I !Syntax Error, I ym* yn eiω(m-n)T (34.9)
so that
| X(ω) |2 = | Xpulse(ω) |2 !Syntax Error, I !Syntax Error, I ym* yn eiω(m-n)T . (34.10)
From box (34.4) we then have
E(ω) ≡ |X(ω)|2/2π = (1/2π) | Xpulse(ω) |2 !Syntax Error, I !Syntax Error, I ym* yn eiω(m-n)T (34.11)
P(ω) ≡ = (1/2πT) | Xpulse(ω) |2!Syntax Error, I !Syntax Error, I ym* yn eiω(m-n)T (34.12)
which we can write as (again using box (34.4) results)
E(ω) = T1 Ppulse(ω) !Syntax Error, I !Syntax Error, I ym* yn eiω(m-n)T (34.13)
P(ω) = T1 Ppulse(ω) (1/T) !Syntax Error, I !Syntax Error, I ym* yn eiω(m-n)T (34.14)
P = !Syntax Error, Idω P(ω) . (33.31) (34.15)
Not knowing details of the yn there is not much else we can do in these expressions.
(c) Pulse Trains with Repeated Sequences
Consider a pulse train composed of some general pulse shape xpulse(t) whose amplitudes are repeated sequences of A,B. We shall compute the spectrum X(ω) and spectral power density P(ω) by two different methods.
The first method is more or less by brute force, and it reveals a potential pitfall in using the δ(0) notation and shows a clean way to avoid the pitfall.
The second method, much simpler, is to use the Fourier Series results in box (15.12) applied to the repeating sequence.
We then state X(ω) and P(ω) for a few special cases including various square waves.
At the very end we generalize the results to any repeated sequence A,B,C... .
Method 1: Brute Force Approach
Our starting point is (34.8) with (34.7), where we assume N is large and later we will take N→∞ :
X(ω) = (1/T1)Xpulse(ω) X'ω) = Xpulse(ω) X"(z) (34.6)
|X(ω)|2 = |Xpulse(ω)|2 (1/T1)2 |X'ω)|2 = |Xpulse(ω)|2 | X"(z) |2 z = eiωT (34.8)
X"(z) = X'ω)/T1 = !Syntax Error, Iyn e-iωnT. (34.7)
The main problem is to compute X"(z) and then square it. We have
!Syntax Error, Iyn e-iωnT = A !Syntax Error, I e-iωnT + B !Syntax Error, I e-iωnT .
Now process the sums as follows, where
!Syntax Error, I e-iωnT = !Syntax Error, I e-iω(2m)T where we used n = 2m
!Syntax Error, I e-iωnT = !Syntax Error, Ie-iω(2m+1)T where we used n = 2m + 1 .
We assume N is very large, so we regard (N±1)/2 ≈ N/2 . We then find
X"(z) = X'ω)/T1 = !Syntax Error, Iyn e-iωnT = [ A + B e-iωT]!Syntax Error, I e-iω(2m)T .
We now use (13.3),
!Syntax Error, I eink = 2π { } ≡ 2π δ5(k,N) , -∞ < k < ∞ (13.3)
to write
!Syntax Error, I e-iω(2m)T = 2π δ5(2ωT1,N/2)
where δ5 and δ6 to come are explained in Appendix A (b). Therefore,
X"(z) = [ A + B e-iωT] 2πδ5(2ωT1,N/2) . (34.16)
Using this Appendix A result,
limN→∞ δ5(k,N) = !Syntax Error, Iδ(k-2πm) (A.19)
we obtain the N→∞ limit for our spectrum
X"(z) = [ A + B e-iωT] 2π!Syntax Error, Iδ(2ωT1-2πm)
= (1/2)[ A + B e-iωT] (1/T1) 2π !Syntax Error, I δ(ω - mω1/2)
= (1/2) ω1 !Syntax Error, I[ A + B (-1)m] δ(ω-mω1/2) (34.17)
and correspondingly
X(ω) = Xpulse(ω) (1/2) ω1!Syntax Error, I [ A + B(-1)m ] δ(ω - mω1/2) . (34.18)
There is a certain logic to the [ A + B e-iωT] factor. If we set A = K and B = 0 we get one result, and if we set A = 0 and B = K we get the same result multiplied by e-iωnT . The second pulse train is just the first pulse train shifted T1 units to the right, and this adds phase e-iωnT as in (12.1).
If we were to square (34.18) and use our usual 2πδ(0) = 2N+1 association, we get a result that is off by a factor of 2. The reason is that our pre-limit sums are going from -N/2 to N/2, so we would get the right answer if we were to adjust and say 2πδ(0) = N+1. Rather than make an arm-waving argument to this effect, it is safer to continue along with our pre-limit expressions, having paused to take the limit for the spectrum X(ω) as in (34.18).
So, backing off again from limit, we square (34.16) to get
|X"(z)|2 = |A + Be-iωT|2 [2π δ5(2ωT1,N/2)]2 .
Then from (A.20) applied with N → N/2
δ6(k,N/2) ≡ (A.20)
we get
|X"(z)|2 = |A + Be-iωT|2 [2π δ5(2ωT1,N/2)]2
or
= |A + Be-iωT|2 { } = |A + Be-iωT|2 δ6(2ωT1,N/2) .
Now for large N we ignore the difference between N and N + 1 and so on, so we divide both sides by 2 to get,
= (1/2) |A + Be-iωT|2 δ6(2ωT1,N/2)
Notice that a very important factor of 1/2 appears on the right in the last step. We now insert the squared pulse spectrum to get
= |Xpulse(ω)|2 = |Xpulse(ω)|2 (1/2)|A + Be-iωT|2 δ6(2ωT1,N/2) .
If we divide both sides by T1 the left side is where T is the length of the pulse train and this in turn equals P(ω), all as shown in box (34.4). So for large N we have shown that
P(ω) = |Xpulse(ω)|2 (1/T1)(1/2) |A + Be-iωT|2 δ6(2ωT1,N/2)
= Ppulse(ω)(1/2) |A + Be-iωT|2 2π δ6(2ωT1,N/2) . (34.19)
Now at last we take the limit N→∞ and use
limN→∞ δ6(k,N) = !Syntax Error, Iδ(k-2πm) (A.21)
to get our desired infinite pulse train result
P(ω) = Ppulse(ω)(1/2) |A + Be-iωT|2 !Syntax Error, I2π δ(2ωT1 - 2πm)
= Ppulse(ω)(1/4) |A + Be-iωT|2 (1/T1)!Syntax Error, I2π δ(ω - mω1/2)
= Ppulse(ω)(1/4) (1/T1)!Syntax Error, I |A + B(-1)m |2 2π δ(ω - mω1/2)
= Ppulse(ω)(1/4) ω1!Syntax Error, I { |A|2 + |B|2 + 2Re(AB)(-1)m } δ(ω - mω1/2) . (34.20)
Summarizing the key results:
Fig 34.1
X(ω) = Xpulse(ω) (1/2) ω1!Syntax Error, I [ A + B(-1)m ] δ(ω - mω1/2) . (34.18)
P(ω) = Ppulse(ω) (1/4) ω1!Syntax Error, I { |A|2 + |B|2 + 2Re(AB)(-1)m } δ(ω - mω1/2) (34.20)
Method 2: Fourier Series Approach
We regard our A,B pair of pulses as a single pulse xPULSE(t) of width 2T1.
xPULSE(t) = .
We then apply the Fourier Series results of box (15.12) but with T1→ 2T1 (so ω1 → ω1/2)
x(t) = !Syntax Error, IxPULSE(t - n2T1)
Cm = (1/2T1) !Syntax Error, I dt xPULSE(t) e-imωt/2 .
We then calculate Cm as follows
Cm = (1/2T1) !Syntax Error, I dt xPULSE(t) e-imωt/2
= (1/2T1) A !Syntax Error, I dt xpulse(t) e-imωt/2 + (1/2T1) B !Syntax Error, I dt xpulse(t-T1) e-imωt/2
= (1/2T1) A !Syntax Error, I dt xpulse(t) e-imωt/2 + (1/2T1) Be-imω(T/2) !Syntax Error, I dt' xpulse(t') e-imωt'/2
= (1/2) [ A + B (-1)m ] (1/T1)!Syntax Error, I dt xpulse(t) e-imωt/2
= (1/2) [ A + B (-1)m ] cm/2
so that
Cm = (1/2) [ A + B (-1)m ] cm/2 ,
where cn are the Fourier coefficients for a simple pulse train made from xpulse(t) pulses. The spectrum can then be read from box (14.12) item 3, where we continue to replace T1 → 2T1 ,
X(ω) = !Syntax Error, I Cm 2π δ(ω - mω1/2) .
But from (14.10) and (14.8) we know that
cm/2 = (1/T1)Xpulse(mω1/2)
so that
Cm = (1/2) [ A + B (-1)m ] (1/T1)Xpulse(mω1/2) .
Then
X(ω) =!Syntax Error, I { (1/2) [ A + B (-1)m ] (1/T1)Xpulse(mω1/2)} 2π δ(ω - mω1/2)
= Xpulse(ω) (1/2) ω1!Syntax Error, I[ A + B (-1)m ] δ(ω - mω1/2)
which agrees with our Method 1 result (34.18).
Then from (33.29) we get
P(ω) = !Syntax Error, I |Cm|2 δ(ω - mω1/2)
= !Syntax Error, I | (1/T1)Xpulse(mω1/2) (1/2) [ A + B(-1)m ] |2 δ(ω - mω1/2)
= (1/T1)2 | Xpulse(ω) |2 (1/4) !Syntax Error, I | [ A + B(-1)m ] |2 δ(ω - mω1/2) // now use (33.24)
= Ppulse(ω) (1/4) ω1 !Syntax Error, I { |A|2 + |B|2 + 2Re(AB)(-1)m } δ(ω - mω1/2)
and this agrees with our Method 1 result (34.20).
Special Case Group 1
Suppose A = 1 and B = -1. Then
{ |A|2 + |B|2 + 2Re(AB)(-1)m } = { 1 + 1 - 2(-1)m} = 2 [ 1 - (-1)m ] .
Our general results are these
X(ω) = Xpulse(ω) (1/2) ω1!Syntax Error, I [ A + B(-1)m ] δ(ω - mω1/2) . (34.18)
P(ω) = Ppulse(ω) (1/4) ω1!Syntax Error, I { |A|2 + |B|2 + 2Re(AB)(-1)m } δ(ω - mω1/2) (34.20)
which become
X(ω) = Xpulse(ω) (1/2) ω1!Syntax Error, I [ 1 - (-1)m ] δ(ω-mω1/2)
P(ω) = Ppulse(ω) (1/2) ω1!Syntax Error, I { 1 – (-1)m } δ(ω - mω1/2)
or
Fig 34.2
X(ω) = Xpulse(ω) ω1!Syntax Error, I δ(ω - mω1/2)
P(ω) = Ppulse(ω) ω1 !Syntax Error, I δ(ω - mω1/2) . (34.21)
Square wave pulse train with peak-to-peak = 2 units and period 2T1
Xpulse(ω) = T1 sinc(ωT1/2) (9.2)
Ppulse(ω) = |Xpulse(ω)|2/ (2πT1) = (1/ω1) sinc2(ωT1/2) . (34.22)
Evaluated at ω = mω1/2, ωT1/2 = mπ/2 and sin(mπ/2) = 0 for m even and (-1)(m-1)/2 for m odd.
Therefore,
Xpulse(mω1/2) = T1 (-1)(m-1)/2 / (mπ/2) = (2/π) T1 (-1)(m-1)/2 (1/m)
Ppulse(mω1/2) = (1/ω1) (-1)(m-1)/ (mπ/2)2 = (2/π)2(1/ω1) (-1)(m-1)(1/m2) .
For m odd, (-1)(m-1) = 1, so we get
Fig 34.3
X(ω) = 4!Syntax Error, I (-1)(m-1)/2 (1/m)δ(ω - mω1/2)
P(ω) = (2/π)2!Syntax Error, I (1/m2) δ(ω - mω1/2) . (34.23)
Square wave pulse train with peak-to-peak = 1 units and period 2T1
In (34.23) X goes to 1/2 and P goes to 1/4 :
Fig 34.4
X(ω) = 2!Syntax Error, I (-1)(m-1)/2 (1/m)δ(ω - mω1/2)
P(ω) = (1/π)2!Syntax Error, I (1/m2) δ(ω - mω1/2) . (34.24)
Square wave pulse train with peak-to-peak = 2 units and period T1 :
In (34.23) replace ω1 → 2ω1 :
Fig 34.5
X(ω) = 4!Syntax Error, I (-1)(m-1)/2 (1/m)δ(ω - mω1)
P(ω) = (2/π)2!Syntax Error, I (1/m2) δ(ω - mω1) . (34.25)
Square wave pulse train with peak-to-peak = 1 unit and period T1 :
In (34.25) X goes to 1/2 and P goes to 1/4 :
Fig 34.6
X(ω) = 2!Syntax Error, I (-1)(m-1)/2 (1/m)δ(ω - mω1)
P(ω) = (1/π)2!Syntax Error, I (1/m2) δ(ω - mω1) . (34.26)
In (17.9) we showed that for the above square wave cm = (1/πm) (i)1-m for odd m. Then (17.4) says
X(ω) = !Syntax Error, Icm 2πδω - mω1 ) = !Syntax Error, I(1/πm) (i)1-m 2πδω - mω1 )
= 2 !Syntax Error, I(1/m) (-1)(m-1)/2 δω - mω1 ) . // agrees with (34.26)
The power density from (33.27) is
P(ω) = !Syntax Error, I |cm|2 δ(ω - mω1) = !Syntax Error, I (1/πm)2 δ(ω - mω1) . // agrees with (34.26)
Special Case 2
Here A = 1 and B = 0. Our general results (34.18) and (34.20) become
Fig 34.7
X(ω) = Xpulse(ω) (1/2) ω1!Syntax Error, I δ(ω - mω1/2)
P(ω) = Ppulse(ω) (1/4) ω1!Syntax Error, I δ(ω - mω1/2) . (34.27)
Inserting the same square wave pulse shown in (34.22) this becomes
X(ω) = π!Syntax Error, I sinc(mπ/2) δ(ω - mω1/2)
P(ω) = (1/4) !Syntax Error, I sinc2(mπ/2) δ(ω - mω1/2) .
Separating out the m = 0 term and using sin(mπ/2) = (-1)(m-1)/2 we get
Fig 34.8
X(ω) = 2!Syntax Error, I (1/m) (-1)(m-1)/2 δ(ω - mω1/2) + (1/2) 2πδ(ω)
P(ω) = (1/π2)!Syntax Error, I (1/m2) δ(ω - mω1/2) + (1/4) δ(ω) (34.28)
These match (34.24) but here we have DC terms.
Special Case 3 : Recovering the Simple Pulse Train Spectra
Here A = 1 and B = 1. Our general results (34.18) and (34.20) become
X(ω) = Xpulse(ω) (1/2) ω1!Syntax Error, I [ 1 + (-1)m ] δ(ω - mω1/2) (34.18)
P(ω) = Ppulse(ω) (1/2) ω1!Syntax Error, I { 1 + (-1)m } δ(ω - mω1/2) (34.20)
or
X(ω) = Xpulse(ω) ω1!Syntax Error, I δ(ω - mω1/2)
P(ω) = Ppulse(ω) ω1!Syntax Error, I δ(ω - mω1/2)
or
Fig 34.9
X(ω) = Xpulse(ω) ω1!Syntax Error, I δ(ω - mω1) // agrees with (14.5) for simple pulse train
P(ω) = Ppulse(ω) ω1!Syntax Error, I δ(ω - mω1) // agrees with (33.26) for simple pulse train
Exercises for the Reader:
(a) If the repeating amplitude sequence is A,B,C show that
X(ω) = Xpulse(ω) (1/3)[ A + B e-iωT + C e-i2ωT ] ω1 !Syntax Error, I δ(ω - mω1/3)
P(ω) = Ppulse(ω) (1/3)2 |A + Be-iωT + C e-i2ωT|2 ω1!Syntax Error, Iδ(ω - mω1/3) . (34.29)
(b) If the repeating sequence is A0,A1....AM-1 show that
X(ω) = Xpulse(ω) [ !Syntax Error, IAke-ikωT ] ω1 !Syntax Error, I δ(ω - mω1/M)
P(ω) = Ppulse(ω) | !Syntax Error, IAke-ikωT |2 ω1!Syntax Error, I δ(ω - mω1/M) . (34.30)
These results can be expressed in terms of the Z Transform X"seq(z) = Σk=0M-1 Ak z-k of the repeated sequence, where z = eikωT :
X(ω) = Xpulse(ω) X"seq(z) ω1 !Syntax Error, I δ(ω - mω1/M)
P(ω) = Ppulse(ω) | X"seq(z) |2 ω1!Syntax Error, I δ(ω - mω1/M) (34.31)
35. Statistical Pulse Trains
(a) Spectral power density for a Statistical Pulse Train
We imagine now a large ensemble of I pulse trains in which a particular pulse train is labeled by index i. This pulse train has coefficients yn(i) . We are interested in the ensemble averages of E(ω) and P(ω) and P. We indicate the ensemble average of some quantity Q by <Q>. By averaging equations (34.13) through (34.15) we obtain
<E(ω)> = T1 Ppulse(ω) !Syntax Error, I !Syntax Error, I <ym* yn> eiω(m-n)T (35.1)
<P(ω)> = T1 Ppulse(ω) (1/T) !Syntax Error, I !Syntax Error, I <ym* yn> eiω(m-n)T (35.2)
<P> = !Syntax Error, Idω <P(ω)> (35.3)
where
<ym* yn> = (1/I) !Syntax Error, I ym(i)* yn(i) . (35.4)
Up to this point we have been general, allowing the ym(i) to be complex coefficients, but from now on we consider them to be real, so we can delete the asterisks in the above equations.
In general one can consider statistical pulse trains whose amplitudes are randomly selected in some manner from a discrete set of possible amplitudes {A,B,C....}, or perhaps even from a continuous set. We shall limit our interest to the binary discrete set {A,B}, but the methods outlined below can be generalized for signals having more than two encoded amplitudes.
A very simple case to consider is this, where A and B are real,
ym = A probability p
ym = B probability 1-p . (35.5)
Remember that index m labels pulse location m in the pulse train. If probabilities of a pulse value at locations m and at n are uncorrelated (they are independent of each other), then we can write the averaged coefficients as follows, first for two different locations m ≠ n, then for the same location m = n :
n ≠ m α ≡ <ymyn> = [pp] AA + [p(1-p)] AB + [(1-p)p]BA + [(1-p)(1-p)]BB
n = m β ≡ <ym2> = [p]AA + [(1-p)] BB . (35.6)
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 (35.2), 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 dependence on the n and m indices for these quantities. In a later sections, we shall encounter situations where the above equations do not apply because there is correlation between positions m and n.
Inserting (35.6) into (35.2) gives a fundamental result [ T as in (34.3) ]
<P(ω)> = T1 Ppulse(ω) (1/T) { α!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (35.7)
Appendix D shows how α and β may be written in terms of the mean μ and variance σ2 of the values of the amplitudes ym(i) for the pulses at position m in the pulse train ensemble. There we show that
<ym> = μ = [p]A + [1-p]B
n ≠ m α ≡ <ymyn> = μ2 = { [p]A + [1-p]B }2 = [pp] AA + [p(1-p)] 2AB + [(1-p)(1-p)]BB
n = m β ≡ <ym2> = [p]AA + [(1-p)] BB = σ2 + μ2 = σ2 + α (D.30)
σ2 = [ p(1-p)] (A-B)2 . (D.32)
The key relations of interest are these,
α = μ2
β = μ2 + σ2 = α + σ2
σ2 = (β-α) . (D.31)
Thus we can write (35.7) as
<P(ω)> = T1 Ppulse(ω) (1/T) { μ2!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] +(μ2 + σ2)!Syntax Error, I !Syntax Error, I [1] }
(35.7a)
In general we shall continue to use the parameters α and β, occasionally referring to μ and σ.
(b) Infinite Statistical Pulse Train with Non-Correlated Coefficients
Recall now equation (35.7),
<P(ω)> = T1 Ppulse(ω) (1/T) { α!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (35.7)
To evaluate the first double sum, we write it as
!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = !Syntax Error, I { !Syntax Error, I [ eiω(m-n)T] – 1 }
= ( !Syntax Error, I e+iωnT ) (!Syntax Error, Ie-iωmT ) – !Syntax Error, I1 = | !Syntax Error, I e+iωnT |2 - !Syntax Error, I1 . (35.8)
Note that each sum is real, according to (13.2), so we can replace | |2 by { }2.
We now quote two results from Appendix A,
!Syntax Error, I 1 = [ 2π δ(0)] (A.36)
{!Syntax Error, I einωT}2 = [ 2πδ(0) ] { !Syntax Error, I2π δ(ωT1- 2πm) } , (A.39)
so the first double sum in (35.7) becomes
!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = [ 2πδ(0) ] { !Syntax Error, I2π δ(ωT1- 2πm) - 1} . (35.9)
From (A.36) the second double sum in (35.7) is just [ Σm=n 1 for fixed n has just one term which is 1 ]
!Syntax Error, I !Syntax Error, I [1] = !Syntax Error, I [1] = [ 2π δ(0)] , (35.10)
and therefore we may write (35.7) as
<P(ω)> = T1 Ppulse(ω) (1/T) { α [ 2πδ(0) ] [ !Syntax Error, I2π δ(ωT1- 2πm) - 1] +β [ 2π δ(0)] }
= Ppulse(ω) (T1 [ 2πδ(0) ]/T) { α [ !Syntax Error, I2π δ(ωT1- 2πm) - 1] +β }
or
<P(ω)> = Ppulse(ω) { (β-α) + α!Syntax Error, I2π δ(ωT1- 2πm) } (35.11)
where we used T = [2πδ(0)]T1 from (33.22). This is a famous result which will be applied below.
In Appendix D (D.31) we show that (β-α) = σ2 and α = μ2 where μ and σ2 are the mean and variance of the pulse train amplitudes ym(i) which occur at position m in the pulse train. Thus (35.11) may be written,
<P(ω)> = Ppulse(ω) { σ2 + μ2!Syntax Error, I2π δ(ωT1-2πm) } . (35.11a)
In this form we see that the continuous part of the spectrum arises from the variance σ2 in the ensemble values of the pulse train amplitudes ym(i), while the discrete part of the spectrum is present only if the pulse amplitudes have a non-vanishing mean μ .
Verification
To find external verification for (35.11), we write things in terms of f where ω = 2πf,
Ppulse(ω) = = // (34.4) and text after (1.4)
P(f) = 2πP(ω) // (34.4) last item
2π δ(ωT1-2πm) = 2π δ(2πfT1-2πm) = (1/T1) δ( f - m/T1) .
Then (35.11a) becomes
<P(f)> = { σ2 + !Syntax Error, I δ( f - m/T1) }
or
<P(f)> = { σ2 + !Syntax Error, I δ( f - m/T1) } (35.11b)
This may be compared to result (A.17) in Appendix A of Xiong which we quote,
(c) Finite Statistical Pulse Train with Non-Correlated Coefficients
Recall again equation (35.7) but assume now a finite pulse train so the sums are different
<P(ω)> = T1 Ppulse(ω) (1/T) { α!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (35.12)
To evaluate the first double sum, we write it as
!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = !Syntax Error, I { !Syntax Error, I [ eiω(m-n)T] – 1 }
= ( !Syntax Error, I e+iωnT ) (!Syntax Error, Ie-iωmT ) – !Syntax Error, I1 = |!Syntax Error, I e+iωnT |2 - (2N+1) . (35.13)
where | |2 = { }2 since (13.3) says each sum is real. From Appendix A we have
!Syntax Error, I eink = 2π { } = 2πδ5(k,N) , (A.30)
so using (35.13) the first double sum in (35.12) becomes
!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = [2πδ5(ωT1,N)]2 - (2N+1) . (35.14)
The second double sum in (35.12) is just
!Syntax Error, I !Syntax Error, I [1] = !Syntax Error, I [1] = (2N+1) (35.15)
and therefore we may write (35.12) as
<P(ω)> = T1 Ppulse(ω) (1/T) { α { [2πδ5(ωT1,N)]2 - (2N+1)} +β(2N+1) }
= Ppulse(ω) ((2N+1) T1/T) { α { - 1)} +β }
= Ppulse(ω) { (β-α) + α }
where this time we used T = (2N+1)T1 from (33.22). The factor multiplying α can be replaced using (A.20),
δ6(k,N) ≡ = (A.20)
to give
<P(ω)> = Ppulse(ω) { (β-α) + α 2π δ6(ωT1,N) } (35.16)
which is the finite pulse train version of (35.11). In the limit N → ∞ we know from (A.21)
limN→∞ δ6(k,N) = !Syntax Error, Iδ(k-2πm) (A.21)
so that (35.16) becomes
<P(ω)> = Ppulse(ω) { (β-α) + α!Syntax Error, I2π δ(ωT1-2πm) }
which reproduces (35.11).
(d) Statistical Non-Correlated Pulse Trains: Summary and Examples
Here then is a brief summary of the above results:
Spectral power density of a Non-Correlated Pulse Train (35.17)
x(t) = !Syntax Error, I yn xpulse(t - nT1) // or !Syntax Error, I for a finite pulse train
<P(ω)> = Ppulse(ω) [ (β-α) + α !Syntax Error, I2π δ(ωT1- 2πm) ] // infinite (35.11)
<P(ω)> = Ppulse(ω) [ (β-α) + α 2π δ6(ωT1,N) ] // finite (35.16)
α = [pp] AA + [p(1-p)] AB + [(1-p)p]BA + [(1-p)(1-p)]BB // = <ymyn> when n≠m
(35.6)
β = [p]AA + [(1-p)] BB // = <ymyn> when n=m
A pulse has probably p of having amplitude A, and probability 1-p of having amplitude B.
A=1 and B=0 => α = p2 β = p (β - α) = p(1-p)
Example 1: Assuming A = 1 and B = 0, setting p = 1 in the above box gives α = 1 and (β-α) = 0. In this limit, our statistical average pulse train spectrum becomes the same as that for the simple pulse train of (33.25)
P(ω) ≡ Ppulse(ω)!Syntax Error, I 2πδ(ωT1 - 2πm) joules
P(ω) ≡ Ppulse(ω) 2π δ6(ωT1,N) joules (33.25)
This is because with p = 1 every pulse in the pulse train has the same amplitude A=1, which is how a simple pulse train is defined. As we reduce p below p = 1, the line spectra are scaled down by α = p2 < 1, and a continuous spectrum starts to appear with (β - α) = p(1-p). The randomness (variance σ2) of the ensemble creates a continuous component in the spectral power density P(ω) as per (35.11a) .
Example 2: Let p=0 with A=1 and B=0. Then every pulse has B = 0, x(t) ≡ 0, α = β = 0, and both terms in P(ω) vanish so there is zero spectral energy density.
Example 3: Let p=1/2 with A=1 and B=0, so α = p2 = 1/4 and β = p = 1/2. This pulse train then has an equal probably of 1's and 0's. We find from box (35.17) that
<P(ω)> = Ppulse(ω) [(1/4) + (1/4) !Syntax Error, I2π δ(ωT1- 2πm) ] infinite (35.18)
<P(ω)> = Ppulse(ω) [(1/4) + (1/4) 2π δ6(ωT1,N) ] finite (35.19)
In (35.18) the discrete spectrum has been reduced to 1/4 of its full strength, and a continuous spectrum exists with coefficient 1/4 as shown.
(e) A numerical example of a Statistical Pulse Train
Recall from box (34.4) that for a finite pulse train,
P(ω) = Ppulse(ω) = T = (2N+1)T1. (35.20)
Therefore we can write our p = 1/2 Example 3 result (35.19) as
= |Xpulse(ω)|2 [(1/4) + (1/4) 2π δ6(ωT1,N) ] . (35.21)
We shall use for xpulse(t) a square pulse of height A=1 and width τ = T1 = 1 so that, from (9.2),
|Xpulse (ω) | = sinc(ω/2) . (35.22)
Since our pulse train will be fairly short (N = 20 pulses) and since we shall only average a small number of pulse trains (M = 10), we know our result will not exactly match (35.21). Still, we hope to see in our result some kind of continuous background spectrum which approximates the curve (1/4)|Xpulse(ω)|2 = (1/4) sinc2(ω/2), and we expect to see delta-function-like peaks which, since 2πδ6(0,N) = (2N+1), have a peak value of about (1/4)41 = 10.25. Since this will be added to the continuous background, the peak should have a height of 10.25 + .25 = 10.5. However, for our small ensemble, we won't have exactly p = 1/2, so the delta peak won't be exactly 10.5 units high.
We know that δ6 has identical peaks spaced by 2π, but we expect the non-central peaks to be suppressed by the sinc2(ω/2) zeros which occur at ω = n(2π).
Here is the self-documented Maple program which generates <|X(ω)|2> . The program also generates the quantity <X(ω)> upon which we shall comment in Section 36 below.
At this point, before Xpulse(ω) is added to the result, we plot <|X(ω)|2>. As expected, we see the peaks of δ6 spaced by 2π and having height around 10 units,
Fig 35.1
We now insert copies of Xpulse(ω) as appropriate,
and then we can plot for ω in the same range (-10,10)
Fig 35.2
We see that the zeros of the sinc function have killed off the adjacent peaks.
Next, we restrict the plot height to be 0.8 units to view the detail, chopping off the δ6 peak,
Fig 35.3
The spectrum is seen to have a continuous component which very well approximates one quarter of the sinc2 curve, as we hoped it would. This tracking also occurs away from the central peak. Here is a blow-up of the above plot for ω in the range (5, 30)
Fig 35.4
It might be noted that Maple does this work analytically, so that Was-av is a function of ω having a large number of trigonometric terms. For the reader's interest, we show Was-av(ω) for a typical program run :
In more serious work with larger numbers, one would of course do this in a more numeric fashion, but we are able to confirm the basic results even with this small experiment.
(f) What role has the Autocorrelation Function played in our development?
In Section 32 the autocorrelation function was first introduced as rx(t) for x(t), and was computed for the simple case of a box pulse. Treating the definition of rx(t) as a convolution equation, the Wiener-Khintchine Relation Rx(ω) = |X(ω)|2 was trivially derived. It was then shown that the spectral energy density of a pulse train is E(ω) = (1/2π) Rx(ω) due to this relation. Finally, it was shown that rx(0) = E, the total energy in the pulse train. We then commented on the origin of the name, showing that the auto-correlation function is the cross-correlation function of a function with itself when that function is real.
In Section 34 it was noted again that P = rx(0)/T since P = E/T, and that P(ω) = Rx(ω)/ (2πT) since Rx(ω) = |X(ω)|2.
Sections 33 and 35 made no reference at all to the autocorrelation function.
This leads us to make several comments:
(1) The autocorrelation function played no role whatsoever in our development of key equations such as
<P(ω)> = Ppulse(ω) [ (β-α) + α !Syntax Error, I2π δ(ωT1- 2πm) ] // infinite (35.11)
(2) In some textbooks, one gets the impression that the autocorrelation function is somehow crucial for the development of such equations. It is not.
(3) Nevertheless, since P(ω) = Rx(ω)/ (2πT), one can start with a description of x(i)(t) of pulse train i in a statistical ensemble, compute from it rx(i)(t) and from that Rx(i)(ω) . One could then do a statistical average to obtain <P(ω)> = (2πT)-1(1/I) Σi=1I Rx(i)(ω). So it is possible to take a pathway to deriving equations like (35.11) which does pass through the land of the autocorrelation function.
(4) Our main reason for even bringing it up is that autocorrelation is closely related to what we are doing, and in other applications such as those involving noise (and pseudo-noise PN) it becomes more significant. In such applications, the definition of rx(t) might include a normalizing factor so it is then autocorrelation per unit time, or per pulse (per chip in the PN world).
(g) A paradox and its resolution
Now while here, we can back up and apply our statistical average directly to the spectrum in (34.6) using (34.7). The result is
<X(ω)> = Xpulse(ω) !Syntax Error, I<yn> e-inωT . (34.6,7)
We could then argue that
<yn> = [p] A + [1-p] B = p if A=1, B=0 . (35.23)
In this case, we can extract p from the above sum, which then collapses to form the usual (13.2) delta function sum. The result is then the same as the regular pulse train result (14.4) with an overall factor of p out front, namely,
<X(ω)> = p !Syntax Error, IXpulse(mω1) 2π δ( ωT1 - 2πm) . (35.24)
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 discrete unit amplitude pulse train spectrum (14.4). How can this be true, if we just showed in (35.11) 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(ω)*> . (35.25)
There is no reason in the world why the average of a product should be the product of the averages,
( Σi=1N AiBi) ≠ ( Σi=1N Ai) ( Σi=1N Bi) .
In the numerical example presented in Section 35 (f), we computed <X(ω)> for a small ensemble of pulse trains. Here are plots of the real and imaginary part of <X(ω)>,
Fig 35.5
We can see that, apart from the noise of our low statistics, there is only the central peak and no continuous spectrum component. A blow-up of the central region follows,
Fig 35.6
36. Application to some Standard Non-Correlated Pulse Train Types (Line Codes)
Here we apply our boxed results (35.17) to random pulse trains of various types. When a pulse train is in fact a voltage on a pair of wires (transmission line, such as a telephone "line"), the way in which signals are encoded in the pulse train is called a line code. One could consider a random speed Morse code signal going down a wire as a line code, but the term usually refers to a sequence of equally spaced amplitude modulated pulses, meaning a pulse train. Often line codes get modulated onto an RF carrier, in which case the line code is thought of as the baseband signal prior to modulation. For this reason, line codes are often discussed in the "baseband chapter" of any digital communications text.
The line code names are a little strange due to their history. Here are the pulse shapes used for RZ and NRZ lines codes. In either case a 1 is (is coded as) a pulse and a 0 is no pulse.
Fig 36.1
On the left, since the signal returns to zero inside the pulse period, it is called a "return to zero" code RZ.
Since this does not happen on the right, that is a "non return to zero" code, NRZ.
(a) Unipolar NRZ line code
Pulse Shape. The pulse is a box of amplitude V and width τ = T1,
Fig 36.2
From (9.2) we know that
Xpulse(ω) = (VT1) sinc(ωT1/2)
(36.1)
Ppulse(ω) = = (VT1)2 sinc2(ωT1/2)/(2πT1) = (1/2π) V2T1 sinc2(ωT1/2)
Coding: NRZ is a normal binary signal, high for period T1 to indicate a 1, and low for T1 to indicate a 0. Sometimes this is called unipolar NRZ since the signal never goes negative.
Fig 36.3
Coefficients α and β: Looking at summary box (35.17), since A = 1 and B = 0 we have α = p2 and β = p.
Spectrum: The average spectral power density for the NRZ line code is :
<P(ω)> = Ppulse(ω) [(β-α) + α !Syntax Error, I2πδ(ωT1- 2πm) ] (35.11)
= (1/2π) V2T1 sinc2(ωT1/2) [ p(1-p) + p2!Syntax Error, I2π δ(ωT1- 2πm) ]
= (V2/ω1) sinc2(π ) [ p(1-p) + p2!Syntax Error, I δ( - m) ] .
But for all m≠0, the sinc function vanishes, so the discrete part of the spectrum collapses to a single term and we get
<P(ω)> = (V2/ω1) sinc2(π ) [ p(1-p) + p2 δ( ) ]
From now on we shall express <P(ω)> in terms of a dimensionless frequency x,
x ≡ ω1 ≡ 2π/T1 => πx = (ωT1/2) (36.2)
so the above becomes
<P(ω)> = (V2/ω1) sinc2(πx) [ p(1-p) + p2 δ(x) ]
= (V2/ω1) [p(1-p)sinc2(πx) + p2 δ(x)] // unipolar NRZ (36.3)
In order to express this (and later) results in the frequency domain, we use these relations
P(ω) = P(f)/2π // (34.4) bottom line
1/ω1 = T1/2π
x = ω/ω1 = fT1 // ω = 2πf
δ(x) = δ(f)/T1
to obtain
<P(f)> = V2 [p(1-p) T1sinc2(πfT1) + p2δ(f)] // unipolar NRZ, f (36.3a)
<P(f)> = (V2/4)[ T1 sinc2(πfT1) + δ(f) ] // unipolar NRZ , f, p=1/2 (36.3b)
This last result agrees with Xiong (2.25).
Plot: Ignoring the overall factor (V2/ω1) we make this plot of <P(ω)> given by (36.3):
Fig 36.4
The red curve should be scaled by the red factor shown on the left, and the blue delta line should be scaled by the blue factor on the right.
Power Partition: The total power in the continuous part of the spectrum is:
AC power = !Syntax Error, I ω1dx<P(xω1)> = p(1-p) V2 !Syntax Error, I dx sinc2(πx) = p(1-p) V2 .
The total power in the DC line at ω = 0 is
DC power = !Syntax Error, I ω1dx<P(xω1)> = V2!Syntax Error, I dx p2 δ(x) = p2V2
Thus we find that
total power = p2 V2 + p(1-p) V2 = pV2 (36.4)
DC AC
If p = 1/2, then
total power = (1/4) V2 + (1/4) V2 = (1/2)V2
DC AC
so half the power is in the DC line and half in the AC signal. The DC term is certainly reasonable since we know that with p = 1/2, the average voltage is (V/2).
If one wanted to reduce wasted power, it would be good to give this signal a DC offset of -V/2 and then there would be no DC line. This is in fact the next example if one takes V → V/2.
(b) Bipolar NRZ line code
Pulse Shape. The pulse shape is the same as for Unipolar NRZ
Fig 36.2
Ppulse(ω) = (1/2π) V2T1 sinc2(ωT1/2) = (V2/ω1) sinc2(ωT1/2) same as for unipolar NRZ (36.1)
Coding: 1 is coded as a positive box with amplitude V, and a 0 as a negative box having amplitude -V.
Fig 36.5
Coefficients α and β: From (35.17) we have
α = [pp] AA + [p(1-p)] AB + [(1-p)p]BA + [(1-p)(1-p)]BB
= [pp] (1)(1) + [p(1-p)] (1)(-1) + [(1-p)p] (-1)(1) + [(1-p)(1-p)] (-1)(-1)
= p2 - 2p(1-p) + (1-p)2 = 4p2 - 4p + 1 = (1-2p)2 // = μ2
β = [p]AA + [(1-p)] BB = [p] (1)(1) + [(1-p)] (-1)(-1) = p + 1 - p = 1
(β - α) = 1 - [4p(p-1)+1] = 4p(1-p) // = σ2 (36.5)
Spectrum: The average spectral power density for the NRZ line code is :
<P(xω1)> = Ppulse(ω) [ (β-α) + α!Syntax Error, I δ(x - m) ] (35.11) = (V2/ω1) sinc2(πx) [4p(1-p) + (1-2p)2!Syntax Error, I δ(x - m) ] .
As before the sinc function kills all the δ peaks except the DC peak, so in fact
<P(ω)> = (V2/ω1) sinc2(πx) [ 4p(1-p) + (1-2p)2δ(x) ] // bipolar NRZ (36.6)
<P(f)> = (V2T1) sinc2(πfT1) [ 4p(1-p) + (1-2p)2δ(f)/T1 ] // bipolar NRZ, f (36.6a)
<P(ω)> = (V2/ω1) sinc2(πx) = Ppulse(ω) // bipolar NRZ, p=1/2 (36.6b)
<P(f)> = (V2T1) sinc2(πfT1) // bipolar NRZ, f, p = 1/2 (36.6c)
This last result agrees with Xiong (2.20). The spectrum is all continuous when p = 1/2 since then the DC portion is killed off. As noted in the comment after (35.11a), a discrete spectrum cannot exist if the waveform amplitudes have zero mean μ = 0.
Notice that for p = 1/2, bipolar NRZ has <P(ω)> = Ppulse(ω), so the statistical pulse train spectrum is the same as that of the underlying pulse.
Plot: Ignoring the overall factor (V2/ω1) we make this plot of <P(xω1)> given by (36.6)
Fig 36.6
which is the same as the spectrum for unipolar NRZ except for the two scaling factors.
Power Partition: We can again compute the DC and AC power.
AC power = unipolar NRZ with p(1-p) → 4p(1-p), so AC = 4p(1-p) V2
DC power = unipolar NRZ with p2 → (2p-1)2, so DC = (2p-1)2 V2
total power = (2p-1)2V2 + 4p(1-p)V2 = V2 , independent of p. (36.7)
DC AC
The total power is independent of p because a pulse has the same AC power if it goes up or down. For p = 1/2 we get
total power = 0 + V2 = V2 // p = 1/2
DC AC
and now no power is wasted pushing DC through a line. If we take V→V/2 to have a comparable peak-to-peak amplitude, we find
AC power = (V/2)2
which is the same as the AC power in (36.5); it is not affected by a DC offset of -V/2.
(c) Unipolar RZ line code
Pulse Shape. Here the basic pulse is a box that fills only half the time interval T1.
Fig 36.7
We can use result (36.1) with T1→ T1/2 since the pulse only fills half the T1 period,
Xpulse(ω) = (VT1/2) sinc(ωT1/4)
Ppulse(ω) = = (VT1/2)2 sinc2(ωT1/4)/(2πT1) = (1/2π) (V/2)2T1 sinc2(ωT1/4)
= (V/2)2 (1/ω1) sinc2( ) (36.8)
Coding: 1 is coded as the presence of the pulse, 0 is coded as the absence of a pulse.
Fig 36.8
Coefficients α and β: Looking at summary box (35.17), since A = 1 and B = 0 we have α = p2 and β = p.
Spectrum: The average spectral power density for the unipolar RZ line code is :
<P(ω)> = Ppulse(ω) [(β-α) + α !Syntax Error, I2πδ(ωT1- 2πm) ]
= (V/2)2 (1/ω1) sinc2( ) [ p(1-p) + p2!Syntax Error, I δ( - m) ]
= (V/2)2 (1/ω1) sinc2( x) [ p(1-p) + p2!Syntax Error, I δ(x - m) ] .
We see here that the sinc function now kills off all m= even lines for m ≠0, so with x = ω/ω1,
<P(ω)> = (V/2)2 (1/ω1) sinc2( x) [ p(1-p) + p2 {δ(x) + !Syntax Error, I δ(x - m)} ] (36.9)
<P(f)> = (V/2)2T1 sinc2( fT1) [ p(1-p) + (p2/T1) {δ(f) + !Syntax Error, I δ(f - m/T1) } ] (36.9a)
where the sum includes positive and negative odd values of m. As noted above, one can formally include the even m terms but they vanish since sinc(mπ/2) = 0 for even m ≠ 0. For p = 1/2 one gets
<P(f)> = (V/4)2T1 sinc2( fT1) [ 1 + (1/T1) {δ(f) + !Syntax Error, I δ(f - m/T1) } ]
= (V/4)2T1 sinc2( fT1) [ 1 + (1/T1) !Syntax Error, I δ(f - m/T1) ] // p = 1/2 (36.9b)
This last result agrees with Xiong (2.31) in which Rb ≡ 1/T = our 1/T1.
Plot: Ignoring now the overall factor (V/2)2 (1/ω1) we get this power spectrum from (36.9),
Fig 36.9
We now have three pieces: a continuous part, the DC line, and a set of lines at odd m. The main peak is twice as wide as the NRZ peak since the underlying pulse is half as wide.
Power Partition: Once again, we can compute the total power for each of these three pieces.
odd lines power = !Syntax Error, I ω1dx<P(xω1)> = ω1 (V/2)2 (1/ω1) p2!Syntax Error, I dx sinc2( x) 2!Syntax Error, I δ(x - m)
= (V/2)2 2p2 !Syntax Error, Isinc2( m) = (V/2)2 2p2!Syntax Error, I = (V/2)2 2p2 (2/π)2 !Syntax Error, I
= (V/2)2 2p2 (2/π)2 (π2/8) = p2(V/2)2
where the sum Σodd(1/m2) = π2/8 from GR 0.234.2. Then
DC power = !Syntax Error, I ω1dx<P(xω1)> = (V/2)2p2 !Syntax Error, I dx sinc2( x) δ(x) = p2 (V/2)2
which is the same as the odd lines power. Finally,
continuum power = !Syntax Error, I ω1dx<P(xω1)> = (V/2)2 p(1-p) !Syntax Error, I dx sinc2( x) = 2p(1-p) (V/2)2
So the power partitioning is
total power = p2(V/2)2 + p2 (V/2)2 + 2p(1-p) (V/2)2
DC other lines continuum
= p2(V/2)2 + p(2-p) (V/2)2 = 2p(V/2)2 = (p/2)V2 . (36.10)
DC AC
This is half of the total power of unipolar NRZ (36.4), which seems reasonable since the pulses here are half as long.
Exercise for the Reader: Compute everything for the bipolar RZ waveform:
For p = 1/2, Xiong (2.30) gives <P(f)> = (V/2)2T1 sinc2( fT1).
(d) Manchester line code
This line code was developed at the University of Manchester probably in the World War II era. At that time Tom Kilburn, Alan Turing and others were building the world's first stored-program computer.
Pulse Shape: The pulse shape here is the biphase (biphasic, diphase) pulse,
Fig 36.10
We already computed Xpulse(ω) for this pulse in (19.2), so we now set τ = T1/2 and A/2 = V to get
Xpulse(ω) = (4iV/ω) sin2(ωT1/4) = (4iV/ω) sin(ωT1/4) [sin(ωT1/4) / (ωT1/4 )] (ωT1/4 )
= (iVT1) sin(ωT1/4) sinc(ωT1/4)
Ppulse(ω) = = (1/2π) V2 T1 sin2(ωT1/4) sinc2(ωT1/4) . (36.11)
This spectral pulse density is 4 sin2(ωT1/4) times that of the RZ pulse shown in (36.8). This extra factor kills off the spectrum near ω = 0.
Coding: 1 is coded as the above pulse, 0 is coded as the negative of the pulse (but some sources use the opposite polarity),
Fig 36.11
Coefficients α and β: From box (35.17) with A = 1 and B = -1,
α = [pp] AA + [p(1-p)] AB + [(1-p)p]BA + [(1-p)(1-p)]BB
= [pp] (1)(1) + [p(1-p)] (1)(-1) + [(1-p)p] (-1)(1) + [(1-p)(1-p)] (-1)(-1)
= p2 - 2p(1-p) + (1-p)(1-p) = (2p-1)2
β = [p]AA + [(1-p)] BB = [p] (-1)(-1) + [(1-p)] (1)(1) = 1
(β-α) = 1 - (2p-1)2 = 4p(1-p) (36.12)
Comment: Notice that the mean value of the waveform in Fig 36.11 is 0 regardless of p, whereas the mean value μ of the amplitudes yn is given by μ2 = α = (2p-1)2 as in (D.31).
Spectrum: The average spectral power density for the Manchester line code is :
<P(ω)> = Ppulse(ω) [(β-α) + α !Syntax Error, I2πδ(ωT1- 2πm) ]
= (1/2π) V2 T1 sin2(ωT1/4) sinc2(ωT1/4) [4p(1-p) + (2p-1)2!Syntax Error, I2πδ(ωT1- 2πm)
= V2 (1/ω1) T1 sin2( ) sinc2( ) [4p(1-p) + (2p-1)2!Syntax Error, I δ( - m) ]
= V2 (1/ω1) sin2( x) sinc2( x) [4p(1-p) + (2p-1)2!Syntax Error, I δ(x - m) ]
so that
<P(ω)>= V2 (1/ω1) sin2( x) sinc2( x) [4p(1-p) + (2p-1)2!Syntax Error, I δ(x - m) ] (36.13)
<P(f)> = V2T1 sin2( fT1) sinc2( fT1) [4p(1-p) + (2p-1)2(1/T1)!Syntax Error, I δ(f - m/T1 ] (36.13a)
<P(f)> = V2T1 sin2( fT1) sinc2( fT1) // p = 1/2 (36.13b)
For p≠1/2, the even lines are killed off by the sin2 factor including the DC line m = 0. For p = 1/2 the spectrum is fully continuous. The last result agrees with Xiong (2.38). Xiong refers to this Manchester code as Bi-Φ-L.
Plot: Ignoring the leading factor V2 (1/ω1) the spectrum for (36.13) has this plot,
Fig 36.12
Power Partition:
lines power = !Syntax Error, I ω1dx<P(xω1)> = V2 (2p-1)2!Syntax Error, I dx sin2( x) sinc2( x)!Syntax Error, I δ(x - m)
= V2 (2p-1)2!Syntax Error, I sin2( m) sinc2( m) = V2 (2p-1)2!Syntax Error, I sin4( m) ( m)-2
= V2 (2p-1)2(2/π)2!Syntax Error, I 1 /m2 = V2 (2p-1)2(2/π)2 2!Syntax Error, I 1 /m2
= V2 (2p-1)2(2/π)2 2 (π2/8) = (2p-1)2 V2
continuum power = !Syntax Error, I ω1dx<P(xω1)> = V2 4p(1-p) !Syntax Error, I dx sin2( x) sinc2( x) = V2 4p(1-p)
since the integral is just 1. Therefore,
total power = 0 + (2p-1)2 V2 + 4p(1-p) V2 = V2 (36.14)
DC lines continuum AC
In the case p = 1/2, the lines power vanishes leaving only continuum power = V2.
Since the power is kept away from DC, Manchester coding is useful for AC-coupled transmission lines, such as lines incorporating transformers. The down side compared to NRZ is that the first spectral hump goes out to ω = 2ω1, which reflects the fact that the minimum pulse width is T1/2 whereas in NRZ it is T1. So a transmission line must then have twice the bandwidth for Manchester relative to NRZ.
(e) Noise, ISI and Eye Patterns
In general, if some spectral components are filtered away in a transmission line (or in some general signal pathway), the corresponding pulse (by inverse Fourier Transform) has curved corners, meaning the pulse gets rounded and spread out. This effect along with noise can result in inter-symbol interference (ISI). The superposition of such pulses on an oscilloscope (triggered on a recovered T1 clock) for a random pulse train is called an eye pattern. This pattern must have a central clear area to allow the two (or more for some line codes) pulse levels to be distinguished by a receiving circuit. Here is a marginal eye pattern for NRZ on the left, and a better one for AMI on the right (see Section 37).
Fig 36.13
37. The AMI Line Code
Pulse Shape. The pulse shape is the same as for unipolar NRZ ,
Fig 36.2
Xpulse(ω) = (VT1) sinc(ωT1/2)
(36.1)
Ppulse(ω) = (1/2π) V2T1 sinc2(ωT1/2)
However, we shall do the analysis below for a general xpulse(t) and insert the box shape at the end.
Coding: Alternate Mark Inversion (AMI) 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 pulse polarity is the negative of that used for the previous encoded 1 pulse, so the 1 polarities are alternated, as in this example
Fig 37.1
Coefficients αm,n and β: 0 is coded with amplitude B = 0, but a 1 is coded with either A = +1 or A = -1, so we have A = ± 1, B = 0. Because there is now correlation between different locations m and n in the pulse train, we can no longer use the simple results of box (35.17). We have to back up to an earlier point in the development. Our starting point will be equation (35.2) which we repeat here, averaging over the statistical ensemble (yn real),
<P(ω)> = T1 Ppulse(ω) (1/T) !Syntax Error, I !Syntax Error, I αn,m eiω(m-n)T . (35.2)
where αn,m ≡ <ym yn> and β ≡ <yn2> = αn,n
Breaking the double sum into two terms as done in Section 35, we obtain this new version of (35.7), valid when there is correlation between pulse train positions m and n,
<P(ω)> = T1 Ppulse(ω) (1/T) { !Syntax Error, I !Syntax Error, I αn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (37.1)
We develop things as usual for a general pulse shape, but in the end we will use a square pulse as shown in the figure above. The double sum in (35.2) is < | Y"(z) |2> where Y"(z) is the Z Transform of yn from box (24.37).
Consider now the expressions given in (35.6) for the statistical averages <yn2> and <ymyn>. We 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
<yn2> = [p]AA + [(1-p)] BB = [p]AA = [p] (±1) (±1) = p (37.2)
That was the easy one.
For m ≠ n, we have a much harder problem. Consider
<ymyn> = [pp] AA' + [p(1-p)] AB' + [(1-p)p]BA' + [(1-p)(1-p)]BB'
= [pp] σ σ' + [p(1-p)] σ 0 + [(1-p)p] 0 σ' + [(1-p)(1-p)] 0 0
= p2 σ σ'
where σ = ±1 and σ' = ±1. Here p2 is the probability that both slot positions ym and yn are coded for 1. This can happen in four different ways, as illustrated here,
Fig 37.2
By symmetry, the probability of cases 1 and 2 is the same, and the probability of cases 3 and 4 is the same. This is perhaps not totally obvious, but the reason will become clear below when we talk about legal pulse patterns.
Given that both m and n are coded for 1, let X/2 be the total probability for the case 1, and Y/2 be the total for the case 3. Then we can write
<ymyn> = (+1)(+1) p2X/2 + (-1)(-1) p2X/2 + (+1)(-1) p2Y/2 + (-1)(+1) p2Y/2
= p2(X-Y) .
Given that both m and n are coded for a 1, since we have enumerated all the cases, we must have
X + Y = 1 // probability of getting any of the four cases.
Our task then is to compute probabilities X and Y.
For cases 1 and 2 taken together, X is the probability that the gap between the coded 1's is filled with a legal sequence of pulses. This is the key statement and the reader may want to ponder the previous sentence thinking about probability as the number of legal ways divided by the total number of ways. Only the legal ways can show up in a statistical ensemble.
If the gap is "legal", there must be an odd number of coded 1's in the gap, due to the AMI alternation coding rule. Similarly, Y is the probability that there are an even number of coded 1's in the gap. Define,
k = |m-n| - 1 = size of gap
and think of X and Y as depending on k, so we write Xk and Yk.
Note that Y = Yk = (1-Xk) = probability that gap has even number of coded 1's. So far, we add k labels to our results shown above,
<ymyn> = p2(Xk-Yk) = p2 (2Xk - 1) k = |m-n| - 1 . (37.3)
Assume we have a gap of size k and there exists some Xk and Yk we don't yet know. What can be said about X and Y if the gap is increased to size k+1 by adding one more pulse period in between? Claim:
Xk+1 = Yk p + Xk (1-p) = probability of having an odd number of coded 1's in gap k+1
Explanation:
Yk is the probability the k gap had an even number of coded 1's. In order to make the k+1 gap have an odd number of coded 1's we have to put a coded 1 in the new space, which has probability p.
This gives the first term Yk p .
Xk is the probability the k gap had an odd number of coded 1's. In order to make the k+1 gap have an odd number of coded 1's we have to put a coded 0 in the new space, which has probability (p-1).
This gives the second term Xk (1-p) .
Since this exhausts the ways we can get from k to k+1, Xk+1 has the probability shown above. We could write a similar expression for Yk+1 but it is not needed. Since Yk = 1-Xk we then have
Xk+1 = (1-Xk) p + Xk (1-p) = p - pXk + Xk- pXk = (1-2p)Xk + p . (37.4)
Now define,
a ≡ (1-2p) => p = (1-a)/2 and 1-p = (1+a)/2
Then the above reads,
Xk+1 = aXk + p . (37.5)
This is a difference equation (recurrence relation) which we want to solve for Xk. If there is no gap at all (k=0), we have two adjacent identical pulses which is illegal so X0 = 0. If the gap is k = 1, then the middle element must be different from the two ends, so X1 = p, consistent with (37.5). We now examine the recurrence relations:
X0 = 0
X1 = p
X2 = a(p) + p = p(a+1)
X3 = a[p(a+1]+ p = p(a2+a +1)
....
Xk = p (ak-1 + ..... + a2 + a + 1)
The geometric series can be summed in the usual manner and yields
Xk = p (1 - ak)/(1-a) = p (1 - ak)/2p = (1 - ak)/2 . (37.6)
The same result can be obtained from Maple in this manner :
Inserting this result into (37.3) gives
<ymyn> = p2 (2Xk - 1) = p2 (2[(1 - ak)/2] - 1) = p2 ( (1 - ak) - 1) = - p2ak
= - p2 a[|m-n| - 1] = (-p2/a) a|m-n| . (37.7)
Therefore, we have our final results for the coefficients
αm,n ≡ <ymyn> = (-p2/a) a|m-n| m ≠ n // a ≡ (1-2p)
β ≡ <yn2> = p . (37.8)
Spectrum. The starting point is (37.1) which we repeat here,
<P(ω)> = T1 Ppulse(ω) (1/T) { !Syntax Error, I !Syntax Error, I αn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (37.1)
The second double sum is the same as in the uncorrelated case,
!Syntax Error, I !Syntax Error, I [1] = !Syntax Error, I !Syntax Error, I δm,n [1] = !Syntax Error, I [1]
which we set later to [2πδ(0)] or (2N+1) depending on whether we have an infinite or finite pulse train.
The first double sum is different and we write it using (37.8),
!Syntax Error, I !Syntax Error, Iαn,m [ eiω(m-n)T] = !Syntax Error, I !Syntax Error, I(-p2/a) a|m-n| b(m-n) b ≡ eiωT .
Ignoring for the moment the (-p2/a) factor, we painfully process the double sum in many steps,
= !Syntax Error, I !Syntax Error, I a|m-n| b(m-n) (37.9)
= !Syntax Error, I [!Syntax Error, I(b/a)m-n +!Syntax Error, I (ab)m-n ] s = m-n+1 r = m-n-1
= !Syntax Error, I [!Syntax Error, I(b/a)s-1 + !Syntax Error, I(ab)r+1 ] = !Syntax Error, I [!Syntax Error, I(b/a)–s-1 + !Syntax Error, I(ab)r+1 ]
= !Syntax Error, I [!Syntax Error, I(a/b)s+1 + !Syntax Error, I (ab)r+1 ] = [(a/b)!Syntax Error, I(a/b)s + (ab) !Syntax Error, I (ab)r ] !Syntax Error, I[1]
= [ (a/b) + (ab) ] !Syntax Error, I[1] = [ + ] !Syntax Error, I[1] = !Syntax Error, I[1] .
We note that this double sum is valid for |a| < 1 since |b| = 1. In the complex a-plane, the circle of convergence is |a| = 1. The sum is valid in the limit a→-1, but as a→+1, if b = 1 (ω = 0 or n2π), a branch point at a = 1 is encountered and the sum is invalid. For example, if the result above is evaluated for ω = 0 and a = 1, the final ratio shown is -1, which suggests that adding positive quantities gives a negative result! The correct way to do all this work is with finite N and then limit N→∞, and this will be done in more detail for the Change/Hold line code treated in the next section.
We let Maple reduce the ratio where we use b = eiα = eiωT (ignore right side below for now)
Thus we conclude that
!Syntax Error, I !Syntax Error, Iαn,m [ eiω(m-n)T] = (-p2/a) !Syntax Error, I[1] .
The curly bracket in (37.9) is then, since β = p,
{ ... } = [ -p2 + p] !Syntax Error, I[1] .
The square bracket is evaluated by Maple as shown on the right above, so using p = (1-a)/2 we get
{ ... } = !Syntax Error, I[1] = !Syntax Error, I[1]
where one could write (1-a2) = (1-a)(1+a) = 4p(1-p) in the numerator. So (37.9) now reads
<P(ω)> = Ppulse(ω) (T1/T) !Syntax Error, I[1] a ≡ (1-2p) .
The sum is either 2πδ(0) for the infinite series, or (2N+1) for the finite series. In either case we write the sum as T/T1 as in box (34.4), and the final result for our AMI line code is
<P(ω) > = Ppulse(ω) a = (1-2p) (1-a2) = 4p(1-p) . (37.10)
Using x = ω/ω1 = fT1, this can be written in these alternate forms (the last form uses (33.24)),
<P(ω) > = Ppulse(ω) a = (1-2p) (1-a2) = 4p(1-p) (37.11)
<P(f) > = 2π Ppulse(f) a = (1-2p) (1-a2) = 4p(1-p) (37.11a)
<P(f) > = 4p(1-p) |Xpulse(f)|2 (1/T1) (37.11b)
where we recall from the text after (1.4) that X(ω) = X(f). This last result agrees with Bennet and Davey (19-123) but they have a leading factor 8 instead of 4. Perhaps this is because they regard the frequency range for f as (0,∞) instead of (-∞,∞) so the left part of the spectrum is folded over to the right side giving them an extra factor of 2.
Note that the AMI spectrum is completely continuous, there is no discrete part at all. The discrete part previously arose from the ΣnΣm≠n double summation as in (35.9), but here we see no such discrete spectrum generated. It was dispersed into the continuum by the correlation effect between legal bit patterns.
Setting p = 1/2 gives a = 0 and therefore
<P(ω) > = Ppulse(ω) sin2(πx) p = 1/2 . (37.12)
Selecting a box of height V and width T1 we have from (36.1)
Ppulse(ω) = = = V2 (T1/2π) sinc2(πx)
so that
<P(ω) > = V2(1/ω1) sinc2(πx) sin2(πx) p = 1/2 x = ω/ω1 (37.13)
<P(f) > = V2T1sinc2(πfT1) sin2(πfT1) p = 1/2 x = fT1 (37.13a)
This last result agrees with Xiong (2.34) where the code is called AMI-NRZ.
Plot: Ignoring now the overall factor (V2/ω1) [ or V2T1] we get this AMI p = 1/2 power spectrum
Fig 37.3
This shape is the same as the continuous part of the Manchester spectrum, but the first zero is at 1 instead of 2 since the pulse AMI pulse is twice as wide as the Manchester pulse.
The AMI Limit as p→ 0 (a → +1)
In this limit, we know that our pulse train is just the constant value 0 so <P(ω) > = 0. As noted earlier, our formula is invalid in this limit at ω = 0 or 2πn. Still, it is interesting to see what it says:
<P(ω) > = Ppulse(ω) = Ppulse(ω) [sin2(ωT1/2)]
Using this limit from Appendix A
lima→+1 (1/π) = !Syntax Error, Iδ(k - mπ) (A.23c)
we find that
<P(ω) > = Ppulse(ω) [sin2(ωT1/2)] π !Syntax Error, Iδ(ωT1/2 - mπ)
= Ppulse(ω) π !Syntax Error, I[sin2(mπ)] δ(ωT1/2 - mπ) = 0
and our expression for <P(ω) > happens to give the correct answer. The correct expression for <P(ω) > in this limit of a = +1 (which includes delta spikes including at ω = 0) gives this same answer due to the sin2 factor. This subject comes up again with the Change/Hold line code in Section 38.
The AMI Limit as p→ 1 (a → -1)
First of all, we can see that in this limit the AMI waveform has alternating-sign pulses. With V = 1, this waveform matches that shown in (34.21),
P(ω) = Ppulse(ω) !Syntax Error, I δ(x - m/2) x = ω/ω1 . (34.21)
Somehow in this limit, the all-continuous AMI spectrum becomes all-discrete! How exactly does this happen? Consider again our continuous AMI result,
<P(ω) > = Ppulse(ω) a = (1-2p) . (37.14)
It seems possible that this becomes discrete because when a = -1, (1-a2) = 0 and <P(ω) > = 0 except possibly at singular points where the denominator vanishes. In Appendix A it is shown that
lima→-1 δ8(k, a) = lima→-1 (1/π) = !Syntax Error, Iδ(k-mπ/2) . (A.25a)
Therefore we may write
<P(ω) > = Ppulse(ω) π δ8(πx,a)
→ Ppulse(ω) π!Syntax Error, Iδ(πx-mπ/2) = Ppulse(ω)!Syntax Error, Iδ(x-m/2)
and this agrees with our expected result shown just above.
The coefficient averaging done in this Section for the AMI line code spectrum is based on the excellent discussion of Bennett and Davey p338-341.
38. The Change/Hold Line Code
There are surely more efficient ways to compute the results given below, but the method shown provides a good exercise in directly calculating <ymyn>. The method is very similar to that used for the AMI line code in Section 37. At the end, we apply the results to the NRZI line code.
Pulse Shape:
The pulse shape is the same as for unipolar NRZ,
Fig 36.2
Xpulse(ω) = (VT1) sinc(ωT1/2)
(36.1)
Ppulse(ω) = V2(1/ω1) sinc2(ωT1/2) .
In place of amplitude V 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), while 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 B A B B B A]
Fig 38.1
Again we shall assume an arbitrary pulse shape and insert the box-pulse at the end.
Coefficients αm,n and β:
The spectrum has the same form given in (37.1) for the AMI code,
<P(ω)> = T1 Ppulse(ω) (1/T) { !Syntax Error, I !Syntax Error, I αn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (37.1)
where αn,m ≡ <ym yn> and β ≡ <yn2> = αm,m
and our task is now to compute αn,m and β for the Hold/Change line code.
First consider
<yn2> = [q]A2 + [(1-q)] B2 ,
where q is the probability that slot n has 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.
Fig 38.2
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 amplitude A in the statistical pulse train. 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 train. 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)
Proof: If it was an AA to start 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 from (38.3),
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 (38.4) and (38.7) 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 solves this recursion equation as follows, using (38.5) that X0 = (1/2)(1-p),
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 from (38.8),
<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 ] a ≡ 1-2p
β = <yn2> = (A2+B2)/2 . (38.12)
To save space, 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.1) quoted above which we repeat here ,
<P(ω)> = T1 Ppulse(ω) (1/T) { !Syntax Error, I !Syntax Error, I αn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (37.1)
As in the AMI case, the β term in {...} is just
β!Syntax Error, I !Syntax Error, I [1] = β !Syntax Error, I [1] . (38.16)
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.17)
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 double 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 ] . (38.18)
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→∞. We continue, doing this making use Appendix A,
= ( 2πδ5(ωT1,N) )2 - (2N+1) // from (A.30)
= (2N+1) [ ( 2πδ5(ωT1,N) )2/ (2N+1) - 1 ]
= (2N+1) [ (2πδ6(ωT1,N) - 1 ] . // from (A.20)
Then we return to N = ∞ and use
limN→∞ δ6(k,N) = !Syntax Error, Iδ(k-2πm) (A.21)
to get
!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 reinstall d and assemble the pieces to get
<P(ω)> = Ppulse(ω) (T1/T) { c + β - d + d !Syntax Error, I2π δ(ωT1-2πm) } !Syntax Error, I[ 1 ] .
(38.17) (38.16) (38.19) times d
Recalling (38.15) that β - d = c,
<P(ω)> = Ppulse(ω) (T1/T) { c [ +1] + d !Syntax Error, I2π δ(ωT1-2πm) } !Syntax Error, I[ 1 ] .
Using the fact (33.22) that Σn=-∞∞[1] = T/T1 for both the infinite and finite pulse train cases, 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 (sb) expression:
so that
[ +1] =
and then here is the final result for the 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 (a confidence-building measure).
Limit A → B: Setting A = B in (38.21) gives
<P(ω) > = Ppulse(ω) { A2!Syntax Error, I2π δ(ωT1-2πm) } . (38.22)
In the case that the pulse is a box of unit height we use (34.22),
Ppulse(ω) = (1/ω1) sinc2(ωT1/2) (38.23)
to 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 with alternating 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 the Change/Hold spectral power density (38.21) becomes
<P(ω) > = Ppulse(ω) { [ ]2 !Syntax Error, I2π δ(ωT1-mπ) + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } .
Installing from (34.22) the unit-height 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 (1/π2) !Syntax Error, I(1/m2) δ(ω - mω1/2)
giving a final result,
<P(ω) > = [ ]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 from (38.21),
<P(ω) > = Ppulse(ω) { [ ]2 !Syntax Error, I2π δ(ωT1 - 2mπ) + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
= Ppulse(ω)!Syntax Error, I2π δ(ωT1 - 2mπ) . (38.26)
Ignoring the leading factor, this agrees with the first line of (33.25) which was developed for a simple pulse train with unit amplitudes yn = 1. This result then describes the average spectral power of an ensemble in which 50% of the pulse trains have amplitude A and the rest amplitude B.
Installing the square pulse spectrum (38.23) Ppulse(ω) = (1/ω1) sinc2(ωT1/2) gives
<P(ω) > = (1/ω1) sinc2(ωT1/2) !Syntax Error, I2π δ(ωT1 - 2mπ)
= (1/ω1) 2π δ(ωT1) = (T1ω1)-1 2π δ(ω)
= δ(ω)
which describes an ensemble of constant pulse trains 50% of which are x(t) = A and the rest x(t) = B.
Limit p→1/2 ( a → 0)
Recall again the general result (38.21),
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } .
(38.21)
The ratio becomes unity so the spectral power density is then
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } . (38.27)
Box-Shaped Pulse for general p: Start as just above with (38.21) and insert Ppulse(ω) for the box,
<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 [ a = 1-2p, x = ω/ω1 = fT1 ]
<P(ω) > = [ ]2 (1/ω1) sinc2(ωT1/2) + (1/ω1)[ ]2 δ(ω/ω1) (38.28)
<P(f) > = [ ]2 T1 sinc2(πfT1) + [ ]2 δ(f) . (38.28a)
Box-Shaped Pulse for p = 1/2 (a = 0):
<P(ω) > = [ ]2 (1/ω1) sinc2(ωT1/2) + [ ]2 δ(ω)
(38.29)
= (1/ω1) { [ ]2 sinc2(πx) + [ ]2 δ(x) } x ≡ = f T1
<P(f) > = T1 [ ]2 sinc2(πfT1) + [ ]2 δ(f) . (38.29a)
Ignoring the factor (1/ω1) in (38.29), we make this plot of <P(ω) >, which is the same as for unipolar NRZ but with different scaling factors for the two terms,
Fig 38.3
Example 1: Unipolar 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 0 1 0 0 0 1]
Fig 38.4
NRZI means NRZ Invert-on-1, where NRZ means non-return to zero (see comments at the start of Section 36). NRZI does not mean "NRZ inverted". Some other sources use A = 0 and B = 1 so then transitions happen on 0 instead of 1, as in the standard for USB (Universal Serial Bus). 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: From (38.21), and with a = (1-2p),
<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: From (38.28),
<P(ω) > = (1/ω1) sinc2(ωT1/2) + δ(ω) . (38.32)
Box-Shaped Pulse for p = 1/2 (a = 0): From (38.29),
<P(ω) > = (1/ω1) { sinc2(πx) + δ(x) } x ≡ = fT1 (38.33)
<P(f) > = T1 sinc2(πx) + δ(f) . (38.33a)
The plot is that of Fig 38.3, but with each factor being 1/4.
This spectrum is exactly the same as that for unipolar NRZ shown in (36.3b) 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 (36.3).
y'n = yn – yn-1 . // mod-2 math
This equation can be solved for yn in terms of y'n (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.
In contrast, for p ≠ 1/2, the NRZI power spectrum (38.32) is quite different from the NRZ power spectrum (36.3),
<P(ω) > = (1/ω1) [ sinc2(πx) + δ(x)] // unipolar NRZI (38.32)
a = (2p-1)
<P(ω)> == (1/ω1) [sinc2(πx) (1-a2) + (2p)2 δ(x)] // unipolar NRZ (36.3)
Example 2: Bipolar NRZI line code
data = [ 1 0 1 1 0 0 1]
encode = [ 1 -1 -1 1 -1 -1 -1 1]
In this case A = 1 and B = -1 so the general NRZI spectrum (38.21) becomes
<P(ω) > = Ppulse(ω) a = (2p-1) // bipolar NRZI (38.34)
and for p = 1/2 (a=0) we obtain,
<P(ω) > = Ppulse(ω) . // = (1/2π) T1 sinc2(ωT1/2) for the box pulse (36.1) (38.35)
In contrast, the Bipolar NRZ spectrum is Ppulse(ω) [(β-α) + α !Syntax Error, I2πδ(ωT1- 2πm) ] where
α = (1-2p)2, β = 1, and (β-α) = 4p(1-p) = 1-a2 so it's spectrum is
<P(ω)> = Ppulse(ω) [(1-a2) + (1-2p)2 !Syntax Error, I2πδ(ωT1- 2πm) ] // bipolar NRZ (38.36)
If p = 1/2 (a=0) then the Bipolar NRZ spectrum becomes
<P(ω)> = Ppulse(ω) (38.37)
which is the same as for Bipolar NRZI.
Appendix A: Delta Function Technology
The delta function is a mathematical tool that simplifies the description of mathematical relationships and allows one to consider certain idealized situations which cannot really exist in practice. The down side is that delta functions also serve to confuse readers who are not used to working with them. As later sections of this monograph were written, it became apparent that much of the development leans fairly heavily on "delta function technology", and one must understand delta functions at a somewhat deeper level than presented in Section 1. Of particular importance for spectral power density is our special meaning for the symbol δ(0) which appears in Chapter 6.
Early authors were squeamish about using the Dirac delta function (for example, Smythe). The theory of distributions was made rigorous in the 1935-1940 era by Sobolev and then Schwartz. The theory makes use of a class of extremely smooth functions and operators called linear functionals, and the reader can find a good presentation in Stakgold Chapters 1 and 5.
In brief, a functional T is just a mapping from some Hilbert Space to the real numbers. Usually that Hilbert Space is a set of reasonable functions defined on some interval. One can write a functional T in this notation: <T,f> = real number, some function of T and f. A functional is linear if it does the usual things like <T,f1+f2> = <T,f1> + <T,f2>.
A distribution t is any linear functional which acts on a certain subset of all possible functions f. It acts (theoretically) only on the subset of smooth functions φ called test functions. Thus, a distribution t is represented as <t,φ> = real number, a function of t and φ.
For example, every reasonable real function f defines a linear functional and thus a distribution in this manner, where we happen to use the interval (-∞,∞),
<f,φ> = !Syntax Error, Idx f(x)φ(x) .
Obviously the integral of real functions is some real number. The function f(x) must be reasonable enough so that the integral is well behaved (it is "locally integrable").
In this context, the linear functional which defines the distribution known as the delta function is given as
<δξ,φ> = φ(ξ) special case: <δ,φ> = φ(0)
or
!Syntax Error, Idx δ(x-ξ)φ(x) = φ(ξ) !Syntax Error, Idx δ(x)φ(x) = φ(0)
which we normally think of as the sifting property (2.3). The thing δξ is the distribution (the linear functional name), while the thing written as δ(x-ξ) is a "symbolic function" or "generalized function" associated with the distribution δξ. But loosely speaking, one refers to δ(x-ξ) as the distribution.
The general idea is that functions like δ(x) or δ'(x) have a meaning only when they are inside an integral. When they appear standing alone, they are "symbolic functions", such as in (4.6)
[ RC d/dt + 1] g(t) = δ(t). This is a symbolic or distributional equation which acquires meaning when both sides are placed inside the same integration. Formally that integration should be against a test function, but we can think of it as being against any reasonable function; the main idea is that everything must converge.
Although the above discussion is expressed in terms of one dimensional integrals, the concept applies in any number of dimensions. For example, δ(3)(r - a) is a delta function in 3D space.
The reader does not have to go learn the theory of distributions in order to follow this appendix, but it is good to know that such a theory exists and justifies the manipulations done all the time with delta functions.
(a) Models for Delta Functions and two derivations of (2.1)
By "model" we mean a sequence of smooth functions which all have unit area and which in some limit become isolated about a certain point on the real axis. The essential requirements for a delta function candidate are these:
limε→0 !Syntax Error, Idk δ(k) = 1 δ(k) = 0 for any k>0 and for any k<0 (A.1)
These equations say that the area under δ(k) is 1 and the function δ(k) is isolated to an infinitely small neighborhood of k = 0. There are an infinite number of possible delta function models, and we shall consider several in this appendix, some of which are used in the main text.
Our first candidate delta function model is the pulse shown in (9.1) with τ/2 set to 1/(2A),
δ1(k,A) ≡ A [ θ(k + ) - θ(k - ) ]
(A.2)
Fig A.1
In the limit A→∞, the box becomes very tall and very localized and maintains area 1, so
limA→∞ δ1(k,A) = δ(k) . (A.3)
Here are two candidates δ2(k,A) and δ2'(k,A) for which we just show engineering drawings and no equations,
Fig A.2
Both these candidates meet our requirements (A.1). Notice that both have unit area, and both get horizontally compressed around k = 0 as A→ ∞ and both get "tall". Thus we can say
limA→∞ δ2(k,A) = δ(k) (A.4)
limA→∞ δ2'(k,A) = δ(k) . (A.5)
For our first model δ1 we get δ(0) = +∞ while for the last two models we get δ(0) = -∞ and δ(0) = 0. It is in fact possible to construct a model in which δ(0) comes out being any desired real number. This number δ(0) has no significance because the point k = 0 is singular and the limit of δ(k) approaching this point from either direction does not exist. This is a much more serious matter than both limits existing and being different, which is the case for the Heaviside θ function which has a simple discontinuity at t = 0,
Fig A.3
From the left, the limit is 0, from the right, the limit is 1, and the Fourier-correct value at the discontinuous point is θ(0) = 1/2 (as shown in Section 8 (c)).
Our next model of interest is this,
δ3(k,A) ≡ exp( -k2/4A) (A.6)
which is a Gaussian centered at k = 0. This function has area = 1 for any A > 0,
The half-width of (A.6) occurs roughly when k2/4A = 1, so the full width is then Δk ≈ 4. Here is a plot with A = .05 for which Δk ≈ 4 = 0.9,
Fig A.4
As A→0, the Gaussian becomes taller and narrower and we then have
limA→0 δ3(k,A) = limA→0 exp( -k2/4A) = δ(k). (A.7)
Now consider this standard integral ( GR 3.323.2 where a = p2 and b = q ),
!Syntax Error, I dx exp[ - ( ax2 + bx ) ] = exp[ (b2/4a) ] . (A.8)
Setting a = A, b = -ik gives
!Syntax Error, I dx eikx exp(-Ax2) = exp(-k2/4A) = 2π { exp( -k2/4A) }
or
!Syntax Error, I dx eikx exp(-Ax2) = 2π δ3(k,A). (A.9)
Taking the limit A→0 of both sides gives
!Syntax Error, I dx eikx = 2πδ(k) . (A.10)
This then is our first distribution theory derivation of (2.1).
Here is another candidate delta function model :
δ4(k,B) ≡ = = sinc(Bk) (A.11)
The area under (B/π) sinc(Bk) is unity,
The half-width of (A.11) is determined roughly by the first zero of sin(Bk) = 0 so Bk = π.
The full width of the peak is then Δk = 2π/B. Here is a plot for B = 10 with Δk ≈ 2π/10 = 0.6.
Fig A.5
As B gets large, the function shrinks in around k = 0, and we then have
limB→∞ δ4(k,B) = limB→∞ = limB→∞ sinc(Bk) = δ(k) . (A.12)
Now consider this simple integral
!Syntax Error, I dx eikx = 2!Syntax Error, I dx cos(kx) = 2 = 2π = 2π δ4(k,B) (A.13)
Taking the limit as B→0 we find
!Syntax Error, I dx eikx = 2 !Syntax Error, I dx cos(kx) = 2π δ(k) (A.14)
and we have a second derivation of (2.1).
(b) Models for Periodic Delta Functions
We start here with the following delta function model,
δ5(k,N) ≡ (A.15)
and we shall be interested in the limit N→∞. This particular candidate is periodic in k with period 2π, as we now show:
sin[(N+1/2)(k+2π)] = sin [(N+1/2)k + 2π(N+1/2) ] = sin [(N+1/2)k + π ] = - sin [(N+1/2)k]
sin[(k+2π)/2] = sin(k/2 + π) = -sin(k/2)
=> = => δ5(k+2π,N) = δ5(k,N) (A.16)
Looking at the peak at k = 0 for large N, the half width occurs at the first zero of sin[(N+1/2)k] so Nk ≈ π. The full width is then Δk ≈ 2π/N. Here is a plot of the central peak for N = 60 for which Δk ≈ 0.1
Fig A.6
The periodicity of δ5 is apparent if we plot 2π δ5(k,N) for N = 60,
Fig A.7
where the peaks are separated by 2π. We are going to show that
limN→∞ δ5(k,N) = δ(k) + δ(k-2π) + δ(k+2π) + ..... = !Syntax Error, Iδ(k - 2πm) . (A.17)
As N gets large, each red region of activity becomes isolated more and more to the location of the putative delta function peak. The function approaches 0 anywhere between the peaks in the following sense (which has a very distributional flavor). As N → ∞, the numerator of δ5(k,N) oscillates faster and faster. When averaged over any tiny region of width ε, we can make N large enough to make this average be arbitrarily small. For example, when averaged over 1 nanometer of the above plot near k = 2, we can find a sufficiently large N to make this average be smaller than 10-100. This is the basic idea of something "washing out". Thus, we realize our delta function requirement that δ(k) = 0 for k ≠ n2π. The other requirement is that we must show that the area under each delta peak is unity.
Consider a close neighborhood of the central peak in Fig A.7. For large N, only a small region of k near the central peak |k| < Δk ≈ π/N contributes to δ5 as the Figures above show, since sin[(N+1/2)k] oscillates so fast beyond this region. In this region we can approximate sin(k/2) by (k/2) so that
δ5(k,N) ≡ ≈ = sinc[(N+1/2)k]
= sinc[(N+1/2)k] = δ4(k,N+1/2) // using (A.11)
We already know that the area under δ4 is 1, and that it is a viable delta function model. But since δ5 is periodic, all its peaks must look like δ4. Broadening our scope to the entire k axis, we conclude that
δ5(k,N) ≈ !Syntax Error, Iδ4(k - 2πm, N+1/2) for large N (A.18)
As N → ∞ we then get
limN→∞ δ5(k,N) = limN→∞ = !Syntax Error, Iδ(k-2πm) (A.19)
Our next multi-peak delta function candidate is the following,
δ6(k,N) ≡ = . (A.20)
This δ6 has the same periodicity of δ5 so has identical peaks spaced by 2π in k. Here is the central peak for N = 20
Fig A.8
and the width is Δk ≈ 2π/N, the same as for δ5. In the region of contribution, we again set sin(k/2) ≈ k/2 so that
δ6(k,N) ≈ = sinc2[(N+1/2)k] = sinc2[(N+1/2)k]
= (B/π) sinc2(Bk) B = N+1/2
The area under δ6 for any N is unity,
Since δ6 has the same periodicity as δ5, it has the same limit as N→∞
limN→∞ δ6(k,N) = limN→∞ = !Syntax Error, Iδ(k-2πm) (A.21)
Our interest in δ6 is that it is a delta function model formed by squaring another delta function model.
Consider next the following candidate delta function model,
δ7(k, a) ≡ (1/π) (A.22)
We are interested in this model as a → -1. Here is a motivating plot of δ7 for a = -0.9 :
Fig A.9
First of all, we can see that δ7 is periodic in k having period π, since both cos2(k) and cos(2k) have period π. Near a = -1, the denominator approaches 2 -2cos(2k) = 2(1-cos(2k)) = 4sin2(k) which vanishes at k = mπ for m integer. As long as we avoid these points, we can see that lima→-1 δ7(k, a) = 0 for k ≠ mπ due to the (1-a2) factor in the numerator. We need only show that the integral if δ7 is 1 when taken in a small region around one of the delta peaks. As before we consider the peak at k = 0 and compute the integral
limε→0 !Syntax Error, Idk [lima→-1δ7(k, a)] = limε→0 lima→-1!Syntax Error, Idk {(1/π) }
= lima→-1 limε→0!Syntax Error, Idk {(1/π) } // interchange limit order
= lima→-1 limε→0{(1-a2) !Syntax Error, Idk } // cos(k) ≈ 1 for ε << 1
= (1/π) limε→0 lima→-1 {(1-a2) !Syntax Error, Idk } // interchanged limit order again
In passing, note that the cos2(k) numerator factor really plays no role in things and we could have set it to 1 in δ7, but we kept it since it appears there in our AMI application. We now have Maple do the integral as follows,
We now continue the above evaluation,
= (1/π) limε→0 lima→-1{(1-a2) [ 2 tan-1( tanε ) ]
= -(2/π) limε→0 lima→-1{ tan-1( tanε ) }
= - (2/π) limε→0 { tan-1(- ∞) } // argument of tan-1 is (tanε) = (-∞)
= - (2/π) limε→0 { -π/2 } = - (2/π)(-π/2) = 1 .
In this model, the area under δ7 is not unity for any value of a, so we have to deal with both limits in our evaluation. There are Moore-Osgood theorem subtleties involving the limit order interchanges which could be reviewed, but we omit that level of detail.
Therefore we have shown that in the region of the central peak.
lima→-1δ7(k, a) = δ(k) -π < k < π
Since δ7 is periodic with period π, we know that the full result for all k is this
lima→-1δ7(k, a) = lima→-1 (1/π) = !Syntax Error, Iδ(k - mπ) (A.23a)
If we remove [cos2(k)] from the limit and then divide both sides of the right equation above by this value, we get on the right that [cos2(k)] = cos2(mπ) = 1, so the following is also true
lima→-1 (1/π) = !Syntax Error, Iδ(k - mπ) (A.23b)
which is really a more fundamental result. Changing a→-a this can also be written
lima→+1 (1/π) = !Syntax Error, Iδ(k - mπ) (A.23c)
Going back to (A.23a), if we change from k to k' = k + π/2, then
cos(k) = cos(k'-π/2) = sin(k')
cos(2k) = cos(2k'-π) = - cos(2k') .
Then δ7 may be written
δ7(k, a) ≡ (1/π) => δ7(k'-π/2, a) ≡ (1/π)
Then from (A.23a)
lima→-1δ7(k'-π/2, a) = !Syntax Error, Iδ(k'-π/2 - mπ) = !Syntax Error, Iδ(k'- [m+1/2]π) .
Change the summation index to n = 2m+1, so that m+1/2 = n/2. The n sum then includes only odd integers from -∞ to ∞, so
lima→-1δ7(k'-π/2, a) = !Syntax Error, Iδ(k'-nπ/2) .
Thus we have arrived at a new multi-delta function model δ8(k',a) ≡ δ7(k'-π/2, a) to get
δ8(k, a) ≡ (1/π) (A.24)
lima→-1 δ8(k, a) = lima→-1 (1/π) = !Syntax Error, Iδ(k-mπ/2) (A.25a)
This is the delta model needed to take the p→ 1 limit of our AMI spectrum in Section 37.
If we extract [sin2(k)] from the limit and divide both sides of the rightmost equation by this quantity and note that sin2(mπ/2) = 1 for all odd values of m, we get these alternate forms:
lima→-1 (1/π) = !Syntax Error, Iδ(k-mπ/2) (A.25b)
lima→+1 (1/π) = !Syntax Error, Iδ(k-mπ/2) (A.25c)
(c) Derivation of (13.2) and (13.3)
The first goal here is to derive this equation,
!Syntax Error, Ieink = !Syntax Error, I2πδ(k - 2πm) -∞ < k < ∞ (13.2)
Consider this finite version of the sum appearing on the left side of (13.2). We add and subtract 1 to obtain the sum as the these three terms,
!Syntax Error, I eink = (1 + eik + ei2k + ... + eiNk) + (1 +e-ik + e-i2k + ... + e-iNk) - 1 . (A.26)
The following is the standard formula for summing N terms of a geometric series,
1 + x + x2 + ... + xN = (1 - xN+1)/(1-x), (A.27)
Using this formula first for x = eik and then for x = e-ik, we may write (A.26) as
!Syntax Error, I eink = (1 - eik(N+1))/(1-eik) + (1 - e-ik(N+1))/(1-e-ik) - 1 (A.28)
In the first term multiply top and bottom by e-ik/2 to get
first term = (e-ik/2 - eik(N+1/2))/ ( e-ik/2- eik/2) = (e-ik/2 - eik(N+1/2)) / [-2isin(k/2)] .
Since the second term is the complex conjugate of the first, we get
second term = (eik/2 - e-ik(N+1/2)) / [2isin(k/2)]
Therefore
!Syntax Error, I eink = second term + first term - 1
= [ eik/2 - e-ik(N+1/2) – e-ik/2 + eik(N+1/2)] / [2isin(k/2)] - 1
= [ 2i sin(k/2) + 2isin[k(N+1)/2] ] / [2isin(k/2)] - 1
= [sin(k/2) + sin[k(N+1)/2] ] / [sin(k/2)] - 1
= sin[k(N+1)/2] / sin(k/2) // see also Gradshteyn and Ryzhik, p 37, 1.342.2
and we arrive at this result (valid for any positive integer N):
!Syntax Error, I eink = 2π { } (A.29)
From (A.15) we recognize {...} in (A.29) as δ5(k,N), so (A.29) says
!Syntax Error, I eink = 2π δ5(k,N) . (A.30)
We have thus derived equation (13.3).
We then take the limit N→∞ of both sides of this equation. The right side is given by (A.19) so we get
!Syntax Error, I eink = !Syntax Error, I2πδ(k - 2πm) -∞ < k < ∞ (A.31)
and we have derived (13.2) as promised. Both sides are visibly periodic with period 2π.
(d) Undoing the limit N→ ∞ : the meaning of δ(0)
Go back now to (A.29) and evaluate both sides at k = 0:
!Syntax Error, I 1 = 2π limk→0{ = limk→0{ } (A.32)
= (2N+1) limk→0 sinc[ (N+1/2)k] = (2N+1).
But this is exactly the sum shown on the left, so we find that our k = 0 limit of (A.29) happily says
(2N+1) = (2N+1) .
Taking the limit N→ ∞ of (A.30) and then the limit k → 0 we find that
!Syntax Error, I1 = [ 2πδ(0)] . (A.33)
We noted earlier that δ(0) is model dependent and for this model δ5 we get δ(0) = +∞. There are times when we want to "undo the limit" N→∞, to get
!Syntax Error, I 1 = [ 2πδ(0)]undone = (2N+1) . (A.34)
In this "undoing" we have to be careful not to use the delta function property δ(x/a) = a δ(x) since this is not valid in the "pre-limit".
Example 1
When we deal with pulse trains, we will be adding exponentials of the form exp(inωT1). From (A.31) we therefore have,
!Syntax Error, I einωT= !Syntax Error, I2π δ(ωT1- 2πm) . (A.35)
If we evaluate the above formula at ω = 0, we get
!Syntax Error, I 1 = !Syntax Error, I2πδ(- 2πm)
We now observe that δ(-2πm) = δm,0 δ(0), so we then get, as in (A.33),
!Syntax Error, I 1 = [ 2π δ(0)] (A.36)
We understand this as a symbolic limit. We can now undo the limit by replacing the sum endpoints with -N and N, and replace 2πδ(0) with (2N+1), and the result is consistent. Had we rescaled the delta function by saying for example δ(-2πm) = (1/2π) δ(-m), we would end up with a contradiction when we tried to "undo the limit".
Example 2
Consider the square of the sum shown in Example 1,
{!Syntax Error, I einωT}2 = {!Syntax Error, I2π δ(ωT1- 2πm) } 2 (A.37)
We write the RHS using m and k for our two summation indices, then we move both summations to the left. Inside this double sum we get
δ(ωT1- 2πm)δ(ωT1- 2πk) .
Since the first delta function will "pin" ωT1to the values 2πm, we can replace ωT1 with 2πm in the
second delta function and not change a thing, obtaining
δ(ωT1- 2πm)δ(2πm- 2πk) = δ(ωT1- 2πm) δm,n δ(0) . (A.38)
The Kronecker delta δm,n now removes one of the summations, and we end up with this result:
{!Syntax Error, I einωT}2 = [ 2πδ(0) ] { !Syntax Error, I2π δ(ωT1- 2πm) } . (A.39)
Evaluating the above at ω = 0 yields
{!Syntax Error, I 1 }2 = [ 2πδ(0) ] [ 2πδ(0) ] . (A.40)
And if we now undo the limit, we get this self-consistent result,
{!Syntax Error, I 1 }2 = [ 2πδ(0) ] [ 2πδ(0) ] = (2N+1)2 . (A.41)
Once again, δ(0) is really undefined and model dependent, but for our δ5 model we use 2πδ(0) just as a shorthand for the limit of (2N+1) as N→ ∞. The number (2N+1) will be the number of pulses in a pulse train and that pulse train becomes infinitely long as N→∞. In such a limit, quantities like average energy per pulse remain finite.
(e) The function Θ(a ≤ x ≤b) and related sums
In equation (2.2) we noted that [ θ(x) is the Heaviside step function of Fig 1, sometimes written as H(x) ]
!Syntax Error, Idx δ(x-y)f(x) = f(y)θ(b-y)θ(y-a) a < b (2.2)
which we write here as
!Syntax Error, Idx' δ(x'-x)f(x') = f(x)θ(b-x)θ(x-a) a < b (A.42)
The theta functions just set the result to 0 if the delta function hit lies outside the interval (a,b).
Function θ(x) is the Heaviside step function having these properties:
θ(x) = . (A.43)
These theta functions are always a bit confusing, and sometimes things are clearer using a different notation. Suppose we define the following new function,
Θ(a ≤ x ≤ b) ≡ Θ(a,x,b) ≡ a < b (A.44)
The notation Θ(a ≤ x ≤b) is merely a suggestive way to write the function Θ(a,x,b).
We shall now state and prove a few simple "theorem" regarding this function Θ.
Fact: Θ(a ≤ x ≤ b) = θ(b-x)θ(x-a) a < b (A.45)
Proof. We just exhaust all cases:
x < a: θ(b-x)θ(x-a) = θ(b-x) * 0 = 0
x = a: θ(b-x)θ(x-a) = θ(b-a)θ(a-a) = 1 * 1/2 = 1/2
a < x < b: θ(b-x)θ(x-a) = 1*1 = 1
x=b: θ(b-x)θ(x-a) = θ(b-b)θ(b-a) = 1/2 * 1 = 1/2
x > b: θ(b-x)θ(x-a) = 0* θ(x-a) = 0
Therefore, we may write (A.42) in this more friendly manner,
!Syntax Error, Idx' δ(x'-x)f(x') = f(x) Θ(a ≤ x ≤ b) a < b (A.46)
Fact: Θ(a ≤ x+c ≤ b) = Θ(a-c ≤ x ≤ b-c) (A.47)
Proof: The inequality notation makes this fact seem completely obvious, but we will just make sure by writing out both sides of the equation:
Θ(a ≤ x+c ≤ b) ≡ Θ(a,x+c,b) ≡ a < b
Θ(a-c ≤ x ≤ b-c) ≡ Θ(a-c,x,b-c) ≡ a-c < b-c
The next fact is not quite so obvious but is very useful:
Fact: !Syntax Error, I Θ(mα-α/2 ≤ x ≤ mα+α/2) = 1 α > 0 -∞ < x < ∞ (A.48)
Proof: Let's write out some of the terms in this sum. Here we show terms for m = -1, 0, and 1
.... + Θ(-α-α/2 ≤ x ≤ -α+α/2) + Θ(0-α/2 ≤ x ≤ 0+α/2) + Θ(α-α/2 ≤ x ≤ α+α/2) + ...
or
.... + Θ ( -(3/2)α ≤ x ≤ -(1/2)α ) + Θ( -(1/2)α ≤ x ≤ (1/2)α) + Θ((1/2)α ≤ x ≤ (3/2)α) + ...
The terms of the m sum therefore partition the real x axis into intervals of width α. If x falls within one of these intervals, then only the single term covering that interval contributes in the m sum and the sum is then 1. If x happens to fall exactly on the boundary between two intervals, then each of those intervals contributes 1/2 to the sum, and the sum is again 1. For example, if x = (1/2)α, then each of the rightmost two terms shown above contributes 1/2. Therefore the sum is 1 for all possible values of x.
Fact: !Syntax Error, I Θ(-α/2 ≤ x-mα ≤ +α/2) = 1 α > 0 -∞ < x < ∞ (A.49)
Proof: Apply (A.47) to the Θ function shown in the sum :
Θ(a ≤ x+c ≤ b) = Θ( a-c ≤ x ≤ b-c ) a = -α/2, c = -mα, b = α/2
Θ(-α/2 ≤ x-mα ≤ α/2) = Θ(-α/2+mα ≤ x ≤ α/2+mα)
Therefore, summing both sides and using (A.48),
!Syntax Error, IΘ(-α/2 ≤ x-mα ≤ α/2) = !Syntax Error, IΘ(-α/2+mα ≤ x ≤ α/2+mα) = 1
Corollary: !Syntax Error, I Θ(-α/2 ≤ x + mα ≤ +α/2) = 1 α > 0 -∞ < x < ∞ (A.50)
Proof: For any summand f(m) it is clear that !Syntax Error, If(m) = !Syntax Error, If(-m), so (A.50) is the same as (A.49).
(f) The product of two delta functions and more on δ(0)
This subsection is a sort of coda on the subject of δ(0) where we further attempt to justify the use of δ(0) even though δ(0) is formally undefined. We continue the distribution discussion begun at the start of this Appendix.
Consider a voltage pulse v(t) with a shape corresponding to one our delta function models. If this voltage is placed across a resistor of value R = 1, the energy in the pulse is given by
E = !Syntax Error, Idt v2(t) . energy = time integral of power
If we take the limit v(t)→δ(t), what happens? One is tempted to say
E = !Syntax Error, Idt δ2(t) = !Syntax Error, Idt δ(t) δ(t) = δ(0) !Syntax Error, Idt δ(t) = δ(0) * 1 = δ(0) = +∞
and one concludes (correctly) that the energy in a delta function pulse is infinite and positive. There are several problems with the this analysis.
First, we have already seen that with different δ models, we can get δ(0) to be any number we want, including +∞. -∞ and 0. Very embarrassing.
Second, the distribution <δξ2, φ> = δ(ξ)φ(ξ) is not a sensible distribution since this linear functional maps into a real number which is undefined at ξ = 0. In general the product of two distributions (in the sense we use it here) is not even defined in the realm of distribution theory, unless one or both distributions are regular functions. In that case we could have, for example,
< f δξ, φ > = < δξ, fφ> = !Syntax Error, Idx δ(x-ξ)f(x)φ(x) = f(ξ)φ(ξ) = well defined .
Some people have tried to incorporate products of singular distributions into distribution theory, but it is not clear how their results apply in our current context (see for example Colombeau 1990).
Note that there are other meanings of the product of two distributions. One is called a convolution product which is like f(g(x)) for functions, while the other involves multiple variables like δ(2)(r-r') = δ(x-x')δ(y-y'). Neither of these products involves products of symbolic functions in the same variable such as δ(t)δ(t).
So, how might we compute the energy in a delta function voltage pulse? The only reasonable thing to do is to back δ(t) off to one of its models and see what happens. For example, suppose we take δ1(t,A) as stated in (A.2), which is the simple box model of height A and width 1/A. Then
E = limA→∞ { !Syntax Error, Idt [δ1(t,A)]2 }
Now [δ1(t,A)]2 is a box of width 1/A and height A2 so its area is A. Then
E = limA→∞ { A } = +∞ // recall δ(0) = +∞
Suppose we take our deviant delta function model (A.4) δ2(k,A) shown in Fig A.2 left. We get
E = limA→∞ { !Syntax Error, Idt [δ2(t,A)]2 }
Since the pulse is squared, the area under [δ2(t,A)]2 is 3A and we then get
E = limA→∞ { 3A } = +∞ // recall δ(0) = -∞
Finally, for the our second deviant model (A.5) δ2'(k,A) shown in Fig A.2 right we get
E = limA→∞{ A/2 } = +∞ // recall δ(0) = 0
Thus, we get E = +∞ regardless of the value of δ(0) in the model.
Despite this discussion which shows that δ(0) is undefined, we nevertheless use δ(0) with a particular model in mind because it allows us to avoid dealing with specific boundaries in equations.
In Example 2 of the previous subsection, we saw the use of 2πδ(0) as meaning 2N+1 for a very long pulse train starting at -N in the distant past and ending at +N in far future. We would rather think in terms of an infinite pulse train and 2πδ(0), but the physical meaning is a very long pulse train and 2N+1. It is just a convenient notation.
Another common example has to do with "box normalization" which in one dimension is the model presented as (A.13),
!Syntax Error, I dx eikx = 2π = 2π δ4(k,L/2)
!Syntax Error, I dx ei0x = L = 2πδ(0) .
In this case, we use 2πδ(0) to represent the length of a box which is some very large L. Rather than carry the large but finite L along in all equations, we can use 2πδ(0) as needed represent this long length.
The conclusion here is that we can use 2πδ(0) as a notational device provided we are very careful as to the meaning of that device. We must always know how to undo the limit, and that implies a specific delta function model for a specific application.
Appendix B: Derivation of a Certain Identity
Theorem: For N and s both integers (N > 0)
!Syntax Error, Ie+ims(2π/N) = N!Syntax Error, Iδs,mN . (B.1)
This identity is used in Section 27 (b) on the Discrete Fourier Transform.
To prove this relation, we shall first show that each side is periodic in s with period N, then we shall verify that the relation is true for s = 0,1,2...N-1. We will have then shown that the relation is true for all integer values of s.
First, give names to the two sides of (B.1)
f(s) ≡ !Syntax Error, Ie+ims(2π/N) g(s) ≡ N!Syntax Error, Iδs,mN .
Function f(s) is periodic as claimed because
f(s+kN) = !Syntax Error, Ie+im(s+kN)(2π/N) = !Syntax Error, Ie+ims(2π/N) eimkN(2π/N) = !Syntax Error, Ie+ims(2π/N) = f(s)
Function g(s) is periodic as claimed because ( m' ≡ m-k )
g(s+kN) ≡ N !Syntax Error, Iδs+kN,mN = N !Syntax Error, Iδs,(m-k)N = N !Syntax Error, Iδs,(m')N = g(s)
Thus, each side of (B.1) is periodic in s with period N.
Now, consider the proposed equality:
!Syntax Error, Ie+ims(2π/N) = N!Syntax Error, Iδs,mN . (B.1)
For s = 0, the above claims
!Syntax Error, I1 = N!Syntax Error, Iδ0,mN = N δ0,0 = N .
But this is true since the left side sum is obviously N as well. Thus, (B.4) is valid for s = 0.
For s = 1,2,3....N-1, we claim that on the left side of (B.1) we are adding N equally spaced points around a circle in the complex phasor plane, and therefore the sum on the left side is zero. Meanwhile, the right side is also zero because for any of these s values, there is no integer m such that s = mN hence δs,mN = 0. Thus, if one accepts the circle argument, one finds that for all these s values both sides of (B.1) vanish.
To avoid the circle construction, we can simply compute the left side of (B.1) using the formula
!Syntax Error, Ie+ims(2π/N) = 1 + x + x2 + ... + xN-1 = (xN- 1)/(x-1) with x = e+is(2π/N)
For s = 1,2,3....N-1 the phasor x = e+ims(2π/N) ≠ 1, so denominator (x-1) ≠ 0. Meanwhile,
xN = e+is(2π/N)N = e+is2π = 1 for any integer s
Therefore numerator (xN- 1) = 0 and the sum thus vanishes for these values of s.
Thus we have shown that (B.1) is valid for s = 0,1,2...N-1, and since both sides of (B.1) are periodic in s with period N, it must be that (B.1) is valid for all integers s.
Appendix C: The Fourier Transform and its relation to the Hilbert Transform
In this Appendix we refer to the Fourier Integral Transform simply as the Fourier transform. We develop more "facts" about Fourier transforms, including new notations, and present a set of closely related examples. The pf pseudofunction and principal part integrals are introduced in the context of what we call "the pole avoidance rule". The connection between the Fourier and Hilbert transforms is then used as an exercise in applying the developed methods.
(a) Fourier Transform Notations
Recall from Section 1 the statement of the Fourier transform, derived in Section 2,
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (1.1)
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (1.2)
We used lower case for a function of time like x(t), and upper case for the spectral components X(ω). Although convenient in many situations, this notation is a bit limiting for more general use, so we replace X(ω) with x^(ω). The above can then be written as,
x^(ω) = k!Syntax Error, Idt x(t) e-iωt projection = transform
x(t) = (1/2πk) !Syntax Error, Idω x^(ω) e+iωt expansion = inverse transform
Here we have added an arbitrary constant k to allow for other scalings of the Fourier Transform. The projection has k, the inversion has k-1 as shown. For us, k = 1, but other sources might have k = (2π)-1 or perhaps k = 1/ to make the two equations symmetric.
The first line defines the Fourier transform of some arbitrary function x(t), but the second line acts only on a function x^(ω) which is already a Fourier transform. We would like to have the second line act on an arbitrary function as well. To do this, we replace x^(ω) by f(ω) and treat the second line as an operation one applies to some arbitrary function f(ω),
f^-1(t) = (1/2πk) !Syntax Error, Idω f(ω) e+iωt inverse transform
This then defines an operation performed on f(ω) to generate f^-1(t) which is, by definition, the inverse Fourier transform of f(ω). So changing the dummy integration variable names both to u we get
f^(ω) = k!Syntax Error, Idu f(u) e-iωu Fourier transform of f(u)
f^-1(t) = (1/2πk) !Syntax Error, Idu f(u) e+iut inverse Fourier transform of f(u) (C.1)
We think of both these equations as defining certain operations on an arbitrary function f(u). The function f(u) must be in the class of functions described in Section 1(b) in order that the integral converge to a function, though the class rules may be violated if one allows the transform and/or its inverse to be a distribution.
From the first line of (C.1) we find that
f^(-ω) = k!Syntax Error, Idu f(u) e+iωu = k!Syntax Error, Idu f(-u) e-iωu = [f(-u)]^(ω)
from which we obtain
Fact 0: [f(-u)]^(-ω) = f^(ω) (C.2)
From the second line of (C.1) we find
f^-1(-ω) = (1/2πk) !Syntax Error, Idu f(u) e-iuω = (1/2πk2) k!Syntax Error, Idu f(u) e-iuω = (1/2πk2) f^(ω) .
We are dealing here with three distinct functions: f(u), f^(u) and f^-1(u), but we just showed that
Fact 1: f^-1(u) = (1/2πk2) f^(-u) (C.3)
so two of these three functions have a simple relationship.
Notice in Fact 1 that one cannot simply suppress the argument u on both sides since u appears on the left and –u appears on the right. When an argument is the same on both sides of an equation, or when an argument is not needed, it can be suppressed to reduce clutter.
The fact that the Fourier transform is valid means that the inverse Fourier transform of the Fourier transform of a function is that function. Similarly, the Fourier transform of the inverse Fourier transform of a function is that function. This was clear in (1.1) and (1.2) and in the new notation this becomes
Fact 2: [f^(ω)]^-1(t) = [f^-1(ω)]^(t) = f(t)
or
[f^]^-1 = [f^-1]^ = f (C.4)
This provides an example of suppressing arguments to declutter a simple equation. Notice that the constant k does not appear in Fact 2. Consider then this statement of Fact 2,
(f^)^-1(t) = f(t)
Fact 1 applied to f→f^ says
(f^)^-1(t) = (1/2πk2) (f^)^(-t)
so that
(1/2πk2) (f^)^(-t) = f(t)
or
(f^)^(t) = 2πk2 f(-t)
which then gives
Fact 3: f^^(t) = 2πk2 f(-t) (C.5)
FT of f(t) = f^(t) FT of f^(t) = 2πk2f(-t)
The first line says that applying the Fourier transform twice to a function gives 2πk2 times the function of negated argument (see Stakgold Vol II (5.55) with k = 1). Nothing new is happening here, it is all just notation. When k = 1/ the factor 2πk2 = 1 on the second line which is a strong motivation for that scaling, but we had other motivations for k = 1 as outlined in Section 5.
The three Facts just stated are independent of the sign of the phase in the Fourier transform definition.
Operator Notation. An alternative notation similar to that used for Laplace transforms is the following:
f^(ω) = F[f(u),ω] = F[f,ω] = F f(ω)
or
f^ = F f (C.6)
and for the inverse Fourier transform,
f^-1(t) = F-1[f(u),t] = F-1[f,t] = F-1f(t)
or
f^-1 = F-1f . (C.7)
The idea here is that F f = g is a new function obtained by acting upon function f with the Fourier transform operator F. Similarly F-1f = h is a new function obtained by acting upon function f with the inverse Fourier transform operator F-1. The three facts stated above can then be translated into this new notation.
Fact 1: f^-1(u) = (1/2πk2) f^(-u) → F-1[f(s),u] = (1/2πk2) F[f(s),-u]
F-1[f,u] = (1/2πk2) F[f,-u]
F-1f(u) = (1/2πk2) F f(-u) (C.3)
Fact 2: [f^(ω)]^-1(t) = [f^-1(ω)]^(t) = f(t) → F-1[F[f(ω),s],t] = F[F-1[f(ω),s],t] = f(t)
[f^]^-1 = [f^-1]^ = f → F-1F f = FF-1f = f (C.4)
Fact 3: f^^(t) = 2πk f(-t) → F[F[f(ω),s],t] = 2πk2f(-t)
F[F[f,s],t] = 2πk2f(-t)
F2f(t) = 2πk2f(-t) (C.5)
The last line of Fact 2 has a particular appeal, since F-1F = FF-1 = 1 , the identity operator.
(b) Principal Value Integrals and the Tick Notation
Consider the following integral,
!Syntax Error, Idx f(x) .
If f(x) is non-vanishing at x = a, and if a is real, this integral runs right through a pole at x = a. If a were complex, then the integral would run above or below the pole and one would be less concerned. If the intention really is to run the integration right through the pole, it is useful to make that fact very clear using some kind of notation. One defines the notion of "going through the pole" as the following limiting operation,
!Syntax Error, Idx f(x) = limε→0 [!Syntax Error, Idx + !Syntax Error, Idx] f(x) ≡ dx f(x) . (C.8)
Such an integration is referred to as a Cauchy Principal Value (or Principal Part) Integral. We defer to section (d) below the pf notation which formalizes the above definition as
!Syntax Error, Idx pf( ) f(x) ≡ dx f(x) ≡ limε→0 [!Syntax Error, Idx + !Syntax Error, Idx] f(x)
As an example, consider this case where a = 0 and f(x) = 1,
!Syntax Error, Idx = 0 .
Although 1/x "blows up" at x = 0, this integral as defined above is exactly 0. All contributions to this integral are real, since 1/x is real, so the integral has no imaginary part. A simple argument for result zero is that the integration range is even while the integrand is odd under x → -x, so contributions from the left side of x=0 exactly cancel those from the right side of x=0. If the integrand contained some f(x) which was even under x → -x, the same argument would apply and the integral would be 0, but for general f(x) the integral would not be 0.
Comment: If one tries to evaluate the integral using ln(x), one gets a pre-limit result ln[] + ln[]. After the limit, the first term gives ln[1] = 0 while the second term seems to give ln[-1] which one thinks of as ±iπ and we get a contradictory result that the real integral of a real integrand has an imaginary part. The problem is that this is a singular integral and the normal rules do not apply. The ±iπ reflects the fact that the integral is trying to avoid the pole by going above it or below it, whereas we really want to go right through it. Stakgold Vol. I Exercise 1.23 shows how this contradiction is resolved using a redefined log function, and the subject reappears below in our Pole Avoidance Rule discussion.
Here then are two notations used for integrals intended to run through poles,
dx f(x) ≡ P.V. !Syntax Error, Idx f(x) ≡ limε→0 [!Syntax Error, Idx + !Syntax Error, Idx] f(x) . (C.9)
The tick mark on the integration symbol suggests the idea of running through the pole as the ε limit from the two sides, but is not easy to typeset, so one often sees the letters P.V, PV, p.v., v.p. , P or some other set of letters to indicate the principle part integration. We shall use the tick mark notation. Our example is then
dx = 0 . (C.10)
In the next several sections we shall examine some closely related examples of Fourier transforms, some of which require use of the Principal Value integral. The examples are later summarized in section (g).
(c) Example: f(u) = 1/u
Projection/Transform:
Let f(u) = 1/u. Using the regular Fourier transform requires that the integral go right through the pole, so we have
(1/u)^(ω) = k!Syntax Error, Idu(1/u) e-iωu = k du(1/u) e-iωu . (C.11)
For ω ≠ 0 we can evaluate the integral this way,
du(1/u) e-iωu = du(1/u) [-isin(ωu)] = (-i) 2!Syntax Error, Idu sin(ωu)/u
= (-i) 2 sign(ω) {!Syntax Error, Idu sin(|ω|u)/u } = (-i) 2 sign(ω) {!Syntax Error, Idx sinc(x) } // x = |ω|u
= (-i) 2 sign(ω) { π/2 }
= -iπ sign(ω) . (C.12)
In the first step cos(ωu) was discarded since (1/u) cos(ωu) is an odd function of u. Once that is done, since sinc(x) = 1 at x = 0, there is no longer a pole at u = 0 so we have just a regular integral. The residual integral is half of (10.3).
If ω = 0, the integral is just du(1/u) = 0 based on the discussion of the previous section. One can combine these results by writing
du(1/u) e-iωu = -iπ sgn(ω) (C.13)
where
sgn(ω) ≡ // sometimes called signum(ω) (C.14)
This sgn(ω) function is related to the Heaviside step function by
sgn(ω) = 2θ(ω) – 1 (C.15)
where in particular sgn(0) = 2θ(0) – 1 = 2(1/2)-1 = 0.
Our conclusion is that the Fourier transform of 1/u is given by
(1/u)^(ω) = -iπk sgn(ω) . (C.16)
If we treat sgn(ω) like any other function, we can suppress the ω argument to write
(1/u)^ = -iπk sgn . (C.17)
In the general case of f^(u) → f^ we could suppress the u, but once the function is stated (such as 1/u), it is difficult to suppress the u and still know what the function is. Note that the u in 1/u is just a dummy variable and we could just as well write
(1/t)^(ω) = -iπk sgn(ω)
(1/t)^ = -iπk sgn . (C.18)
Inversion/Recovery:
How does the recovery work?
(1/2πk) !Syntax Error, Idω (1/t)^(ω) e+iωt = (1/2πk) !Syntax Error, Idω [-iπksgn(ω)] e+iωt
= (1/2π)(-iπ) !Syntax Error, Idω sgn(ω) e+iωt = (-i/2) !Syntax Error, Idω sgn(ω) [i sin(ωt]
= (-i/2) i 2 !Syntax Error, Idω sin(ωt) = !Syntax Error, Idω sin(ωt) = -(1/t)cos(ωt)|∞0 = -(1/t) [ cos(∞t) - cos(0)]
= (1/t) (C.19)
The distributional trick is to set cos(∞t) = 0. In more detail,
!Syntax Error, Idω sin(ωt) = limε→0 [!Syntax Error, Idω sin(ωt) e-εω ] = limε→0 = . (C.20)
Interchange:
We have just shown that
(1/u)^(ω) = -iπk sgn(ω) .
We can Fourier transform both sides to get
[(1/u)^(ω)]^(t) = -iπk [sgn(ω)]^(t)
so that
[sgn(ω)]^(t) = (1/-iπk) [(1/u)^(ω)]^(t) .
But according to Fact 3,
[(1/u)^(ω)]^(t) = [(1/u)^]^(t) = (1/u)^^(t) = 2πk2 (1/-t) = -2πk2/t .
Therefore
[sgn(ω)]^(t) = (1/-iπk) (-2πk2/t) = 2k/(it) = -2ik(1/t) . (C.21)
Thus we have learned the Fourier transform of the function sgn(ω). We could have computed this directly as follows:
[sgn(ω)]^(t) = k!Syntax Error, Idu sgn(u) e-itu = k!Syntax Error, Idu sgn(u) [-i sin(tu)] = (-i) 2k !Syntax Error, Idu sin(tu)
= (-2ik)(-1/t)cos(tu)|∞0 = (2ik/t)(0 - 1) = -2ik(1/t) .
(d) The Pole Avoidance Rule of Complex Integration
The upper picture on the left shows a real-axis integration contour in the ω-plane which passes just below a pole located at ω = +iε. We are interested in what happens as ε → 0. The upper picture on the right shows the contour passing just above a pole at ω = -iε and we have a similar interest there as ε → 0. The lower contour pictures show a certain contour deformation, and the pair of equations under each pair of drawings will be discussed below.
!Syntax Error, Idω f(ω) = dω f(ω) (1/ω) + iπ f(0) !Syntax Error, Idω f(ω) = dω f(ω)(1/ω) – iπ f(0)
= pf(1/ω) + iπδ(ω) = pf(1/ω) – iπδ(ω)
Fig C.1
We assume that f(ω) is such that the integrals converge and f(ω) is well defined at ω = 0. We are interested only in the limit ε→0.
Left Side. Consider the top left red arrow contour. If we try to take ε→0, the pole moves down and hits the contour, which is a poorly defined concept in complex integration. To prevent this from happening, we first make a tiny semi-circular deformation of the contour so it goes around ω = 0. One is certainly allowed to deform a contour and not change an integral, as long as the deformation hits no singularities. After doing this "for free" deformation, we then let the ε→0 so the pole moves down to the real axis. If we now evaluate the integral, we get two famous pieces: The first piece is the principle value integral discussed in section (b) above, namely,
dω f(ω) (1/ω) ≡ limα→0 [ !Syntax Error, I + !Syntax Error, I ] dω f(ω) (1/ω) .
The second piece is a half-circle counterclockwise contour around the pole which gives one half the pole residue which result is then (1/2) 2πi f(0) = iπf(0). In general, if a contour goes some percentage around a pole, it picks up that percentage of the reside, which we now demonstrate, letting ω = Reiθ ,
= = i !Syntax Error, Idθ = i(θ2-θ1) . // partial residue rule
If we go half way around the pole, then i(θ2-θ1) = iπ. So we have now derived the top left equation in Fig C.1.
Recall now from Appendix A that a distributional equation is one which gains its meaning when placed inside an integral. So consider
!Syntax Error, Idω f(ω) = !Syntax Error, Idω f(ω) [ pf(1/ω) + iπδ(ω) ] = !Syntax Error, Idω f(ω) pf(1/ω) + iπ f(0) .
Here both pf(1/ω) and δ(ω) are symbolic functions as discussed in Appendix A. The meaning of δ(ω) seems clear (sifting property) while the meaning of pf(1/ω) is precisely this:
!Syntax Error, Idω f(ω) pf(1/ω) ≡ dω f(ω) (1/ω) .
The letters pf stand for pseudofunction. Officially f(ω) should be a distribution theory "test function", but we just take it to be any reasonable function as described above. So we have now derived both equations on the left of Fig C.1.
Right Side. This is the same idea, but the required contour deformation is different, and since the semicircle then goes clockwise around the pole, we pick up minus half the residue which is – iπf(0). Now both equations on the right are derived. We have then proven the following distributional equation:
The Pole Avoidance Rule:
limε→0 = pf(1/ω) ± iπδ(ω) (C.22)
Notice that this rule has no connection with phase sign conventions of the Fourier transform. It really has nothing at all to do with the Fourier transform in fact. This "rule" seems to have no official name, so we have made one up. For more discussion of this subject see Stakgold Vol. I page 50 (1.27) and previous pages.
(e) Example: f(u) = 1/(u±iε)
Here we always imply the limit ε→0.
Projection/Transform:
Using the Pole Avoidance Rule (C.21) above, we may compute the Fourier transform of this f(u) as follows:
()^(ω) = k !Syntax Error, Idu e-iωu = k du(1/u) e-iωu ∓ iπk
The principal value integral was found in (C.13) to be -iπ sgn(ω) , so we find that
()^(ω) = –iπk sgn(ω) ∓ iπk = -iπk (sgn(ω) ± 1) .
Assume first the upper signs,
()^(ω) = –iπk sgn(ω) – iπk = -iπk (sgn(ω) + 1)
If ω > 0, the result is -2πik, and if ω < 0 the result is 0. So
()^(ω) = -2πikθ(ω) .
Now assume the lower signs
()^(ω) = –iπk sgn(ω) + iπk = -iπk (sgn(ω) - 1)
If ω > 0, the result is 0. If ω < 0, the result is +2πik. So
()^(ω) = 2πikθ(-ω) .
Combining these results we get the Fourier transform of :
()^(ω) = ∓ 2πik θ(±ω) . (C.23)
Inversion/Recovery:
(1/2πk) !Syntax Error, Idω ()^(ω) e+iωt = (1/2π) !Syntax Error, Idω [∓2πi θ(±ω)] e+iωt
= (1/2π)(∓2πi) !Syntax Error, Idω θ(±ω) e+iωt = (∓ i) !Syntax Error, Idω θ(±ω) e+iωt
First take the upper sign
= (– i)!Syntax Error, Idω e+iωt .
If t has a small positive imaginary part, the integral converges to (-1/it) to give
= (– i) (-1/it) = 1/t
but we write t as t+iε to show that it has this small positive imaginary part, so the result is
(1/2π) !Syntax Error, Idω ()^(ω) e+iωt =
as desired. Now we look at the lower sign
(+i)!Syntax Error, Idω e+iωt = (+i) !Syntax Error, I dω e-iωt
If t has a small negative imaginary part, the integral converges to (+1/it) to give
= (+i) (+1/it) = 1/t =
which is again the desired result.
Interchange:
We have just shown that
()^(ω) = ∓ 2πik θ(±ω)
where it is understood that ε → 0 on the left side, and either set of signs is valid.
We can Fourier transform both sides to get
[()^(ω)]^(t) = ∓ 2πik [θ(±ω)]^(t) .
But according to Fact 3,
[()^(ω)]^(t) = [()^]^(t) = ()^^(t) = 2πk2 .
Therefore
[θ(±ω)]^(t) = (∓ 2πik)-1 2πk2 = =
= ±ik = ±ik [ pf(-1/t) ∓ iπδ(-t) ] = ±ik [ -pf(1/t) ∓ iπδ(t) ] = ∓ i k pf(1/t) + π k δ(t)
and so we learn the Fourier transform of the Heaviside step function with either sign argument. The result with the + sign is verified immediately below. A more standard naming of the arguments yields
[θ(±t)]^(ω) = ±i k = ∓ i k pf(1/ω) + π k δ(ω) = k pf( ) + π k δ(ω) . (C.24)
(f) Example: f(u) = θ(u) using the Generalized Fourier Transform
We include this example only because it is related to the previous examples.
Projection/Transform:
From the first line of (C.1) the projection (Fourier transform) is given by
[θ(u)]^(ω) = k !Syntax Error, Idu θ(u) e-iωu = k !Syntax Error, Idu e-iωu .
The generalized Fourier transform was defined in Section 6. Recall that the recovery contour in the inversion formula passes below all singularities of f(u), so for this example that contour runs just below the real axis so as to put the pole at u = 0 above the contour. Thus, we are really interested in the projection evaluated at ω-iε, so we then have a convergent integral,
[θ(u)]^(ω-iε) = k !Syntax Error, Idu e-i(ω-iε)u = k !Syntax Error, Idu e-(iω+ε)u = k .
Taking the limit ε→0 we obtain the generalized Fourier transform of θ(u) valid for general complex ω,
[θ(u)]^(ω) = (C.25)
Inversion/Recovery:
We now evaluate the generalized Fourier inversion formula using the above projection,
(1/2πk) !Syntax Error, Idω f(ω) e+iωt = (1/2πk) !Syntax Error, Idω e+iωt
= (1/2πi) !Syntax Error, Idω e+iωt = θ(t) as explained below :
For t < 0, we close the contour down and pick up nothing giving 0.
For t > 0, we close the contour up and pick up the full pole residue to get (1/2πi)2πi= 1.
(g) Summary of Examples
Our convention uses k = 1, but see (C.1) for other conventions.
Function/Distribution Fourier transform Comment
x(t) X(ω) main text notation (k=1)
f(t) fh(ω) Appendix C notation
1/t -iπk sgn(ω) (C.16)
sgn(t) (C.21)
limε→0 = pf(1/t) ∓ iπδ(t) ∓ 2πik θ(±ω) (C.23)
θ(±t) k limε→0 = k pf( ) + πk δ(ω) (C.24)
θ(t) (generalized FT) (C.25)
Comment: Looking back at (C.11) in light of the pf notation, the formally correct version of (C.11) would be this
[pf(1/u)]^(ω) = k!Syntax Error, Idu pf(1/u) e-iωu = k du(1/u) e-iωu (C.11)
and then one would have this version of (C.18).
[pf(1/t)]^(ω) = -iπk sgn(ω) . (C.18)
Most tables of Fourier transforms omit the pf formality since things are clear without such notation.
(h) The Hilbert Transform and its relation to the Fourier Transform
The Hilbert Transform is defined as follows
fh(t) ≡ (1/π) dω ≡ H[ f(x),t] = H[f,t] . (C.26)
Again we show several different notations, though we shall mainly use fh(t). Changing the integration variable from ω to t' gives
fh(t) = dt' f(t') = !Syntax Error, I dt' pf() f(t') (C.27)
where we use the pf symbolic function introduced earlier. We recognize this as having the usual convolution form (3.1),
a(t) = !Syntax Error, I dt' b(t-t')c(t') sometimes written a = b * c (3.1)
where a = b * c becomes,
fh = pf( ) * f . (C.28)
The Convolution Theorem was stated in (3.6)
a(t) = !Syntax Error, I dt' b(t-t')c(t') A(ω) = B(ω) C(ω) (3.6)
or in our new notation, where for example a^(ω) = kA(ω),
a(t) = !Syntax Error, I dt' b(t-t')c(t') a^(ω) = k-1 b^(ω) c^(ω) . (3.6)
Therefore we obtain this diagonalized form of (C.27) in ω-space,
[fh]^(ω) = k-1 ( )^(ω) f^(ω) (C.29)
But from (C.16) we know that (see Comment at the end of section g above)
( )^(ω) = -i k sgn(ω) (C.30)
Therefore (C.29) becomes (the scaling factor is now gone since both sides are Fourier transforms),
(fh)^(ω) = -i sgn(ω) f^(ω) . (C.31)
This well-known result relates the Fourier transform of the Hilbert transform of a function directly to the Fourier transform of that function. We now make immediate use of this equation.
Since (C.31) can be applied to any function f (always assuming the Hilbert integral converges), we apply it first to g,
[(g)h]^(ω) = -i sgn(ω) (g)^(ω) (C.32)
and then we set g = fh to get
[(fh)h]^(ω) = -i sgn(ω) (fh)^(ω) . (C.33)
Installing (C.31) into the right side gives
[fhh]^(ω) = -i sgn(ω) [ -i sgn(ω) f^(ω)] = - f^(ω). (C.34)
Applying the inverse Fourier transform to both sides then gives
fhh(t) = -f(t)
or
fhh = -f (C.35)
or in operator notation,
H H f = -f . (C.36)
This says that application of the Hilbert transform twice to a function gives that function preceded by a minus sign (compare to Fact 3). We can apply H-1 to both sides to get
H-1 f = - H f (C.37)
and, in so doing, we have discovered the formula for the inverse Hilbert transform,
H-1f(t) = - (1/π) dω ≡ fh-1(t) . (C.38)
We can then apply this last equation to fh instead of f to get
H-1fh(t) = - (1/π) dω = (fh)h-1(t) = f(t) (C.39)
which gives us this Hilbert transform pair (in which the two members differ only by a sign),
fh(t) = (1/π) dω // projection = transform
f(t) = - (1/π) dω // inversion = recovery . (C.40)
We now make these replacements ω→ω', f → X, fh → Xh, t→ω to get
Xh(ω) = (1/π) dω' // projection = transform
X(ω) = - (1/π) dω' // inversion = recovery (C.41)
and this is a more familiar statement of the Hilbert transform pair. We have proved that this transform is valid by making use of its connection to the Fourier transform shown in (C.31).
About 13 pages of Hilbert transforms appear in Erdélyi ET2.
Example 1: Compute the Hilbert Transform of f(ω) = eiβω :
fh(t) = -(1/π) dω eiβω = -(1/π) dω' eiβ(ω'+t)
= -(1/π) eiβt dω' eiβω' = -(1/π) eiβt dω' (i) sin(βω') // x = βω'
= -(i/π) eiβt 2 sgn(β) !Syntax Error, Idx sinc(x) = -(i/π) eiβt 2 sgn(β) { π/2 } // as in (C.12)
= -i sgn(β) eiβt
Therefore
f(ω) = eiβω fh(t) = -i sgn(β)eiβt (C.42)
or in the notation of the main text
X(ω) = eiβω Xh(ω) = -i sgn(β)eiβω (C.43)
Example 2: Equation (C.42) is valid for any β, so it is valid for -β. Since the Hilbert transform is linear we can then superpose exponentials to get the following correspondences,
f(ω) = k Σβ gβ e-iβω fh(t) = -ik Σβ sgn(-β) gβ e-iβt
f(ω) = k !Syntax Error, I dβ g(β) e-iβω fh(t) = -ik !Syntax Error, I dβ sgn(-β) g(β) e-iβt
The last line can be written
f(ω) = g^(ω) fh(t) = +i [ sgn(β)g(β) ]^(t)
which then says
[g^(ω)]h(t) = +i [ sgn(β)g(β) ]^(t) .
If we suppress ω, then change t to ω, then β to t, and replace function name g by f, this says
(f^)h(ω) = +i [ sgn(t)f(t) ]^(ω) (C.44)
which we can compare with (C.31) which has the transforms in the reverse order
(fh)^(ω) = -i sgn(ω) f^(ω) . (C.31)
Alternate derivation of (C.44).
Start with (C.26) applied to f^ ,
(f^)h(t) ≡ (1/π) dω
or
(f^)h = pf( ) * f^
The diagonalized version is then, using (C.30),
a^(ω) = k-1 b^(ω) c^(ω)
or
((f^)h)^ = k-1 [-i k sgn(ω)] f^^(ω) = -i sgn(ω) f^^(ω) .
Use Fact 3 that f^^(ω) = 2πk2 f(-ω) to get
((f^)h)^(ω) = -i sgn(ω) 2πk2 f(-ω) = 2πk2 i sgn(-ω) f(-ω)
Now take the Fourier transform of both sides
((f^)h)^^(ω) = 2πk2i [sgn(-s) f(-s)]^(ω)
Use Fact 3 that ((f^)h)^^(ω) = 2πk2((f^)h)(-ω) to get
2πk2((f^)h)(-ω) = 2πk2i [sgn(-s) f(-s)]^(ω)
or
((f^)h)(-ω) = i[sgn(-s) f(-s)]^(ω)
or
((f^)h)(ω) = i [sgn(-s) f(-s)]^(-ω)
Finally we get to use Fact 0 that [f(-u)]^(-ω) = f^(ω) to obtain the final result
((f^)h)(ω) = i [sgn(s) f(s)]^(ω)
which is (C.44).
Appendix D: Probability Theory: how α and β are related to μ and σ
We first review some of the basics of random variables X and Y: expectation values, means, covariance, variance and standard deviation. We do this in a context in which each variable takes on a set of discrete values rather than continuous values. We then translate our various facts into the language of X,Y → Ym Yn where the latter are random variables associated with the amplitudes at positions m and n of a pulse train. The labels m and n add a notational complexity that is a little difficult to comprehend unless things are written out explicitly, which is done below.
(a) Random Variables X and Y
If X and Y are random variables which can take discrete values xk and yk, one can express the mean value of each variable as
μx = E(X) = Σk xk px(xk)
μy = E(Y) = Σk' yk' py(yk') (D.1)
where E(X) means the expectation value of X. The sum Σk is over all values in the set of values that X can take, and Σk' is over all values that Y can take. Probability px(xk) is the probability that X takes the value xk and similarly for py(yk'). If we have a very large ensemble of I systems we can measure the above quantities in this manner,
μx = E(X) = (1/I) Σi=1I x(i)
μy = E(Y) = (1/I) Σi=1I y(i) (D.2)
where i labels a particular system in the ensemble, and x(i) and y(i) are the values X and Y take in ensemble system i. The probability functions like px(xk) do not appear in (D.2), but they are present in spirit, being embedded in the "experimental data" like x(i).
The expectation value E(XY) is defined by
E(XY) = ΣkΣk' xk yk' pxy(xk,yk') (D.3)
where now pxy(xk,yk') is the joint probability that X has value xk when Y has the value yk'. One would measure E(XY) in this manner,
E(XY) = (1/I) Σi=1I x(i) y(i) . (D.4)
If the random variables X and Y are independent (no correlation), then
pxy(xk,yk') = px(xk) py(yk') (D.5)
and then it is obvious from the above definitions of E(XY), E(X) and E(Y) that
E(XY) = E(X)E(Y) . (D.6)
The covariance of X and Y is defined as,
cov(X,Y) = E( [X - μx] [Y - μy] ) = ΣkΣk' (xk - μx) (yk'- μy) pxy(xk,yk') (D.7)
and it could be measured for an ensemble in this way
cov(X,Y) = (1/I) Σi=1I (x(i) - μx) (y(i)- μy) (D.8)
where μx and μy would be the measured values of E(X) and E(Y) as shown above. If X and Y are independent variables then we use (D.5) in (D.7) to find that
cov(X,Y) = E( [X - μx] [Y - μy] ) = E(X - μx) E(Y - μy) . (D.9)
In the special case that X and Y are the same variable, we write cov(X,Y) = var(X), the variance of X, which is also defined as the square of the standard deviation σx,
var(X) ≡ σx2 ≡ cov(X,X) = ΣkΣk' (xk - μx) (xk'- μx) pxx(xk,xk') . (D.10)
But pxx(xk,xk') = δk.k'px(xk) because if X has value xk, it cannot also have a different value xk', so
pxx(xk,xk') = δk,k' px(xk) (D.11)
and then
var(X) ≡ σx2 ≡ cov(X,X) = Σk (xk - μx)2 px(xk) (D.12)
with experimental measurement
var(X) ≡ σx2 ≡ cov(X,X) = (1/I) Σi=1I (x(i) - μx)2 . (D.13)
Finally, we note that
cov(X,Y) = E( [X - μx] [Y - μy]) = E(XY) - μxE(Y) - μyE(X) + μxμyE(1)
= E(XY) - μxμy - μyμx + μxμy
= E(XY) - μxμy . (D.14)
When X and Y are the same random variable this says
var(X) ≡ σx2 ≡ cov(X,X) = E(X2) - μx2 . (D.15)
(b) Application to the Pulse Train Ensemble
In the above we set
X = Ym = random variable associated with the amplitudes ym(i) at pulse location m in pulse train
Y = Yn = random variable associated with the amplitudes yn(i) at pulse location n in pulse train
Things are a little complicated due to the extra labels m and n, but we can nevertheless carefully translate all the X and Y equations above. Also, we shall add the following extra notation for an expectation value to be consistent with our earlier work,
<x> ≡ E(X) <xy> ≡ E(XY) <x2> ≡ E(X2) . (D.16)
The first pair of equations above translate into the following:
μym = E(Ym) = <ym> = Σk (ym)k pym[(ym)k] = Σk (ym)k p[(ym)k] = μ
μyn = E(Yn) = <yn> = Σk (yn)k pyn[(yn)k] = Σk (ym)k p[(ym)k] = μ . (D.17)
Here (ym)k is the kth value in the set of all possible amplitudes that position m in the pulse train can have. For example, we might have (ym)1 = A and (ym)2 = B. For the pulse train, the set of allowed amplitude values is the same for any pulse in the train, and the probability distribution is also the same, yielding the simplifications shown above. In particular, the means μym and μyn don't depend on position m and n, so we can just call both these means μ. Here is how the above means would be measured for an ensemble,
μ = μym = E(Ym) = <ym>= (1/I) Σi=1I ym(i)
μ = μyn = E(Yn) = <yn>= (1/I) Σi=1I yn(i) . (D.18)
Next, for E(XY) we translate (D.3) to get ,
E(YmYn) = <ymyn> = ΣkΣk' (ym)k (yn)k' pym,yn[(ym)k, (yn)k']
E(YmYn) = <ymyn> = (1/I) Σi=1I ym(i) yn(i) . (D.19)
If Ym and Yn are uncorrelated (which requires that m ≠n ) then in analogy with (D.5),
pym,yn[(ym)k, (yn)k'] = pym[(ym)k] pyn[(yn)k] = p[(ym)k] p[(yn)k] (D.20)
and as in (D.6) we find that, in the case of no correlation,
E(YmYn) = <ymyn> = E(Ym) E(Yn) = <ym><yn> . m ≠ n (D.21)
Obviously if m = n, then Ym and Yn cannot be "uncorrelated" since they are the same random variable. If m = n, then we have instead this version of (D.11),
pym,ym[(ym)k, (ym)k'] = δk,k' pym[(ym)k] = δk,k' p[(ym)k] (D.22)
and then
E(Ym2) = <ym2> = Σk [(ym)k]2 p[(ym)k] (D.23)
which in experiment (over the ensemble) would be measured as
E(Ym2) = <ym2> = (1/I) Σi=1I (ym(i))2 . (D.24)
The covariance equations translated from (D.7) and (D.8) become
cov(Ym, Yn) = E( [Ym - μ] [Yn - μ] ) = ΣkΣk' ((ym)k - μ) ((ym)k'- μ) pym,yn[(ym)k, (yn)k']
cov(Ym, Yn) = (1/I) Σi=1I (ym(i) - μ) (yn(i)- μ) . (D.25)
The variance (and standard deviation) translations from (D.12) and (D.13) are.
var(Ym) ≡ σ2 ≡ cov(Ym, Ym) = Σk [(ym)k - μ]2 p[(ym)k]
var(Ym) ≡ σ2 ≡ cov(Ym, Ym) = (1/I) Σi=1I (ym(i) - μ)2 . (D.26)
Finally, (D.14) and (D.15) become,
cov(Ym, Yn) = E(Ym Yn) - μyxμyn = E(Ym Yn) - μ2
var(Ym) ≡ σ2 ≡ cov(Ym, Ym) = E(Ym2) - μ2 = <ym2> - μ2 => <ym2> = σ2+μ2 . (D.27)
(c) Main conclusions for the Pulse Train Ensemble
The following quantities are measured from the pulse train ensemble as follows,
<ym> = (1/I) Σi=1I ym(i) = μ (D.18)
<ymyn> = (1/I) Σi=1I ym(i) yn(i) any m and n (D.19)
<ym2> = (1/I) Σi=1I [ym(i]]2 = σ2 + μ2 (D.27) (D.28)
where we show how each quantity is related to symbols μ and σ. When the amplitudes at different locations in the pulse train are uncorrelated, we can further write
<ymyn> = <ym><yn> = μ2 m ≠n . (D.21) (D.29)
We can now restate equation (35.6) in this more statistically-oriented manner,
<ym> = μ = [p]A + [1-p]B
n ≠ m α ≡ <ymyn> = μ2 = { [p]A + [1-p]B }2 = [pp] AA + [p(1-p)] 2AB + [(1-p)(1-p)]BB
n = m β ≡ <ym2> = [p]AA + [(1-p)] BB = σ2 + μ2 (D.30)
which is to say
α = μ2
β = μ2 + σ2 = α + σ2
σ2 = (β-α) . (D.31)
Using our expressions for α and β we can compute σ2:
which says
σ2 = variance = [ p(1-p)] (A-B)2 . (D.32)
If p = 0 or p = 1, this variance vanishes as one would expect.
Appendix E: Table of Transforms
The following transforms appear in this document:
Fourier Integral Transform: x(t) aperiodic and continuous, X(ω) continuous, no image spectra
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (1.1)
x(t) = (1/2π)!Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (1.2)
Generalized Fourier Integral Transform: recovery contour passes below all singularities of X(ω)
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (6.4)
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt expansion = inverse transform (6.5)
Fourier Cosine Transform:
Xc(ω) = 2 !Syntax Error, Idt x(t) cos(ωt) projection = transform
x(t) = (1/π)!Syntax Error, Idω Xc(ω) cos(ωt) expansion = inverse transform (1.7)
Fourier Sine Transform:
Xs(ω) = 2 !Syntax Error, Idt x(t) sin(ωt) projection = transform
x(t) = (1/π)!Syntax Error, Idω Xs(ω) sin(ωt) expansion = inverse transform (1.8)
Fourier Integral Transform in Appendix C notation: k is an arbitrary convention constant
x^(ω) = k!Syntax Error, Idt x(t) e-iωt projection = transform
x(t) = (1/2πk) !Syntax Error, Idω x^(ω) e+iωt expansion = inverse transform
f^(ω) = k!Syntax Error, Idu f(u) e-iωu Fourier transform of f(u)
f^-1(t) = (1/2πk) !Syntax Error, Idu f(u) e+iut inverse Fourier transform of f(u) (C.1)
Fourier Series Transform: x(t) periodic and continuous with period T1, spectrum is discrete
x(t) = !Syntax Error, I xpulse(t - nT1) (14.1)
Complex form:
cm ≡ (1/T1) !Syntax Error, I dt xpulse(t) e-imωt = (1/T1) !Syntax Error, I dt x(t) e-imωt (14.16)
x(t) =!Syntax Error, Icm e+imωt (15.1)
cm = c(mω1) = (1/T1)Xpulse(mω1) (14.8) and (14.10)
Real form:
am ≡(2/T1) !Syntax Error, Idt xpulse(t) cos(mω1t) = (2/T1) !Syntax Error, I dt x(t) cos(mω1t) (15.6)
bm ≡ (2/T1) !Syntax Error, Idt xpulse(t) sin(mω1t) = (2/T1) !Syntax Error, I dt x(t) sin(mω1t) (15.7)
x(t) = a0/2 + !Syntax Error, I am cos(mω1t) + !Syntax Error, I bm sin(mω1t) (15.9)
Laplace Transform: Right-sided (causal) x(t) vanishes for t < 0, x(t) and X(s) are continuous
X(s) = !Syntax Error, Idt x(t) e-st projection = transform (6.9)
x(t) = (1/2πi) !Syntax Error, Ids X(s) e+is expansion = inverse transform (6.10)
Relation to the Fourier Integral Transform:
X(s) = X(s/i) X(ω) = X(iω) (6.8)
Digital Fourier Transform: x(tn) aperiodic, spectrum X'(ω) is continuous and contains image spectra
X'(ω) ≡ !Syntax Error, I∆t x(tn) e-iωt projection = transform (22.2)
x(tn) = !Syntax Error, Idω X'(ω) e+iωt expansion = inversion (22.4)
or
X'(ω) ≡ T1!Syntax Error, Ixn e-iωnT projection = transform xn = x(tn).
xn = !Syntax Error, Idω X'(ω) e+iωnT expansion = inversion
where: T1 = ∆t ω1 = 2π/T1 = 2π/∆t tn = n ∆t = n T1 .
Relation to the Fourier Integral Transform:
X'(ω) = !Syntax Error, IX(ω - mω1) = [ X(ω) + !Syntax Error, IX(ω - mω1) ] // image spectra (23.1)
Z Transform: x(tn) = xn is aperiodic, spectrum X"(z) is continuous and contains image spectra
X"(z) = !Syntax Error, Ixn z-n projection = transform (24.3)
xn = !Syntax Error, Idz X"(z) zn-1 expansion = inversion (24.4)
where contour C goes once counterclockwise around the unit circle in the z-plane.
Relation to the Digital Fourier Transform and the Fourier Integral Transform:
X"(z) ≡ X'(ω) = !Syntax Error, IX(ω - mω1) z = eiωT (24.1), (24.2)
Discrete Fourier Transform of a Pulse Train : x(tn) periodic, spectrum discrete, m integer
x(tm) = !Syntax Error, I xpulse(tm - nT1) sampled pulse train, tm = (m/N)T1
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) projection = transform (27.9)
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) expansion = inverse transform (27.11), (27.12)
Discrete Fourier Transform (DFT) : A is an arbitrary convention constant
c'm ≡ (A/N) !Syntax Error, Ixn e-imn(2π/N) m = 0,1...N-1 projection = transform
xn = (1/A) !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 expansion = inverse transform (27.22)
Hilbert Transform:
Xh(ω) = (1/π) dω' projection = transform
X(ω) = - (1/π) dω' expansion = inverse transform (C.41)
Detailed Summary of this Document
A brief summary may be found in the opening section before Chapter 1. The logical flow of the document is fairly complicated because so many interrelated topics are addressed, and because everything is derived from scratch for the reader to see. Hopefully this 12-page detailed summary can provide an intermediate level "map" of what is going on in the document.
____________________________________________________________________________________
Chapter 1: The Fourier Integral Transform and Related Topics ( 34 p)
Chapter 1 develops the basic theory of the Fourier Integral Transform and its Sine and Cosine cousins. This Chapter forms the underpinning of all subsequent Chapters. The Convolution Theorem receives special attention. The connection is made between the Laplace Transform and the "generalized" Fourier Transform applied to causal functions. Various "rules" are derived, and a connection is made between filter spectra and time-domain Green's Functions.
Section 1 introduces the Fourier Integral Transform, which in our notation appears as
X(ω) = !Syntax Error, Idt x(t) e-iωt projection = transform (1.1)
x(t) = (1/2π)!Syntax Error, Idω X(ω) e+iωt , expansion = inverse transform (1.2)
and discusses restrictions on functions for which the transform applies and is meaningful. The notions of a "pulse" and a "pulse train" are mentioned in passing. The connection is made between the Fourier Integral Transform and the Fourier Sine and Cosine Integral Transforms. This relationship provides a method of using large published tables of Sine and Cosine transforms to obtain Fourier transforms.
Section 2 provides a traditional arm-waving proof of the Fourier Transform, while a more substantial proof using bare-bones distribution theory is presented in Appendix A. The Fourier Transform is discussed as a particular instance of Sturm-Liouville theory and the important claim is made that the exponential functions form a complete orthogonal basis on the interval (-∞,∞).
Section 3 derives the Convolution Theorem,
a(t) = !Syntax Error, I dt' b(t-t')c(t') A(ω) = B(ω) C(ω) (3.6)
with comments about dimensions of the various functions, integral operators, diagonalization, and the generalization to Fourier analysis on continuous groups.
Section 4 essentially applies the Convolution Theorem to obtain the theory of filters and their transfer functions in the ω domain. The connection is made between the time-domain differential equation describing a filter and the Green's Function or propagator which is seen to be the response of the filter to a time domain δ impulse. A simple RC filter is treated in detail, then a second example is the same filter in the limit that RC is very large.
Section 5 discusses the set of convention choices we made in stating the Fourier Integral Transform, and why those choices were made: sign of the exponential phase, i versus j, and allocation of the 2π.
Section 6 presents a version of the Fourier Transform and Inversion which we loosely refer to as "the generalized Fourier Transform". In the inversion formula, the ω contour is displaced in such a way as to increase the size of the class of causal functions for which Fourier Transforms exist. The main feature here is the analytic continuation of a spectrum X(ω) off the real axis in the complex ω plane. When the variable substitution s ≡ iω is made, the generalized Fourier Transform applied to causal functions becomes the traditional Laplace Transform,
X(s) ≡ L[x(t), s] ≡ X(s/i) (6.8)
X(s) = !Syntax Error, Idt x(t) e-st (6.9)
x(t) = (1/2πi) !Syntax Error, Ids X(s) e+is (6.10)
Section 7 states various reflection rules involving the Fourier transform and defines a Hermitian function.
Section 8 presents several simple examples of Fourier transforms which show how violation of the Fourier requirements causes transforms to be distributions instead of functions. The last example computes the spectrum of the Heaviside step function θ(t) (a distribution) and briefly introduces the notions of principal part integration and spectra presented in the form of limits. Details appear in Appendix C.
Section 9 considers a simple box-shaped x(t) and its Fourier transform X(ω). This particular example plays a major role in many later Sections.
Section 10 derives the various Parseval's Formulas and shows how one of these formulas relates to the total energy in a pulse.
Section 11 derives the differentiation rule dx(t)/dt ↔ [iωX(ω)] and presents a few examples.
Section 12 derives the time translation rule x(t - t1) ↔X(ω) e-iωt.
Section 13 derives these two "exponential sum rules",
!Syntax Error, Ieink = !Syntax Error, I2πδ(k - 2πm) -∞ < k < ∞ (13.2)
!Syntax Error, I eink = 2π { } ≡ 2π δ5(k,N) -∞ < k < ∞ (13.3)
which are explored in more detail in Appendix A. These rules are important tools used later in processing expressions involving the power spectra of pulse trains.
____________________________________________________________________________________
Chapter 2: Pulse Trains and the Fourier Series Connection
Chapter 2 examines the Fourier Transform spectrum of a simple pulse train formed from a general pulse shape. Consideration of pulse trains of infinite length leads to a derivation of the Fourier Series Transform. The chapter concludes with a discussion of sample pulse trains formed from box and bi-phase pulses.
Section 14 computes the Fourier Transform spectrum of a simple pulse train (yn = 1).
Subsection (a) does this for an infinite pulse train. Although the spectrum of xpulse(t) is continuous, that of the pulse train is entirely discrete and consists of a set of delta function spectral lines.
Subsection (b) repeats the calculation for a finite simple pulse train, and this time the spectrum is found to be continuous. One can see exactly how this spectrum approaches the delta function lines as the length of the pulse train becomes infinite.
Section 15 in effect derives the traditional Fourier Series Transform from the Fourier Integral Transform of Chapter 1.
Section 16 obtains the spectrum of an infinite simple pulse train constructed from identical box pulses of width τ with rising edges separated by T1. As noted above, the spectrum is entirely discrete.
Section 17 develops some graphical aids to help understand pulse train spectra. The discrete delta function spikes track a certain envelope function which is in fact the pulse spectrum |Xpulse(ω)|. In certain simple cases, some of the delta spikes are missing because these spikes align with zeros of the pulse spectrum.
Section 18 discusses superposing a negative DC offset onto a positive box pulse train.
Section 19 constructs pulse trains using a certain "biphase pulse" instead of the box pulse. The spectra of these two pulse train types are compared. In a certain limit, the two become the same.
____________________________________________________________________________________
Chapter 3: Sampled Signals and Digital Transforms (53 p)
Chapter 3 deals with various digital forms of the Fourier Transform and their corresponding convolution theorems and applies these concepts to amplitude-modulated pulse trains (PAM signals) and to digital filters. Topics include image spectra, aliasing and Nyquist rate, group delay, FIR and IIR filters, poles, and impulse response. The first digital transform is called the Digital Fourier Transform which is an ω-domain version of the Z Transform whose variable is z = eiωΔt . The Z Transform and Discrete Fourier Transforms are then addressed for both periodic and aperiodic signals. A recurring example is a simple RC filter section.
Section 20 considers an amplitude-modulated pulse train x(t) = Σn y(t) T1δ(t - nT1). The spectrum of the pulse train is found to be X(ω) = Σm Y(ω - mω1), and image spectra arrive on the scene. The notions of aliasing and the Nyquist rate are described with some traditional drawings.
Section 21 addresses two filter topics: digital filter image spectra, and analog filter group delay.
Subsection (a) considers a digital filter as an approximation to a standard "LIT" analog filter. What happens to the convolution theorem in this approximation? The answer is given in (21.13) and we find that such a digital filter has image spectra. The notion of aliasing is illustrated in Fig 21.1.
Subsection (b) shows that, when a narrow pulse passes through an analog bandpass filter, it experiences group delay τd = dφ/dω where φ is the filter phase. It then follows that filters with linear phase have a constant group delay, which is desirable to maintain the fidelity of pulses passing through the filter. It is claimed that the same notion applies to digital filters.
Section 22 is the first of two sections devoted to what we call the Digital Fourier Transform X'(ω). This transform is stated above (22.6) and is compared side-by-side with the Fourier Integral Transform X(ω). The time domain digital convolution sum a = b * c of (22.6) (a digital filter) is found to have the simple diagonalized appearance A'(ω) = B'(ω)C'(ω) in the ω domain.
Section 23 concludes the presentation of the Digital Fourier Transform X'(ω).
Subsection (a) shows that the relation between X'(ω) and X(ω) is X'(ω) = Σm X(ω- mω1), which is exactly the form of main spectrum plus image spectra which occurred in both Sections 20 and 21. We then realize that the pulse train spectrum of Section 20 is just X(ω) = Y'(ω), where Y'(ω) is the Digital Fourier Transform of the signal y(t) whose samples yn are the amplitudes of an amplitude-modulated pulse train whose pulses are delta functions. Similarly, we realize that A(ω) = B'(ω)C(ω) is a compact way to write the frequency domain digital filter equation where B'(ω) has image spectra.
Subsection (b) contains a "summary box" for the Digital Fourier Transform.
Section 24 shows that the Digital Fourier Transform is really the Z Transform in disguise. Specifically, the Z Transform X"(z) = (1/Δt) X'(ω) where z ≡ eiωΔt. This last equation defines an analytic mapping between the ω plane and the z plane, as shown in Fig 24.1, which removes the redundancy present in the ω-plane picture. Various aspects of the Z Transform are then considered:
Subsection (a) states the digital convolution theorem in terms of the Z Transform.
Subsection (b) discusses the digital "unit impulse" signal in Z Transform notation.
Subsection (c) expresses time translation in Z Transform language, and here appears the famous notion that when a time domain signal is delayed one sample period, its Z Transform is multiplied by z-1.
Subsection (d) addresses the notion of a digital time derivative and its Z Transform.
Subsection (e) uses this derivative idea to analyze a digital RC filter. The impulse response of such a filter is compared with that of the analog RC filter studied back in Section 4. The responses are shown to be the same in the limit Δt→0.
Subsection (f) considers a general polynomial ratio form for a digital filter transfer function H"(z). It is shown that, in a certain class of cases, the absence of (non-zero) poles in this ratio results in a filter whose impulse response decays in a finite amount of digital time. Conversely, the presence of such poles results in a never-ending impulse response. These are the FIR and IIR filters and it is shown exactly how these are represented in z space and the time domain, where these filters are implemented with registers, constant multipliers and adders. When H"(z) has poles, the filter is IIR and has feedback. When H"(z) has no poles, the filter is FIR and has no feedback. [ FIR/IIR mean Finite/Infinite Impulse Response]
Subsection (g) revisits the digital RC filter considered in (e), and draws the z domain circuit in the standard IIR form Fig 24.7. An improved version of the digital RC filter is then trivially obtained.
Subsection (h) very briefly connects the idea of FIR and IIR filters with polynomial multipliers and dividers. Such circuits appear in scramblers and cyclic code error detection and correction algorithms.
Subsection (i) presents a "summary box" for the Z Transform
Section 25 considers the amplitude-modulated pulse train x(t) = Σn yn xpulse(t -tn) with an arbitrary pulse shape. It is shown that the Fourier Transform spectrum of such a pulse train is X(ω) = Xpulse(ω) Y"(z) where Xpulse(ω) is the Fourier Transform spectrum of the pulse, while Y"(z) is the Z Transform of the sequence of pulse amplitudes yn, where Y"(z) = (1/Δt) Y'(ω). A summary box appears as equation (25.4).
Example 1 is a specific pulse train having a short sequence of amplitudes yn with a box-shaped pulse. The Digital Fourier Transform |Y'(ω)| is plotted using Maple, then |Xpulse(ω)| and |X(ω)| are plotted as well. The amplitudes yn are explicitly recovered from the Digital Fourier Transform inversion formula, and the entire pulse train x(t) is explicitly recovered from the computed X(ω) using (1.2). This Example shows that the Digital Fourier Transform is more appropriate for making frequency domain plots than the Z Transform and really does have a role to play in digital signal analysis.
Example 2 considers a pulse train having just a single box pulse of amplitude y0 at t = 0. The formula Y'(ω) = Σm Y(ω- mω1) is examined in light of the fact that Y'(ω) = y0T1 = a constant. We find an unusual sum rule for the sinc function which states that Σm sinc[π(x-m)] = 1 for any real value of x, and this result is verified using an obscure summation formula found in Gradshteyn and Ryzhik.
Section 26 considers a yn amplitude-modulated pulse train whose box-shaped pulses fill only a portion τ of the sample time T1 , the so called "aperture" of a D/A converter. It is shown that for any finite aperture size the D/A converter output pulse train spectrum X(ω) differs from the desired signal spectrum Y(ω) not just in terms of image spectra (which can be filtered away), but also due to a sinc function distortion of the spectrum: X(ω) ~ sinc(ωτ/2)Y(ω). This sinc distortion must be compensated by implementation of a "sine x over x" filter somewhere in the system, sometimes in an analog post-filter.
Section 27 gives a derivation of yet another transform, the Discrete Fourier Transform or DTF. The new feature here is that the pulse xpulse(t) used to create a pulse train is approximated by a sequence of N digital samples. Up to this point, our pulse trains have always been constructed from analog xpulse(t) functions having discrete amplitudes yn.
Subsection (a) first reviews the Fourier Series Transform for an infinite simple pulse train built from analog pulses, x(t) = Σn xpulse(t-mT1). When this pulse train is considered only at discrete times tn where there are N values of tn within each T1 period, we end up with what we call the Discrete Fourier Transform of a Simple Pulse Train where the infinite set of Fourier Series cm coefficients are replaced with a set of c'm coefficients (the DFT coefficients) which have the property c'm+N = c'm, which means the sequence of c'm coefficients is periodic and contains only N distinct values. The two halves of this pulse train transform are given in equations (27.9) and (27.11),
c'm ≡ (1/N) !Syntax Error, Ixpulse(tn) e-imn(2π/N) . projection = transform (27.9)
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) . expansion = inverse transform (27.11)
Subsection (b) is a proof that the above DFT transform is correct. In this brute-force proof, a rather strange identity is required which is obtained in Appendix B. A summary box for the Discrete Fourier Transform of a Simple Pulse Train is then given as (27.16).
Subsection (c) shows how the results of subsection (a) may be specialized to describe the Discrete Fourier Transform is a signal which is a single digitized pulse having N samples xn and time duration T1. This results in the traditional form of the Discrete Fourier Transform as summarized in box (27.21). Allowing for an arbitrary convention factor A, this DFT can be stated as
c'm ≡ (A/N) !Syntax Error, Ixn e-imn(2π/N) m = 0,1...N-1 projection = transform
xn = (1/A) !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 expansion = inverse transform (27.22)
Commonly appearing values of A are 1, N and .
Subsection (d) provides a graphical view of the DFT situation for a pulse train. One can consider the N pulse sample values as a vector xpulse and the N coefficients as another vector c', and these vectors are then related by an NxN symmetric matrix -- just another way to think about the above transform.
____________________________________________________________________________________
Chapter 4: Some Practical Topics (19 p)
Chapter 4 shows that symmetric FIR filters have linear phase and thus constant group delay. A specific brick wall digital filter is designed and then later used as an oversampling interpolation filter in the design of a D/A converter output section. This system is then simulated with a simple Maple program.
Section 28 shows that FIR filters have linear phase and thus constant group delay if the filter coefficients are symmetric. The result is demonstrated by two different methods.
Section 29 describes a specific design for a digital brick-wall filter with a 4x clock rate. A hardware implementation is shown in some detail, and the filter spectrum is computed and plotted. It is shown how 101 taps gives a better brick wall than 21 taps, though both exhibit the Gibbs phenomenon.
Section 30 considers a set of increasingly complicated D/A converter output section designs.
Subsection (a) describes a very simple D/A converter output section. A certain specific digital signal yn is assumed in Fig 30.1. Both the Digital Fourier Transform spectrum |Y'(ω)| and Fourier Transform spectrum |X(ω)| of the stepwise analog output are computed and plotted. The first plot shows the expected image spectra, while the second shows a large sinc distortion of the output with the image spectra damped down significantly.
Subsection (b) clocks the D/A converter of the previous design at a 4x rate. This has no effect on the analog output waveform, but allows for a reinterpretation of the output in terms of a 4x rate analysis. This section is mainly an exercise in computing the output spectrum two different ways.
Subsection (c) adds a zero-stuffing input section to the converter design, which results in a new sampled signal with a 25% aperture as shown in Fig 30.8. Both |Y'(ω)| and |X(ω)| are computed for this new signal. The sinc distortion is much reduced, but several image spectra appear in the output spectrum.
Subsection (d) adds the 4x-rate brick-wall filter of Section 29 between the zero-stuffing input circuit and the D/A converter output circuit. The new X(ω) spectrum of the output shows the desirable features of a reduced sinc distortion and image spectra rejection. The system is then simulated with simple Maple code and the time-domain output plotted first for a 21-tap filter and then for a 41-tap filter. It is seen why this kind of filter is called an interpolation filter and an alias-rejection filter.
____________________________________________________________________________________
Chapter 5: Some Theoretical Topics (10 p)
Chapter 5 contains only Section 31 which explores the subject of dispersion relations for the spectral function X(ω) and for other related functions treated as analytic functions of a complex variable.
Subsection (a) derives an integral equation (32.1) which X(ω) must satisfy if X(ω) is analytic in the upper half ω plane. The integral in this equation is a "principle value" integral which has a tick mark. This type of integral is described more in Appendix C.
Subsection (b) derives a similar equation (31.3) for X(ω) being analytic in the lower half ω plane. These two equations are then written in (31.5) as one equation with a parameter σ = ±1 to distinguish the cases. The RC filter spectrum G(ω) found in Section 4 (b) is shown to satisfy this integral equation.
Subsection (c) rewrites the dispersion relation in terms of the real and imaginary parts of X(ω), shown in (31.8), so now there are two equations. In the case that X(ω) is associated with a real signal x(t) the negative frequency half of the integral can be folded into the positive half to give a new form (31.9) which is associated with the names Kramers and Kronig.
Subsection (d) shows how the dispersion relations are also valid for γ(ω) where X(ω) = e-γ(ω), with certain assumptions. The real and imaginary parts of γ(ω) = α(ω) + i β(ω) are the attenuation and phase of the spectrum (or transfer function) X(ω). When those assumptions are met, such a filter is a minimal phase filter. It is shown that the dispersion relations mix together the attenuation and phase, so neither can be set independently of the other.
Subsection (e) demonstrates that a minimal phase filter has approximate linear phase in any region of ω that is far away from regions where the attenuation α(ω) significantly varies.
Subsection (f) applies this idea to a zero resistance coaxial cable and argues that such a cable has linear phase up to infrared frequencies. Linear phase means constant group delay which means the cable is non-dispersive. Real cables of course don't have zero resistance and exhibit skin effect.
Subsection (g) rewrites the dispersion relations in terms of the Hilbert Transform. The dispersion relation becomes roughly the statement that X(ω) must be ±i times its own Hilbert Transform. It is emphasized that the dispersion relation is only a condition on X(ω) and does not fully determine X(ω).
___________________________________________________________________________
Chapter 6: Power in Pulse Trains (70 p)
Chapter 6 derives expressions for the energy and power, and the spectral energy and power densities of an amplitude-modulated pulse train. This work is carried out with a moderate amount of mathematical rigor. Correlation and autocorrelation are mentioned. The notion of a statistical pulse train is presented and the spectral power density of such pulse trains is established. These results are then applied to various uncorrelated standard line codes including NRZ, RZ and Manchester. Two examples of correlated pulse trains are then treated -- AMI and Change/Hold -- and the latter is then used to get results for the NRZI line code.
Section 32 introduces the autocorrelation function rx(t) of function x(t) and discusses energy and power.
Subsection (a) computes rx(t) for a square pulse.
Subsection (b) defines quantities E, p(t) and E(ω) which are the total energy, instantaneous power, and spectral energy density of a pulse train.
Subsection (c) shows that the Fourier Integral Transform Rx(ω) of rx(t) is directly related to E(ω), a fact known as the Wiener-Khintchine theorem.
Subsection (d) verifies this theorem for the square pulse.
Subsection (e) digresses on the subject of cross-correlation and relates this to auto-correlation.
Section 33 computes the power spectral density of a simple pulse train with arbitrary xpulse(t).
Subsection (a) computes |X(ω)|2 for an infinite simple pulse train.
Subsection (b) repeats this calculation for a finite simple pulse train.
Subsection (c) defines the spectral power density P(ω) of a pulse train and displays the result for the infinite and finite pulse trains based on the |X(ω)|2 computations of the previous two subsections. As expected, the infinite pulse train has a discrete power spectrum while the finite one has a continuous spectrum. In the infinite case, P(ω) is related to the Fourier Series coefficients cm , am and bm.
Subsection (d) defines the average power P of a pulse train and relates that to cm , am and bm .
Section 34 computes the spectral power density of a general (PAM) pulse train with arbitrary xpulse(t).
Subsection (a) gathers up in a summary box a set of energy and power facts already derived which apply to general pulse trains, not just simple ones.
Subsection (b) computes the spectral energy density E(ω) and power density P(ω) for a general pulse train. The results are stated for infinite pulse trains, with the understanding that all sums are replaced by finite sums for finite pulse trains.
Subsection (c) uses two methods to compute the spectrum X(ω) and power spectral density P(ω) of a general pulse train in which the amplitudes have the form A,B,A,B.... with arbitrary xpulse(t). The first method does a brute force calculation of the result for a finite pulse train, and then takes the limit N→∞ to obtain the result for an infinite pulse train. The second method treats the pair of pulses A,B as a single pulse of period 2T1 and obtains the same results using a Fourier Series analysis. The results are then applied to a short catalog of standard cases (such as A = 1, B = 0) and displayed in Figures 34.2 through 34.9. At the very end results are stated for repeat sequences A,B,C and A0,A1....AM-1 with derivations left as an exercise for the reader.
Section 35 treats statistical pulse trains in which the amplitudes take random values. For example, a square wave pulse train might have probability p for amplitude 1 and 1-p for amplitude 0.
Subsection (a) defines the notion of a statistical ensemble of general pulse trains. The ensemble contains I pulse trains and each is labeled by index i and has amplitudes yn(i). The ensemble average is indicated by <..> and quantities <E(ω)>, <P(ω)> and <P> are stated in terms of sums which contain amplitude averages <ymyn> . This average is computed for an ensemble of pulse trains whose amplitudes are non-correlated and <P(ω)> is shown to be expression (35.7) where α = <ymyn> and β ≡ <ym2>. It is noted that α = μ2 and β = μ2 + σ2 where μ and σ2 are the mean and variance of the yn(i) values.
Subsection (b) examines expression (35.7) for <P(ω)> and evaluates its two double sums in the case of an infinite pulse train and arrives at the following well-known result for the spectral power density of a non-correlated statistical pulse train, where Ppulse(ω) is the spectrum of xpulse(t) :
<P(ω)> = Ppulse(ω) { σ2 + μ2!Syntax Error, I2π δ(ωT1- 2πm) } (35.11a)
The above spectrum has both continuous and discrete components.
Subsection (c) repeats the calculation for a finite pulse train and then takes the N→∞ limit.
Subsection (d) summarizes the results for non-correlated pulse trains and gives a few examples.
Subsection (e) presents a numerical simulation of an ensemble of random pulse trains. A simple Maple program computes and plots the average spectral power density <P(ω)> of the ensemble, and one clearly sees the continuous and discrete pieces of the spectrum.
Subsection (f) observes that all the results obtained for statistical pulse trains could be obtained without mention or use of the autocorrelation function.
Subsection (g) considers and then resolves an interesting paradox: the simulation shows a power spectrum <P(ω)> having a continuous component, whereas the simulated <X(ω)> has no continuous component. This seems strange since P(ω) ~ |X(ω)|2.
Section 36 computes the spectral power density for several standard uncorrelated line codes.
Section 37 computes the spectral power density for the Alternate Mark Inversion (AMI) line code. In this line code, the locations in the pulse train are correlated with each other which makes the calculation of <ymyn> more difficult, one cannot claim <ymyn> = <ym><yn> .
Section 38 computes the power spectral density (38.21) for what we call a Change/Hold line code. The calculation is similar to that done for the AMI line code. Since we could not find external verification of the result, various limits are taken and checked against known results. The unipolar and bipolar NRZI line codes are then treated as special cases of the Change/Hold line code.
____________________________________________________________________________________
Appendix A: Delta Function Technology (19 p)
Appendix A discusses "delta functions" at a someone deeper and more practical level than one commonly finds in texts and on the web. Delta function models are constructed and many mathematical identities are developed which find use in the main text. It seemed best to isolate this material into an appendix rather than derive its results in line.
The opening text gives a very minimalist outline of "distribution theory", with a mention of the meaning of "symbolic functions" like the delta function.
Subsection (a) develops four different "models" (δ1 through δ4) for the delta function. Each model is a sequence of functions which approaches the true δ in the limit of some parameter. As part of this development, two different proofs are given for equation (2.1),
!Syntax Error, Idx e±ikx = 2πδ(k) . (2.1)
Subsection (b) develops models δ5, δ6 and δ7 for what we call "periodic delta functions".
Subsection (c) derives the following two "exponential sum rules"
!Syntax Error, Ieink = !Syntax Error, I2πδ(k - 2πm) -∞ < k < ∞ (13.2)
!Syntax Error, I eink = 2π { } ≡ 2π δ5(k,N) -∞ < k < ∞ (13.3)
and it is shown how the first is a limit of the second. Equation (13.2) is then used to derive the Poisson Sum Formula. Both sum rules are used many times in the main text.
Subsection (d) notes that the number δ(0) is undefined in distribution theory, but is meaningful for a specific delta function model. It is just a notation to allow us to handle certain infinite sums that occur many times in the main text. A related notion is called "undoing the limit", or "backing off". For example, one can undo the limit of (13.2) above to arrive at (13.3) in which the right side is a perfectly normal function. Sometimes it is necessary to undo the limit in this way, do some calculations, and then take the limit N→∞ again.
Subsection (e) considers the delta function sifting property (2.2) and pays particular attention to what happens at the two integration endpoints. A special notation Θ(a ≤ x ≤ b) is introduced to incorporate the endpoint effects. Several properties of the Θ "function" are stated.
Subsection (f) addresses the tricky subject of the product of two delta functions of the same variable. This concept is undefined in distribution theory, but one must face such products when computing objects like the spectral power density of a pulse train: the spectrum includes delta functions, and the power density is proportional to the spectrum squared. The solution as mentioned just above is to back off from the N=∞ limit, figure out what is happening, and then resume the limit again. It is in this process that the delta function models δ5 and δ6 find their use.
____________________________________________________________________________________
Appendix B: Derivation of a Certain Identity (2p)
Appendix B derives this rather obscure identity, where N and s are arbitrary integers with N > 0,
!Syntax Error, Ie+ims(2π/N) = N!Syntax Error, Iδs,mN (B.1)
____________________________________________________________________________________
Appendix C: The Fourier Transform and its relation to the Hilbert Transform (17 p)
Appendix C further develops Fourier Integral Transform theory beyond the treatment of the main text. Instead of using the notation f(t) and F(ω), here we use f(t) and f^(ω).
Subsection (a) introduces this ^ notation for the Fourier transform and allows for a general constant k in the transform definition to allow comparison of results with sources using other conventions. In this new notation, some "Facts" are derived, such as
[f(-u)]^(-ω) = f^(ω) f^-1(u) = (1/2πk2) f^(-u) f^^(t) = 2πk2 f(-t) .
An operator notation is introduced which is similar to that commonly used for the Laplace Transform.
Subsection (b) introduces the notion of a Cauchy Principle Value integral with a preliminary look at its associated symbolic function pf(x). We use the tick notation for such an integral.
Subsection (c) computes the "regular" Fourier transform of the function f(u) = 1/u, which is not quite as simple as it seems. It is shown that (1/u)^(ω) = -iπk sgn(ω) where sgn(ω) = 2θ(ω) – 1 and where θ(ω) is the Heaviside step function. The inverse Fourier transform is then done to verify that the original function 1/u is recovered. A directly related result is [sgn(ω)]^(t) = -2ik(1/t).
Subsection (d) gives a derivation of this fact involving complex integration (ω is real) ,
limε→0 = pf(1/ω) ± iπδ(ω) (C.22)
which for want of a better name we call The Pole Avoidance Rule. A certain contour avoids hitting a pole by deflecting one way or the other around the pole. Along the way, pf(x) is defined as a symbolic function.
Subsection (e) computes the Fourier transform of the function limε→0 [1/(u±iε)] which seems very close to the function 1/u explored in subsection (c). One finds that ()^(ω) = ∓ 2πik θ(±ω). The original function is then recovered using the inverse Fourier transform. A directly related result is the fact that [θ(±t)]^(ω) = k pf( ) + π k δ(ω) (Fourier transform of the Heaviside step function).
Subsection (f) then computes [θ(u)]^(ω) using the "generalized" Fourier transform (in which the recovery contour is vertically shifted). The result is [θ(u)]^(ω) = .
Subsection (g) summarizes all the examples considered in this appendix.
Subsection (h) defines the Hilbert Transform fh(t) of a function f(t). This transform has an intimate connection with the Fourier Transform which is laid out in a series of unusual facts such as
[fh]^(ω) = k-1 ( )^(ω) f^(ω) = -i sgn(ω) f^(ω) fhh(t) = -f(t) .
The inversion formula for the Hilbert transform is derived and the transform is then computed for some simple examples. The Hilbert Transform appears in the dispersion relations of Section 31 (g).
____________________________________________________________________________________
Appendix D: Probability Theory: how α and β are related to μ and σ (5 p)
Appendix D reviews some basic probability theory and relates the α and β parameters of the uncorrelated spectral power density formula to statistical properties of pulse train amplitudes.
Subsection (a) discusses random variables X and Y and their expectation values like μx = E(X) = <x> and E(XY). Expressions are given both in terms of probability density functions and in terms of ensemble measurements. The variance σ2(X) and covariance cov(X,Y) functions are defined and certain relations obtained. The concept of X and Y being independent (uncorrelated) random variables is explored.
Subsection (b) translates the results of subsection (a) into the context where X = Ym and Y = Yn where Ym is the random variable associated with position m in a pulse train, and whose values are the pulse amplitudes ym .
Subsection (c) shows that for an uncorrelated pulse train the following facts are true for the coefficients α and β used in Chapter 6 on power spectra,
α = μ2 β = μ2 + σ2 (β-α) = σ2 μ ≡ <ym> σ2 = <ym2> - <ym>2
These relations provide a useful interpretation of the parameters α and β in terms of the statistics of the pulse train amplitudes.
____________________________________________________________________________________
Appendix E: Table of Transforms (4 p)
Lists all transform pairs which appear in this document and shows how they are related.
References
W.R. Bennett and J.R. Davey, Data Transmission (McGraw-Hill, New York, 1965).
J.F. Colombeau, "Multiplication of Distributions", Bulletin of the American Mathematical Society, Vol. 23, No. 2, October 1990.
A. Erdélyi et. al., The Bateman Manuscript Project (McGraw-Hill, New York, 1953-4). The first three volumes (EH I,II,III) of this priceless five volume set describe the special functions (such as Bessel functions), referred to by the editors as Higher Transcendental Functions. The last two volumes (ET I,II) contain Tables of Integral Transforms. As with many out-of-print books, these volumes can perhaps be found as pdf or djvu files on the web. English and Russian editions exist. The notations EH and ET are how these works are referenced from Gradshteyn and Ryzhik (see below).
I.S. Gradshteyn and I.M. Ryzhik, Table of Integrals, Series, and Products, 7th Ed ( Academic Press, New York, 2007). Editor Dan Zwillinger has been collecting errata.
R. Hermann, Fourier Analysis on Groups and Partial Wave Analysis (W.A. Benjamin, New York, 1969).
S. Lipschutz, M. Spiegel and J. Liu, Schaum's Outlines: Mathematical Handbook of Formulas and Tables (4th Ed.), (McGraw-Hill, 2012). The excellent original 1968 edition by Murray Spiegel has been a dog-eared reliable friend for many years. John Liu was added for the 1999 2nd Ed, and Seymour Lipschutz joined for the 2008 3rd Ed. Not to be confused with a watered-down "Easy Outline" version.
A.D. Polyanin and A.V. Manzhirov, Handbook of Integral Equations 2nd Ed.( Chapman & Hall / CRC, Boca Raton FL, 2008). A massive effort of 1143 pages. This is just one of several fat Polyanin "handbooks" on various mathematical topics (two hands are needed to lift each one).
D. R. Smith, Digital Transmission Systems, 3rd Ed (Kluwer Academic Publishers, Alphen aan den Rijn, Netherlands, 2003). Springer bought Kluwer in 2004. The earlier editions of this book were 1985 and 1993. We have not quoted any results from this book, but it does contain various spectral power density formulas for line codes in the Baseband Modulation Chapter 5.
W.R. Smythe, Static and Dynamic Electricity, 2nd Ed. ( McGraw-Hill, New York, 1950). A classic and highly mathematical text on electrostatics which contains not a single delta function.
I. Stakgold, Boundary Value Problems of Mathematical Physics, Volumes 1 and 2 (Macmillan, London, 1967). Errata for this excellent series may be found on the Phil Lucht documents website.
M.E.V. Valkenburg and W.M. Middleton (editors), Reference Data for Engineers: Radio, Electronics, Computers and Communications, 9th Ed. (Newnes/Elsevier, Boston, 2001).
F. Xiong, Digital Modulation Techniques (Artech House, Boston, 2000).