spectral theory container
DOCX · 1.9 MB
Open DOCX file
A multi-chapter technical document by Phil Lucht (Rimrock Digital Technology, last updated Mar 30, 2013), stored as a temp file in the Spectral Theory Book folder. It covers the Fourier integral transform, convolution theorem, Laplace connection, pulse train spectra and Fourier series, sampled signals, digital filters, the Z transform and DFT, dispersion relations, autocorrelation, spectral power density, and line codes such as NRZ, Manchester and AMI. Appendices treat delta function technology.
AI-written summary; may contain errors.
Extracted text (machine-read; may contain errors)
Fourier Analysis and its Application to Pulse Trains
Phil Lucht
Rimrock Digital Technology, Salt Lake City, Utah 84103
last update: Mar 30, 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 4
Chapter 1: The Fourier Integral Transform and Related Topics 5
1. The Fourier Integral and Sine/Cosine Transforms 5
(a) Pulses and Pulse Trains, Periodic and Aperiodic 5
(b) The Fourier Integral Transform X(ω) 5
(c) The Fourier Sine and Cosine Transforms Xs(ω) and Xc(ω) 7
2. Proof of the Fourier Integral Transform 10
3. The Convolution Theorem and its Derivation 13
4. Applications of the Convolution Theorem 16
(a) General case 16
(b) A specific example: the RC filter section 16
(c) An even simpler example: Lt = (d/dt) 19
5. Fourier Integral Transform Conventions 21
6. Relation between Fourier Integral Transform and the Laplace Transform X(s) 22
7. Reflection Rules 25
8. Some simple examples of spectra 25
9. Spectrum of an isolated square pulse 28
10. The Area Rules and Parseval's Formulas 31
11. Differentiation and Integration Rules with Examples 32
12. Time translation x(t) causes phase on X(ω). 34
13. Representation of the delta function as an infinite sum 34
Chapter 2: Pulse Trains and the Fourier Series Connection 37
14. The Spectrum of a Simple Pulse Train 37
(a) Infinite Length Simple Pulse Train 37
(b) Finite Length Simple Pulse Train 41
15. Connection with the traditional Fourier Series 44
16. Fourier Series for positive square wave pulse train 47
17. More about positive square-wave pulse trains 47
18. Non-positive pulse trains 52
19. Biphase pulse and pulse train 52
Chapter 3: Sampled Signals and Digital Transforms 56
20. Sampled signals and their Image Spectra 56
21. Digital Filters, Image Spectra and Group Delay 59
(a) A Digital Filter as an Approximation to an Analog Filter 59
(b) Filter Group Delay 63
22. The Digital Fourier Transform X'(ω) Part I 66
23. The Digital Fourier Transform X'(ω) Part II 70
(a) Relation between X'(ω) and X(ω) 70
(b) Summary of the Digital Fourier Transform 72
24. The Z Transform X"(z) 74
(a) Convolution Theorem 76
(b) Unit Impulse 76
(c) Time translation 77
(d) Derivative Limit 77
(e) Digital RC filter 78
(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 85
25. Amplitude Modulated Pulse Trains 86
Example 1: A finite pulse train 88
Example 2: The unit impulse and the sinc sum rule 90
26. A simple application: aperture correction 93
27. The Discrete Fourier Transform This section will be fully rewritten. 95
(a) The Discrete Fourier Transform for a Simple Pulse Train x(t) 95
(b) Proof of the Discrete Fourier Transform for a Simple Pulse Train x(t) 98
(c) The Discrete Fourier Transform for an Arbitrary Pulse 100
(d) Comments on the Discrete Fourier Transform 102
Chapter 4: Some Practical Topics 106
28. Do FIR filters have linear phase? 106
29. A Simple Digital Low-Pass Filter 109
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 oversampling and zero-stuffing to reduce aperture 118
(d) Add a ω1/2 digital low-pass interpolation filter 120
Chapter 5: Some Theoretical Topics 124
31. Spectral Dispersion Relations 124
(a) a simple integral equation for X(ω) 124
(b) dispersion relations for X(ω) 125
(b) dispersion relations for γ(ω) 126
(c) dispersion and attenuation 128
(d) application to coaxial cable 129
(e) The Hilbert Transform and its relation to the Fourier Transform 131
Chapter 6: Power in Pulse Trains 134
32. The Autocorrelation Function 134
33. Spectral Power Density of a Simple Pulse Train 137
(a) Infinite Simple Pulse Train 138
(b) Finite Simple Pulse Train 140
(c) Spectral Power Density of a Simple Pulse Train 142
(d) Average Power P of a Simple Pulse Train 144
34. Spectral Power Density of a General Pulse Train 145
(a) General Pulse Train results and connection with the Autocorrelation Function 145
(b) Spectral Power Density for a General Pulse Train 146
(c) Pulse Trains with Repeated Sequences 147
35. Statistical Pulse Trains 157
(a) Spectral Power Density for a Statistical Pulse Train 157
(b) Digression on expectation values, correlation and covariance 158
(c) Infinite Statistical Pulse Train with Non-Correlated Coefficients 159
(d) Finite Statistical Pulse Train with Non-Correlated Coefficients 160
(e) Statistical Non-Correlated Pulse Trains: Summary and Examples 162
(f) A numerical example of a statistical pulse train 163
(g) What role has the autocorrelation function played in our development? 166
(h) A paradox and its resolution 167
36. Application to some Standard Non-Correlated Pulse Train Types (Line Codes) 169
(a) Unipolar NRZ line code 170
(b) Bipolar NRZ line code 172
(c) RZ line code 175
(d) Manchester line code 177
(e) Noise, ISI and Eye Patterns 179
37. The AMI line code 180
38. Change/Hold line codes 188
Example: NRZI line code 197
Appendix A. Delta Function Technology 199
(a) Models for Delta Functions and two derivations of (2.1) 200
(b) Models for periodic delta functions 203
(c) Derivation of (13.2) 209
(d) Undoing the limit N→ ∞ : the meaning of δ(0) 211
(e) The function Θ(a ≤ x ≤b) and related sums 213
(f) The product of two delta functions and more on δ(0) 215
Appendix B: Derivation of a Certain Equation 218
References 220
Overview and Summary
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 we start, 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 contant 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 ampitude-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 coefficients of π, the pulse train is aperiodic. We do not treat pulse trains composed of pulses having different shapes, such as would be encoutered 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.
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". 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 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) also must 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
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.
See Stakgold Vol. 2 Section 5.6 on Fourier Transforms for more detail. There are various names associated with this subject, such as 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 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 Erdelyi volume 4 (see References).
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 explictly 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 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. Later we shall see how the continuous Fourier spectrum becomes discrete when finite endpoints are in effect added to the problem (periodic boundary conditions).
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 .
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
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 a(t) is the input and c(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) // expansion, inverse transform
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σ. The 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. In the general case, the convolution equation and its diagonalization are given by
a(g) = ∫dg1b(g1)c(g1-1g) Aσkk' = Σk" Cσkk" Bσk"k'
where the dg1 integral is over the entire parameter space of the group. In the case of one-dimensional representations, this says Aσ = CσBσ 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 Cσkk" = δσ,σ" Cσk,σ"k", then the matrix Cσk,σ"k" is diagonal in the sense that it is mostly zero but has smaller square matrices of size dσ x dσ on its diagonal. For more on this subject, 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 like 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)
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 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 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
= 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 voltages 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 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.
5. Fourier Integral Transform Conventions
(a) Sign. 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 exp(+iωt) and cos(ωt), whereas physics people think of exp(-iωt) because they are used to seeing plane waves described by exp[+i(kr - ωt)] or cos(kr - ωt). We shall 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[ ].
(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. 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.
6. Relation between 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 modified Fourier Integral Transform may be stated as
X(ω) = !Syntax Error, Idt x(t) e-iωt (6.4)
x(t) = (1/2π) !Syntax Error, Idω X(ω) e+iωt (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 would call 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 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 to the left 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 our Fourier Transform X(ω) evaluated at ω = s/i. If we think of s = real, then we are "analytically continuing" our function X(ω) off its real ω axis. And 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 our Fourier Transform, with the appropriate replacement s = iω. A very large table (~ 100 pages) of Laplace transforms appears in the Bateman Manuscript Project volume 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), 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), most authors simply reflect the left half of the spectrum to the right side which doubles the right side.
8. Some 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.
(c) 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(ω) = " " = = = [ pf(1/ω) + iπδ(ω)]
(8.4)
X(ω) = // generalized Fourier Integral Transform of (6,4,5)
which we now explain. This Heaviside x(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 acceptible class by replacing θ by θε where,
θε(t) ≡ for some very small ε > 0
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. 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/ω) = 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 (one can show) 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.
What we have just done is sometimes written using the following obscure notation (see for example Stakgold Chapter 1 page 50 (1.27))
= pf(1/ω) + iπδ(ω) // similarly = pf(1/ω) – iπδ(ω) (8.5)
where pf means pseudofunction and is a symbolic function like the delta function which acquires meaning when it is placed inside an integral. The meaning is that when pf(1/ω) is inside an integral, the integral is a principal value integral at ω = 0, so
!Syntax Error, Idω = !Syntax Error, Idω pf(1/ω) + !Syntax Error, Idω iπδ(ω)
= PV !Syntax Error, Idω (1/ω) + iπ = 0 + iπ = iπ
and then
x(0) = (1/2π) !Syntax Error, Idω = (1/2πi) !Syntax Error, Idω = (1/2πi) iπ = 1/2 .
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.
9. Spectrum of an isolated square pulse
Consider a positive 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) ].
Fig 9.1
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)
There are now several observations we can make:
(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 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
If we set ω = 0 in the Fourier Transform (1.1) and then t = 0 in (1.2), we find
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)
The * means complex conjugation and is needed to make the thing work so you get δ(ω - ω') 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 contained in the pulse is the same no matter in which space you 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(ω) corresponds to the green curve on the left, which we would expect to be a strong component of the double delta. The blue dot on the right is at a zero of X1(ω) and its curve on the left is a component we would expect to have zero energy in the spectrum of the double delta pulse.
(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. Representation of the delta function as an infinite sum
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. 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 RHS gives 2π. On the LHS, 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.
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.
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).
Chapter 2: Pulse Trains and the Fourier Series Connection
In this chapter we start with an arbitrarily shaped pulse and we create an infinite number of instances of that pulse spaced by a fixed time interval T1. This "pulse train" is then a periodic function. 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
A pulse train consists of a set of pulses of shape xpulse(t) separated by time T1. We assume that xpulse(t) is some "reasonable" (non-pathological) function.
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 the 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 equation are zero when ω ≠ a, and at ω = a, f(a) = f(ω).
Because the quantity (1/T1)Xpulse(ω) is going to occur frequently in the following discussion, we shall now 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 a 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 start with
x(t) =!Syntax Error, I xpulse(t - tn) tn = nT1 pulse train (14.17)
and then (14.3) becomes
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 cm and x(t) have the same units, 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 positive square wave pulse train
From equation (9.2) the Fourier Integral spectrum of a positive square 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
A drawing for T1 < τ appears below. 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 of Bennett and Davey. 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)
DC component = c0 = (Aτ/T1) (15.8) and (14.2) (17.6)
where we use ω1 = 2π/T1 .
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.
Figure 17.1: Plot of |sinc(x)| function along with 1/x. Fig 17.1
In the case of general pulse width τ (ie, 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 a ~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. 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 are 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. Ie, 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 above 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 pulse 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). With Aτ = 1, this situation is described in (A.2) and (A.3) of Appendix A as a practical model for the Dirac delta function. This is the limit of 0% duty cycle. With Aτ = 1 we find from (17.2) that Xpulse(ω) = 1 and c(ω) = (1/T1),
xpulse(t) = δ(t) x(t) = !Syntax Error, Iδ(t - nT1)
Xpulse(ω) = 1 X(ω) = !Syntax Error, I (1/T1) 2πδ(ω - 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 (1/T1). 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 1. The 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 simply 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 earlier work where T1 was the spacing between pulses we 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 amount 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δ(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(ω) 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)δ(t - nT1) =!Syntax Error, Iy(tn)δ(t - nT1) =!Syntax Error, Iynδ(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δ(t - tn) y(t) = !Syntax Error, Iδ(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 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 (nor 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 immediately to (21.1) and (21.2) above
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
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 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. 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 (21.6) 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 (21.6). 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 (21.7) 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 m 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 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.
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 Section 23 is really the Z Transform times Δt. We have concealed this fact up till now because the ω-space version, called X'(ω)in Section 23allows 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) ]
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.
(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, you 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 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, so we now have
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.
(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) = δ(t), and we took note of the spectrum of such a pulse train,
x(t) = y(t) d(t) = !Syntax Error, Iyn δ(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). 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 δ(t) pulse by xpulse(t) is just to add the pulse spectrum c(ω) = Xpulse(ω)/T1 as an overall factor.
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'(ω) = 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.
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 } (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) now is a square pulse of unit height, width τ, and it has 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 central 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 This section will be fully rewritten.
This is the last transform! We shall develop it in exact 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 for a pulse train, then in section (b) we develop the Discrete Fourier Transform for an isolated pulse.
(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:
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, I cm e+imωt (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),
x(t) = !Syntax Error, I xpulse(t-mT1) . (14.1) (27.4)
Evaluating at the discrete times t = tn we find,
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 any finite ∆t:
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)
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 we leave it to the reader.
We can now verify that our new transform approaches the Fourier Series Transform 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) )
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
x(tn) = limN→∞ { !Syntax Error, I c'm e+imωt} = !Syntax Error, I c'm e+imωt = !Syntax Error, I cm e+imωt = x(t)
and the results are the Fourier Series Transform (27.1) and (27.2).
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.
[ Admittedly, we referred to the same discrete steps xn ≡ x(tn) as being "digital" steps with regard to the Digital Fourier Transform, just so that different transform could have a different name. ]
(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 a theorem 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.4), we conclude that indeed (27.11) is the expansion that accompanies the projection (27.9).
At this point, we make a box to summarize what we know about 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.
2. Break up each T1 interval into N steps of width ∆t = T1/N. Let tn = n∆t (n = integer).
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 = integer (27.8)
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.11a)
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.16)
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 cannot 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.17)
// (2π/N) = ω1Δt
xpulse(tn) = !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 (27.11) (27.18)
This is the official Discrete Fourier Transform. Due to the periodicity property (27.10), the sum in (27.17) could be taken over any set of N adjacent steps, and without much 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.19)
This result 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.20)
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.17)
4. The accompanying expansion = inverse transform is given by
x(tn) = !Syntax Error, Ic'm e+imn(2π/N) n = 0,1,...N-1 (27.18)
Comment: Just as with the Fourier Integral Transform, there several different conventions for stating the Discrete Fourier Transform. One could add any factor A in (17.17) and 1/A in (27.18). For example, with A = N, one moves the 1/N factor from one equation to the other. Another convention is the sign of the phase in the two equations.
(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),
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", which is 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 **) the infinite set of the cm as tracing the envelope of this gaussian Xpulse(ω). Of course in general 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 them.
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. Here is the result:
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)
c'm = Σm Mmn xpulse(tn)
or
c' = M xpulse (27.17)
xpulse = M-1 c' = (1/N) M* c' (27.18)
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 z plane where z = e-imn(2π/N) .
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 forming 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 this one: (N-1)ω1.
So this gives a reasonable "Fourier explanation" of why there are a finite number of 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 some 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 things. 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 way is direct, the second way is 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
= z-2 (b0z2 + b1 z + b2 + b1z-1 + b0z-2)
= 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) . (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 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, 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.
Example: We assume these parameters, since the resulting filter will be useful later on :
T1 = 1
ω1 = 2π/T1 = 2π
ωc = ω1/2 = π
Δt = T1/4 = 1/4 (29.6)
Maple computes the bm from (29.2) as follows (offset added to avoid divide by zero in the hand-made sinc function)
(29.7)
The filter has symmetric coefficients b-n = bn 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,
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 = π.
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 eliminated 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
(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,4,1,0.2,-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) (30.1)
X(ω) = (1/T1)Xpulse(ω) Y'(ω) , (30.2)
where from summary box (23.5),
Y'(ω) ≡ T1!Syntax Error, Iyn e-iωnT . (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
Xbox(ω,T1) = e-iωT/2T1 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 for |X(ω)| 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 in (30.5).
The above discussion describes the output of the following simple 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 | 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 :
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 and perhaps instructive. 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 oversampling and zero-stuffing to reduce aperture
We now add a multiplexor to the D/A converter design which causes the first sample in each group to pass through, but "grounds" the last three samples in each group:
Fig 30.7
The output of this design is the following analog signal,
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.
The spectrum of this output signal x(t) is given by (30.2) where we use the box spectrum of (30.4) for our thin box, but with T1 → T1/4 ,
Xbox(ω,T1/4) = e-iωT/8T1 sinc(ωT1/8)
X(ω) = (1/T1){ e-iωT/8T1 sinc(ωT1/8)}Y'(ω) = e-iωT/8 sinc(ωT1/8) Y'(ω)
= T1 e-iωT/8 sinc(ωT1/8) !Syntax Error, Iyn e-iωnT
The plot of |Y'(ω)| is already given in Fig 30.2. The new X(ω) plot is this:
Fig 30.9
The good news is that the blue sinc distortion is smooth near the central main spectrum. The bad news is that there are lots of high-amplitude image spectra the must be dealt with.
(d) Add a ω1/2 digital low-pass interpolation filter
The new D/A design is this,
Fig 30.10
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.11
The output spectrum of the Fig 30.10 design which includes this filter is then
Xnew(ω) = B(ω) X(ω)
where X(ω) was plotted in Fig 30.9 :
Fig 30.12
The effect of this digital filter is to remove the image spectra from Fig 30.9, a process sometimes called alias-rejection. Since this low-pass filter is not 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 10.10.
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.10 design. Nevertheless, plotting the time-domain output of this Figure 30.10 design is quite interesting.
Here is Maple code which implements the time-domain convolution equation (29.5) of our brick wall filter with Δt = 1/4:
The resulting yout[n] sequence can be plotted using our ancient Maple V's primitive histogram routine which we have been using all along,
Fig 30.13
which we compare to our starting digital signal of Fig 30.1,
Fig 30.1
The output Fig 30.13 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,
Fig 30.14
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.14. 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
31. Spectral Dispersion Relations
(a) A simple integral equation for X(ω)
In Section 1 we defined the Fourier integral spectrum X(ω) of a function x(t).
Let us assume for the moment that the spectrum X(ω) has no singularities in the upper half ω plane, and that as we take ω to infinity along any ray in the upper half plane, the limit is a constant which we will call X(∞). [ do I have an upper/lower problem here? Go find web example]
Task: See if the dispersion relation is valid for G(ω) shown just below!
In filter theory, by the term singularities we usually mean poles, but in general there could be branch cuts or so-called essential singularities as well. What we are really saying about X(ω) is that it is "analytic" in the upper half plane. In practical terms, this means that X(ω) is any smooth and reasonable function with X(∞) as defined above.
We have seen an example already that fulfills these requirements. For our RC filter, we had
G(ω) = 1/(iωRC + 1)
This has a pole in the lower half ω plane, and G(∞) = 0. [ But in Fig 4.2 it is in the upper half plane.]
Consider the following vanishing contour integral,
∫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(ω).
(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 ω = ω'. 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.∫ where 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(ω) = X(∞) + (1/iπ) dω' (31.2)
X(ω) is analytic in the upper half plane and in this half plane on any ray X(ω) → X(∞)
This is an integral equation for the spectrum X(ω) which involves the principle value integral.
(b) dispersion relations for X(ω)
Notice in (31.2) the very important factor of i. If we now break X(ω) into its real and imaginary parts and then write down the real and imaginary parts of the above single equation, we find that Re(X) and Im(X) are related to each other by the following two equations:
Re[X(ω)] = Re[X(∞)] + (1/π) !Syntax Error, I dω' (31.3a)
Im[X(ω)] = Im[X(∞)] - (1/π) !Syntax Error, I dω' (31.3b)
X(ω) analytic in upper have ω plane; X(ω') → X(∞) on ray in upper half plane
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 smooth 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,
!Syntax Error, I dω' = !Syntax Error, I[-dω"] = !Syntax Error, I[-dω"]
= !Syntax Error, I[-dω"] = !Syntax Error, I[dω"] =!Syntax Error, Idω" = !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.3) as
Re[X(ω)] = Re[X(∞)] + (2/π) !Syntax Error, I dω'ω' (31.4a)
Im[X(ω)] = Im[X(∞)] - (2/π) ω!Syntax Error, I dω' (31.4b)
X(ω) analytic in upper have ω plane; X(ω') → X(∞) on ray in upper half plane; X(ω) = X(-ω)*
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.
(b) 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.5)
Then we get
X(ω) = e-γ(ω) = e-α(ω) e-iβ(ω) (31.6)
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 our filter.
Can we apply our dispersion relations to the function γ(ω) instead of X(ω) ? Yes, provided γ(ω) meets the same specs we assumed for X(ω). If X(ω) has a pole in the lower half ω plane, then γ(ω) has a branch cut singularity in the lower half plane starting at the pole and going off to the left. No problem. If X(ω) has no poles in the upper half plane, then γ(ω) has no such cuts in the upper 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 upper half plane means γω) has a branch cut in the upper half plane starting at this zero location and going off to the left.
Thus, we must now assume that X(ω) has neither zeros nor poles in the upper half plane. Of course we also assume X(ω) has no branch points in the upper half plane. Filter's having transfer functions of this type are sometimes called "minimum phase".
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 for γ(ω) instead of X(ω), assuming now that X(ω) has neither poles nor zeros in the upper half ω plane. Note that Re[γ(ω)] = α(ω) and Im[γ(ω)] = β(ω), so here is the result:
α(ω) = α(∞) + (1/π) !Syntax Error, I dω' (31.7a)
β(ω) = β(∞) - (1/π) !Syntax Error, I dω' (31.7b)
X(ω) has no zeros, poles or branch points in upper half plane ("minimum phase")
Therefore γ(ω) is analytic in the upper half plane.
X(ω') → X(∞) on ray in upper half plane so that γ(ω') → γ(∞)
Now if x(t) is real so that X(ω) = X(-ω)* , we find that γ(ω) is also Hermitian since X(ω) = e-γ(ω) :
X(-ω) = X(ω)* γ(-ω) = γ(ω)* (31.8)
α(-ω) = α(ω) and β(-ω) = - β(ω)
Since γ(ω) is Hermitian, we can process (31.7) just as we did processed (31.3) to get
α(ω) = α(∞) + (2/π) !Syntax Error, I dω'ω' (31.9a)
β(ω) = β(∞) - (2/π) ω!Syntax Error, I dω' (31.9b)
X(ω) has no zeros, poles or branch points in upper half plane ("minimum phase")
Therefore γ(ω) is analytic in the upper half plane.
X(ω') → X(∞) on ray in upper half plane so that γ(ω') → γ(∞)
X(ω) = X(-ω)* so that γ(ω) = γ(-ω)* (both are Hermitian)
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 upper half plane. The conclusion that the phase and attenuation cannot be independently set is unavoidable.
(c) 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.10)
If we define the integral appearing in (31.9b) as K(ω), including the (2/π),
K(ω) ≡ -(2/π) !Syntax Error, I dω' (31.11)
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, 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 α(ω) is strongly varying.
Crude Proof: Suppose α(ω) is very smoothly varying near some ω. In the integral (31.11) 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 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 α(ω) is significantly varying, 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.
(d) 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, it we drive the cable with I(ω), the output O(ω,z) at z is
O(ω, z) = G(ω, z) I(ω) G(ω) = e-γ(ω)z γ(ω) = α(ω) + iβ(ω) . (31.12)
For a coaxial cable one has
γ = (31.13)
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.3) to be valid, so
Re[n(ω)] = Re[n(∞)] + (1/π) !Syntax Error, I dω' (31.3a)
Im[n(ω)] = Im[n(∞)] - (1/π) !Syntax Error, I dω' (31.3b)
where usually Re[n(∞)] = 1 and Im[n(∞)] = 0. If it happened that Im[n(ω)] were very small, then (31.3a) 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 ε(ω) itself. In this case one can regard the relationship between electric displacement D and electric field E
D(ω) = e(ω) E(ω)
as a "filter", where everything is evaluated at the same point in space.
(e) The Hilbert Transform and its relation to the Fourier Transform
Recall the integral equation which is the starting point for the dispersion relations discussion above,
X(ω) = X(∞) + (1/iπ) dω' (31.2)
The integral appearing here is in fact another transform in our growing cornucopia of transforms, this one being the Hilbert Transform,
Xh(ω) ≡ H(X) ≡ – (1/π) dω' = H[ X(ω'),ω] .
The Inverse Fourier Transform of Xh(ω), which we can call xh(t), has a very simple relationship to the Inverse Fourier Transform of X(ω) which is x(t), which we state as follows (proof to follow) :
Fact: xh(t) = ± i x(t) for t 0
If we define
sgn(t) ≡ 2θ(t) -1 = ± 1 for t 0 ( and = 0 for t = 0) ,
which is just a scaled and downshifted version of Fig 1.1, then our Fact states
xh(t) = i sgn(t) x(t) .
In much more elaborate notation this can be written
[F-1{ Xh(ω)}](t) = i sgn(t) [F-1{ X(ω)}](t)
Complex conjugation then gives, looking at (1.1) and (1.2)
[F{ Xh(ω)}](t) = – i sgn(t) [F{ X(ω)}](t)
This result is the same regardless of the sign one selects for the phase in (1.1) and (1.2).
Proof of Fact: We start off computing xh(t) as follows,
xh(t) = (1/2π) !Syntax Error, Idω" Xh(ω") e+iω"t = (1/2π) !Syntax Error, Idω" [ (1/π) dω' ] e+iω"t
Recall from (8.5) the following symbolic function equation which allows one to relate a principle value integration to one in which the contour deflects above or below the pole,
= [ pf( ) ± iπδ(ω)] (8.5)
Replacing ω by ω'-ω" gives
= [ pf( ) ± iπδ(ω-ω")]
so that
dω' = !Syntax Error, I dω' ∓ iπX(ω")
Then
xh(t) = (1/2π) !Syntax Error, Idω" Xh(ω") e+iω"t = (1/2π) !Syntax Error, Idω" [ (1/π) dω' ] e+iω"t
= (1/2π2) !Syntax Error, Idω" e+iω"t [!Syntax Error, I dω' ∓ iπX(ω") ]
= (1/2π2) !Syntax Error, I dω' X'(ω'){!Syntax Error, Idω" e+iω"t} ∓ (1/2π2) iπ!Syntax Error, Idω" e+iω"t X(ω")
= (-1/2π2) !Syntax Error, I dω' X'(ω') {!Syntax Error, Idω" e+iω"t} ∓ (1/2π2) iπ!Syntax Error, Idω" e+iω"t X(ω")
where either sign choice is allowed, but it must be the same in both places. For t > 0, we can close the ω" contour up, we select the + sign so the pole is captured, and the result is
xh(t) = (-1/2π2) !Syntax Error, I dω' X'(ω') {2πi e+iω't } + (1/2π2)iπ !Syntax Error, Idω" e+iω"t X(ω")
= (-i/2π) !Syntax Error, I dω' X'(ω') e+iω't = -i x(t) t > 0
For t < 0, we can close the ω" contour down, we select the – sign so the pole is captured (wrong circulation sense so minus sign), and the result is
xh(t) = (-1/2π2) !Syntax Error, I dω' X'(ω') {-2πi e+iω't } - (1/2π2)iπ !Syntax Error, Idω" e+iω"t X(ω")
= (+i/2π) !Syntax Error, I dω' X'(ω') e+iω't = +i x(t) t < 0
Therefore
xh(t) = ∓ i x(t) for t 0
or
xh(t) = - i sgn(t) x(t)
where sgn(t) = ± 1 for t 0 ( and sgn(0) = 1/2, as per Fig 1.1; in fact sgn(t) = 2θ(t) - 1 ). QED
Now suppose Xhh(ω) is the Hilbert transform of Xh(ω). Then we have
xhh(t) = - i sgn(t) xh(t)
Therefore, ignoring something strange at t = 0, we find
xhh(t) = - i sgn(t) [- i sgn(t) x(t) ] = – x(t)
Fourier transforming this equation says
Xhh(ω) = – X(ω)
or
H[H(X)] = – X
or
H(X) = – H-1(X)
Therefore we have that
H-1(X) = – H(X)
and the transform with its inversion is given by
Xh(ω) ≡ – (1/π) dω' projection = transform (1.1)
X(ω) ≡ + (1/π) dω' expansion = inverse transform (1.2)
which says that applying the Hilbert transform twice to a function is the same as negating the function.
Chapter 6: Power in Pulse Trains
32. The Autocorrelation Function
This is a very simple idea which is often made to seem complicated. 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 texts might define the above with an extra overall "normalizing" constant factor; we leave it as shown.
A simple reflection property follows from the above definition (use t" = t' + t ):
rx(-t) = rx(t) (32.2)
Thus, 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, you might get rx(t) = 0. The vague argument would be that there is no "correlation" between x(t') and x(t'+t), so the product of these two functions ought to be pretty random, and a sum of random numbers in the range -1 to 1 ought to be zero. Even in this case, 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)
Fig 32.1
(b) Energy in 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(ω) .
(c) The Spectral Density Connection: Wiener-Khintchine
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)
This has the standard convolution equation form (3.1) 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 (3.6) is
Rx(ω) = |X(ω)|2 (32.8)
Dividing by 2π we find that
E(ω) = (1/2π) Rx(ω) (32.9)
This is the key result. It says that the Fourier integral transform of the autocorrelation function of x(t) is 2π times the spectral energy density of x(t). This seemingly simple result gets the elaborate label of a Wiener-Khintchine Relation, see Bennett and Davey, Data Transmission, p 334.
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.
In (32.3) we have the autocorrelation function 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
Note: 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, then 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)
Then 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 = c∗b. (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. It 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.
(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 frequency domain 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.
[ !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,
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
limN→∞ δ6(ωT1,N) = !Syntax Error, Iδ(ωT1-2πm) (A.21)
to find that
limN→∞ [] = | Xpulse (ω) |2 !Syntax Error, Iδ(ω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 the above 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 a power
Ppulse(ω) ≡ = (33.24)
Note: Even if xpulse(t) is wider than T1 as the gaussians 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
P(ω) ≡ Ppulse(ω) 2π δ6(ωT1,N) joules (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 two earlier facts
c(ω) ≡(1/T1)Xpulse(ω) (14.14)
cm ≡ c(mω1) = (1/T1)Xpulse(mω1) (14.10)
For the infinite pulse train we can then write
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)
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 (**) to get
P(ω) = !Syntax Error, I |cm|2 δ(ω - mω1) = |c0|2 δ(ω) + 2!Syntax Error, I|cm|2 δ(ω - mω1) (33.29)
and then 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 a 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
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 and we gather them 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(ω)
which we called the Wiener-Khintchine Relation. 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.35)
Ppulse(ω) ≡ = (33.24)
P = !Syntax Error, Idω P(ω) = rx(0)/T watts (33.31) and (34.1)
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.
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
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 potenial 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. Therefore
X"(z) = [ A + B e-iωT] 2πδ5(2ωT1,N/2) . (34.16)
Using the 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)
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.2), where we continue to replace T1 → 2T1 ,
X(ω) = !Syntax Error, I Cm 2π δ(ω - mω1/2) .
But from (114.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 ] 2π δ(ω - 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)
= 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)
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) and 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 Section 17 we showed that for such a 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 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.21) 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 (m)-1 (-1)(m-1)/2 δ(ω - mω1/2) + (1/2) 2πδ(ω)
P(ω) = (1/π2)!Syntax Error, I (m)-2 δ(ω - 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
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 as <Q>. By averaging the last three equations above 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 tried to be 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.
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 (34.14), there are both "diagonal" terms where m = n, and off diagonal terms where m≠n. These groupings must be treated separately according to the above. We have defined new symbols α and β to emphasize that, for the situations shown, there is no longer any dependence on the n and m indices for these quantities. 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 (34.14) gives a fundamental result,
<P(ω)> = T1 Ppulse(ω) (1/T) { α!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } (35.7)
In Section 35 we shall evaluate this important result for infinite and finite pulse trains, but we pause momentarily for a digression.
(b) Digression on expectation values, correlation and covariance
In the language of statistics, one can imagine a "random variable" Ym associated with location m in our pulse train, and this variable can take certain values ym (perhaps 0 and 1). We imagine a statistical ensemble of pulse trains indexed by i, and at location m the ith pulse train has value ym(i) of Ym.
If all pulse trains in our ensemble of pulse trains count the same in our average (they do), then one can write <ymyn> in (35.4) in this manner ( ym now real)
E(YmYn) = (1/I) !Syntax Error, I ym(i)yn(i) in the sense of E(XY) = (1/I) !Syntax Error, Ix(i)y(i)
where E(q) means the expectation value of quantity q. This particular expectation value has a special name: it is called the correlation of X and Y. So in fact we have
<ymyn> = E(YmYn) = (1/I) !Syntax Error, I ym(i)yn(i) ≡ corr(YmYn) // correlation of Ym and Yn
If corr(YmYn) is a significant positive or negative number, then the random variables Ym and Yn are strongly correlated in some way. This means that the probabilities of values of ym(i) and yn(i) are related in some way. One might wonder how there could be a correlation between locations m and n in a pulse train. We shall see this happen in some line code examples below.
If Ym and Yn are independent random variables, we expect corr(YmYn) ≈ 0.
Two other expectation values of interest are these, the mean and the covariance :
E(Ym) = (1/I) !Syntax Error, Iym(i) = <ym> // mean of Ym
E( [Ym - <ym>][ [Yn - <yn>]) = (1/I) !Syntax Error, I[ ym(i) - <ym>] [yn(i)- <yn>]
= cov(YmYn) // covariance of Ym and Yn
If it happens that <ym> = 0 for a certain pulse train, then covariance and correlation are the same.
The digression is over, and we now compute the power in non-correlated pulse trains first in the infinite pulse train case, and then in the finite pulse train case.
(c) 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)
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)
The second double sum in (35.7) is just
!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.
(d) 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)
From Appendix A we have
!Syntax Error, I eink = 2π { } = 2πδ5(k,N) (A.30)
so 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.7). 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.7).
(e) 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: If we set p = 1 in the above box, we get α = 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 when p = 1 every pulse in the pulse train has the same amplitude A, 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 of the ensemble creates a continuous component in the spectral power density P(ω) .
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.
(f) 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 1 and τ = 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 a delta-function-like peak which, since 2πδ6(0,N) = (2N+1), has 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π).
First, here 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.
(g) 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 the 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).
(h) A paradox and its resolution
Now while we are here, we can back up and apply our statistical average directly to the spectrum in (34.6,7). Our 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 sum in (36.1), 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)
The HP Spectrum Analyzer measures <|X(ω)|2>, not <X(ω)>.
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.14) 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. A line code is to jazz the way a general signal is to music. 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.
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.14), 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) ]
= (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) ] // unipolar NRZ (36.3)
Plot: Ignoring the overall factor (V2/ω1) we make this plot of <P(ω)> :
Fig 36.4
The red curve should be scaled by the red factor 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 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) 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.14) 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
β = [p]AA + [(1-p)] BB = [p] (1)(1) + [(1-p)] (-1)(-1) = p + 1 - p = 1
(β - α) = 1 - [4p(p-1)+1] = 4p(1-p) (36.5)
Spectrum: The average spectral power density for the NRZ line code is :
<P(xω1)> = (V2/ω1) sinc2(πx) [ (β-α) + α!Syntax Error, I δ(x - m) ]
= (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) ] (36.6)
The spectrum is all continuous when p = 1/2 since then the DC portion is killed off.
Plot: Ignoring the overall factor (V2/ω1) we make this plot of <P(xω1)> :
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) 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 :
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.14), since A = 1 and B = 0 we have α = p2 and β = p.
Spectrum: The average spectral power density for the 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 only the even lines for m ≠0, so
<P(ω1x)> = (V/2)2 (1/ω1) sinc2( x) [ p(1-p) + p2δ(x) + p2!Syntax Error, I δ(x - m) ] (36.9)
where the sum includes positive and negative odd values of m.
Plot: Ignoring now the overall factor (V/2)2 (1/ω1) we get this power spectrum,
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.
(d) Manchester line code
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 = V to get
Xpulse(ω) = (2iV/ω) sin2(ωT1/4) = (2iV/ω) sin(ωT1/4) [sin(ωT1/4) / (ωT1/4 )] (ωT1/4 )
= (iVT1/2) sin(ωT1/4) sinc(ωT1/4)
Ppulse(ω) = = (1/2π) (V/2)2 T1 sin2(ωT1/4) sinc2(ωT1/4) (36.11)
Except for the sin2(ωT1/4) factor, this is identical to the RZ pulse spectral density (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.
Fig 36.11
Coefficients α and β: Thus, in (35.3) we have A = -1 (code 1), B = 1 (code 0), and p is the probability of having a coded value of 1. Thus
α = [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)
Spectrum: The average spectral power density for the Manchester line code is :
<P(ω)> = Ppulse(ω) [(β-α) + α !Syntax Error, I2πδ(ωT1- 2πm) ]
= (1/2π) (V/2)2 T1 sin2(ωT1/4) sinc2(ωT1/4) [4p(1-p) + (2p-1)2!Syntax Error, I2πδ(ωT1- 2πm)
= (V/2)2 (1/ω1) T1 sin2( ) sinc2( ) [4p(1-p) + (2p-1)2!Syntax Error, I δ( - m) ]
= (V/2)2 (1/ω1) sin2( x) sinc2( x) [4p(1-p) + (2p-1)2!Syntax Error, I δ(x - m) ]
= (V/2)2 (1/ω1) sin2( x) sinc2( x) [4p(1-p) + (2p-1)2!Syntax Error, I δ(x - m) ] (36.13)
where the even lines are killed off by the leading factors including the DC line m = 0. For p = 1/2 the spectrum is fully continuous.
Plot: Ignoring the leading factor (V/2)2 (1/ω1) the spectrum is
Fig 36.12
Power Partition:
lines power = !Syntax Error, I ω1dx<P(xω1)> = (V/2)2 (2p-1)2!Syntax Error, I dx sin2( x) sinc2( x)!Syntax Error, I δ(x - m)
= (V/2)2 (2p-1)2!Syntax Error, I sin2( m) sinc2( m) = (V/2)2 (2p-1)2!Syntax Error, I sin4( m) ( m)-2
= (V/2)2 (2p-1)2(2/π)2!Syntax Error, I 1 /m2 = (V/2)2 (2p-1)2(2/π)2 2!Syntax Error, I 1 /m2
= (V/2)2 (2p-1)2(2/π)2 2 (π2/8) = (2p-1)2 (V/2)2
continuum power = !Syntax Error, I ω1dx<P(xω1)> = V2 p(1-p) !Syntax Error, I dx sin2(πx) sinc2(πx) = (1/2) V2 p(1-p)
Therefore
total power = 0 + (2p-1)2 (V/2)2 + 2p(1-p) (V/2)2 = [1 - 2p(1-p)] (V/2)2 (36.14)
DC lines continuum AC
In the case p = 1/2, the lines power vanishes leaving only continuum power = (1/8)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 inteference (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 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 (34.10) which we repeat here, averaging over our statistical ensemble (yn real)
<|X(ω)|2 > = |Xpulse(ω)|2 !Syntax Error, I !Syntax Error, I <ymyn> eiω(m-n)T (37.1)
The usual factor |Xpulse(ω)|2 sits out front. 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 is < | Y"(z) |2> where Y"(z) is the Z Transform of yn from box (24.37).
Consider now the expressions given in (35.3) 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 both 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. In Section 35 (b) and (c), we assumed that α and β did not depend on n and m. Here β still does not, but α does, so we write it αm,n. Thus we have to rework the math in those sections. Our new version of (35.4) is this
<|X(ω)|2> = |Xpulse(ω)|2 { !Syntax Error, I !Syntax Error, Iαn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (37.9)
The double sum on the right is
!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 as
!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)
= !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
<|X(ω)|2> = |Xpulse(ω)|2 !Syntax Error, I[1] a ≡ (1-2p)
The sum is either 2πδ(0) for the infinite series, or (2N+1) for the finite series. Dividing both sides by this quantity times 2π T1 gives
= .
Then using the definitions in box (34.4) we get the final result for our AMI line code,
<P(ω) > = Ppulse(ω) a = (1-2p) (37.10)
which we then write in terms of x = ω/ω1 ,
<P(ω) > = Ppulse(ω) a = (1-2p) . (37.11)
Note that the AMI spectrum is completely continuous, there is no discrete part at all. The discrete part normally arises from ΣnΣm≠n double summation, but here we saw 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)
Plot: Ignoring now the overall factor (V/2)2 (1/ω1) we get this AMI p = 1/2 power spectrum,
Fig 37.3
Ths 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. 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 will reappear in with the next line code.
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.
Note: The coefficient averaging done in this Section for the AMI line code spectrum is based on the excellent discussion of Bennett and Davey, Data Transmission, p338-9. Our final result (37.10) is in agreement with their equation (19-123), except they have an extra factor of 2, presumably because they are working in terms of one-sided spectra, whereas we have allowed power density at both negative and positive ω. When the spectrum is folded like this to create an overall factor of 2, one must be careful to include only half the delta line at ω = 0 if such a line exists.
38. Change/Hold line codes
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)
In place of amplitude V, however, we will have A and B as described below.
Coding:
The coding uses two amplitudes A and B. Hold or Change coding means that a 0 is encoded as no change in the pulse amplitude (it remains what it was), whilc a 1 is encoded as a change A↔B. Here is an example starting with an A pulse:
data = [ 1 0 1 1 0 0 1]
encode = [ A B A A B B A]
Fig 38.1
Again we shall assume an arbitrary pulse shape and make it be square at the end.
Coefficients αm,n and β:
As with AMI coding, our starting point will be equation (34.10) which we repeat here:
<|X(ω)|2 > = |Xpulse(ω)|2 !Syntax Error, I !Syntax Error, I <ymyn> eiω(m-n)T (36.15)
First consider
<yn2> = [q]A2 + [(1-q)] B2
where q is the probability that slot n is yn= A. In this code, since only change and hold are coded, there is no preference for either amplitude, so q = 1/2 and
<yn2> = (A2+B2)/2 . (38.1)
Turning to <ynym>, consider this picture similar to that used for the AMI case, where the gap is kT1units. Here we arbitrarily drawn A > 0 and B < 0 and we draw the pulse as square, but it could be any shape and A and B can have any signs.
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 ampitude A in the statistical pulse stream. With these probabilities, we will have
<ymyn> = p(AA)k AA + p(AB)k AB + p(BA)k BA + p(BB)k BB . (38.2)
In case 1, there are a certain number of holds and changes during the gap such that the overall effect is a hold. The number of changes must have been even. But this same statement can be made about case 4, so cases 1 and 4 have the same probability of existing in the pulse stream. Similarly, cases 2 and 3 have the same probability and in those cases the number of changes must be odd. So now we have two variables to worry about and they add to 1/2 :
p(AA)k + p(AB)k = 1/2 (38.3)
<ymyn> = p(AA)k AA + p(AB)k AB + p(AB)k BA + p(AA)k BB
= p(AA)k ( AA + BB) + p(AB)k (AB + BA)
so
<ymyn> = p(AA)k( A2 + B2) + p(AB)k 2AB (38.4)
If the gap is zero, what is the probability of having an adjacent AA in the pulse stream? The probability of having the left A is 1/2, and the probability for an A being followed by a A is 1-p. Therefore
p(AA)0 = (1/2)(1-p) (38.5)
Consider now the gap as shown at value k. We claim that
p(AA)k+1 = p(AA)k (1-p) + p(AB)k p (38.6)
If it was an AA to start with with gap k, then to be AA with gap k+1 we have to add another A which has probability (1-p) since this is a hold. Conversely, if it was an AB we have to add an A which is a change, which has probability p. Then we can write
p(AA)k+1 = p(AA)k (1-p) + (1/2 - p(AA)k ) p (38.7)
To simplify notation, let Xk ≡ p(AA)k so that p(AB)k = 1/2 - Xk . Then ** and ** become
<ymyn> = Xk (A2 + B2) + (1/2 - Xk)2AB = (A-B)2Xk + AB (38.8)
Xk+1 = Xk (1-p) + (1/2-Xk) p = (1-2p)Xk + p/2 = aXk + p/2 a ≡ 1-2p (38.9)
Maple can solve this recursion equation as follows,
so we find that
Xk = (1 + ak+1)/4 = p(AA)k (38.10)
As a check, suppose p = 0 so there can be no changes. Then a = 1 and p(AA)k = 1/2. We can now have only case 1 or case 4, so we know p(AB)k = 0, and that is consistent with p(AA)k + p(AB)k = 1/2 .
Continuing,
<ymyn> = (A-B)2Xk + AB = (A-B)2(1 + ak+1)/4 + AB
= [ (A-B)2/4] ak+1 + (A-B)2/4 + AB
= [ (A-B)2/4] ak+1 + [(A+B)2/4]
= (1/4) [ (A-B)2 ak+1 + (A+B)2 ] (38.11)
and we note that the result is indeed symmetric under A↔ B. Again for p = 0 (a=1) we find that
<ymyn> = (A2+B2)/2 which is the same then as <yn2>. For a constant pulse train, the amount of slot separation makes no difference.
Since k = |m-n| - 1 in general, we get these final results
αn,m = <ymyn> = (1/4) [ a|m-n| (A-B)2 + (A+B)2 ]
β = <yn2> = (A2+B2)/2 (38.12)
To save space, we define
c ≡ (A-B)2/4 d ≡ (A+B)2/4 (38.13)
so then
αn,m = <ymyn> = c a|m-n| + d (38.14)
For later use, notice that
β - d = c (38.15)
Spectrum.
The spectrum is determined by (37.9) as in the AMI case,
<|X(ω)|2> = |Xpulse(ω)|2 { !Syntax Error, I !Syntax Error, Iαn,m [ eiω(m-n)T] +β!Syntax Error, I !Syntax Error, I [1] } . (38.16)
As in the AMU case, the β term in {...} is just
β!Syntax Error, I !Syntax Error, I [1] = β !Syntax Error, I [1] . (38.17)
Since αn,m = c a|m-n| + d , the first double sum has two terms. Again looking at the AMI case, we find that the first term is given by, again using b ≡ eiωT,
c !Syntax Error, I !Syntax Error, I a|m-n| b(m-n) = c !Syntax Error, I[1] . |a| < 1 (38.18)
To get the second term in the first double sum, we cannot just replace c by d and then set a = 1 to get
d !Syntax Error, I[1] (with a = 1) = d !Syntax Error, I[1] = -d !Syntax Error, I[1] // wrong
This is because the result is not valid at a = 1 for ω = 2πn. So we have to do this d sum separately:
d !Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = d !Syntax Error, I !Syntax Error, I bm-n .
We now omit the d for a while to evaluate this sum
!Syntax Error, I !Syntax Error, I bm-n = !Syntax Error, I [ !Syntax Error, I bm-n - !Syntax Error, I bm-n ]
= ( !Syntax Error, Ib-n ) ( !Syntax Error, Ibm ) - !Syntax Error, I[ 1 ] .
In the first factor, since b ≡ eiωT , we are facing squared delta functions, so we have to back off to finite N in our processing and later take N→∞, so we continue doing this,
= ( 2πδ5(ωT1,N) )2 - (2N+1)
= (2N+1) [ ( 2πδ5(ωT1,N) )2/ (2N+1) - 1 ]
= (2N+1) [ (2πδ6(ωT1,N) - 1 ]
Then we return to N = ∞ and use
limN→∞ δ6(k,N) = !Syntax Error, Iδ(k-2πm) (A.21)
to get our result
!Syntax Error, I !Syntax Error, I [ eiω(m-n)T] = [ !Syntax Error, I2π δ(ωT1-2πm) - 1 ] !Syntax Error, I[ 1 ] (38.19)
The -1 is what one gets from the limit a→1 of , but we see that there is more.
We can now assemble the pieces to get
<|X(ω)|2> = |Xpulse(ω)|2 { c + β - d + d !Syntax Error, I2π δ(ωT1-2πm) } !Syntax Error, I[ 1 ]
Recalling that β - d = c we write this as
<|X(ω)|2> = |Xpulse(ω)|2 { c [ +1] + d !Syntax Error, I2π δ(ωT1-2πm) } !Syntax Error, I[ 1 ]
and using **** we get
<P(ω) > = Ppulse(ω) { c [ +1] + d !Syntax Error, I2π δ(ωT1-2πm) } (38.20)
a = (1-2p) b = eiωT c = (A-B)2/4 d = (A+B)2/4
Maple now computes the square bracketed expression:
so that
[ +1] =
and then here is the final result for a Change/Hold line code :
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
(38.21)
where a = (2p-1) and p is the probability of a change while 1-p is the probability of a hold.
We shall now investigate various limits of this result.
Limit A → B.
<P(ω) > = Ppulse(ω) { A2!Syntax Error, I2π δ(ωT1-2πm) } (38.22)
In the case that the pulse is a box we use (34.22),
Ppulse(ω) = (1/ω1) sinc2(ωT1/2) (38.23)
we get
<P(ω) > = A2 Ppulse(ω) !Syntax Error, I2π δ(ωT1-2πm)
= A2!Syntax Error, I2π δ(ωT1-2πm) (1/ω1) sinc2(πm) = A2 2π δ(ωT1) (1/ω1)
= A2 δ(ω) (38.24)
This is exactly what we expect when A = B, since the pulse train is then just a constant value A !
Limit p→1 ( a → -1)
In this limit we expect to get a square wave pulse train between values A and B. We make use of this limit from Appendix A with 2k = ωT1,
lima→-1 = π !Syntax Error, Iδ(ωT1/2-mπ/2) = !Syntax Error, I2π δ(ωT1-mπ) (A.25b)
and then our Change/Hold spectral power density becomes
<P(ω) > = Ppulse(ω) { [ ]2 !Syntax Error, I2π δ(ωT1-mπ) + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
Installing the box pulse shape Ppulse(ω) = (1/ω1) sinc2(ωT1/2) and using (38.24) the second term becomes just [ ]2 δ(ω) while the first term is
[ ]2 !Syntax Error, I2π δ(ωT1-mπ) (1/ω1) sinc2(mπ/2)
= [ ]2 2π !Syntax Error, Iδ(ωT1-mπ) (1/ω1) (mπ/2)-2
= (A-B)2 (2/π2) !Syntax Error, I(1/m2) δ(ω - mω1/2)
giving a final result,
<P(ω) > = (A-B)2 (2/π2) !Syntax Error, I(1/m2) δ(ω - mω1/2) + [ ]2 δ(ω) (38.25)
Comparing the first term with (34.23), we see that it is the spectrum of a square wave whose peak to peak amplitude is (A-B), which is exactly what it should be. The second term then correctly accounts for the expected average DC level of (A+B)/2.
Limit p→0 ( a → +1)
In this case for a square wave we expect to get a result appropriate for an ensemble of pulse trains half of which have constant value A and the other have constant value B, since all pulse trains are in a permanent hold state with p = 0, nothing changes. This time we use this limit (A.23c) with 2k = ωT1
lima→+1 = π !Syntax Error, Iδ(ωT1/2 - mπ) = !Syntax Error, I2πδ(ωT1 - m2π) (A.23c)
to get
<P(ω) > = Ppulse(ω) { [ ]2 !Syntax Error, I2π δ(ωT1 - 2mπ) + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
Installing the square pulse spectrum (38.23) Ppulse(ω) = (1/ω1) sinc2(ωT1/2), the second term according to (38.24) becomes [ ]2 δ(ω) while the first term is
[ ]2 !Syntax Error, I2π δ(ωT1-2mπ) (1/ω1) sinc2(mπ) = 0
giving the result
<P(ω) > = [ ]2 δ(ω) (38.26)
This is the expected result, appropriate for an average DC level of (A+B)/2.
Limit p→1/2 ( a → 0)
Recall the general result
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
The ratio becomes unity so the result is
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) } (38.27)
Box Shaped Pulse for general p:
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
Ppulse(ω) = (1/ω1) sinc2(ωT1/2)
As usual, the second term becomes [ ]2 δ(ω) , so the result is
<P(ω) > = [ ]2 (1/ω1) sinc2(ωT1/2) + [ ]2 δ(ω) (38.28)
Box Shaped Pulse for p = 1/2 (a = 0):
<P(ω) > = [ ]2 (1/ω1) sinc2(ωT1/2) + [ ]2 δ(ω)
(38.29)
<P(ω) > = (1/ω1) { [ ]2 sinc2(πx) + [ ]2 δ(x) } x ≡
Ignoring the factor (1/ω1) we make this plot of <P(ω) > which is the same as for unipolar NRZ but with different scaling factors for the two terms,
Fig 38.3
Example: NRZI line code
Coding: This is a special case of Change/Hold encoding where A = 1 and B = 0.
data = [ 1 0 1 1 0 0 1]
encode = [ 1 0 1 1 0 0 1]
Fig 38.4
NRZI means NRZ Invert-on-1, where NRZ means non return to zero (see comments at the start of Secton 36). NRZI does not mean "NRZ inverted". Sometimes people use A = 0 and B = 1 so then transitions happen on 0 instead of 1, as in the standard for USB (Universal Serial Bus). We shall use A=1, B=0. The Change/Hold spectra are symmetric in A↔B, so the NRZI spectra are the same for either convention.
Coefficients αm,n and β:
αn,m = <ymyn> = (1/4) [ a|m-n| (A-B)2 + (A+B)2 ] = (1/4) [ a|m-n| + 1 ]
β = <yn2> = (A2+B2)/2 = 1/2 (38.30)
Spectrum.
<P(ω) > = Ppulse(ω) { [ ]2 + [ ]2 !Syntax Error, I2π δ(ωT1-2πm) }
= Ppulse(ω) { + !Syntax Error, I2π δ(ωT1-2πm) } (38.31)
Box Shaped Pulse for general p:
<P(ω) > = (1/ω1) sinc2(ωT1/2) + δ(ω) (38.32)
Box Shaped Pulse for p = 1/2 (a = 0):
<P(ω) > = (1/ω1) { sinc2(πx) + δ(x) } x ≡ (38.33)
The plot is that just shown above, but with each factor being 1/4.
This spectrum is exactly the same as that for unipolar NRZ shown in (36.3) with V = 1.
One way to understand this fact is that for every NRZ sequence yn there is a NRZI sequence y'n given by
y'n = yn – yn-1 // mod-2 math
This equation can be inverted to give (assume y0= 0)
yn = Σm=1n y'm n = 1,2,3....
Consider the space of all random sequences of 1's and 0's ( random pulse trains p = 1/2). Since we just showed that the relation {yn} ↔ {y'n} is one-to-one, the mapping f: {yn}→{y'n} just reorders the set of random sequences in the ensemble used to compute the spectral power density, so that density cannot change.
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)
The 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π { } = 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 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 thus 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 Equation
Theorem: For N and s both integers (N > 0)
!Syntax Error, Ie+ims(2π/N) = N!Syntax Error, Iδs,mN . (B.1)
This theorem 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.
References
(GR7) I.S. Gradshteyn and I.M. Ryzhik, Table of Integrals, Series, and Products, 7th Ed ( Academic Press, New York, 2007). Editor Dan Zwillinger is collecting errata.
W.R. Bennett and J.R. Davey, Data Transmission (McGraw-Hill, New York, 1965).
S. Lipschutz, M. Spiegel and J. Liu, Schaum's Outline of Mathematical Handbook of Formulas and Tables (4th Ed.), (McGraw-Hill, 2012). The excellent original 1968 edition by Murray Spiegel has been the author's 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.
Smythe is referred to from Appendix A intro. Maybe drop this reference since so old.
Stakgold for sure!
Colombeau 1990 mentioned in Appendix A.
Erdelyi, tables of fourier sine and cosine transforms, from near (1.8)
Bateman Manuscript Project volume 4 (see Erdelyi. et. al.).. large table of Laplace Transforms.
Hermann on Fourier Analysis generalized to groups, from Section 3 end.
M.E.V. Valkenburg and W.M. Middleton (editors), Reference Data for Engineers: Radio, Electronics, Computers and Communications, 9th Ed. (Newnes/Elsevier, Boston, 2001).