Hilbert transform
In mathematics and in signal processing, the Hilbert transform is a linear operator which takes a function, u(t), and produces a function, H(u)(t), with the same domain. The Hilbert transform is also important in the field of signal processing where it is used to derive the analytic representation of a signal u(t). This means that real signal u(t) is extended into the complex plane such that it satisfies the CauchyRiemann equations. For example, the Hilbert transform leads to the harmonic conjugate of a given function in Fourier analysis, aka harmonic analysis. Equivalently, it is an example of a singular integral operator and of a Fourier multiplier.
The Hilbert transform was originally defined for periodic functions, or equivalently for functions on the circle, in which case it is given by convolution with the Hilbert kernel. More commonly, however, the Hilbert transform refers to a convolution with the Cauchy kernel, for functions defined on the real line R (the boundary of the upper halfplane). The Hilbert transform is closely related to the Paley–Wiener theorem, another result relating holomorphic functions in the upper halfplane and Fourier transforms of functions on the real line.
The Hilbert transform is named after David Hilbert, who first introduced the operator in order to solve a special case of the Riemann–Hilbert problem for holomorphic functions.
Contents
 1 Introduction
 2 History
 3 Relationship with the Fourier transform
 4 Table of selected Hilbert transforms
 5 Domain of definition
 6 Properties
 7 Extending the domain of definition
 8 Conjugate functions
 9 Hilbert transform on the circle
 10 Hilbert transform in signal processing
 11 Discrete Hilbert transform
 12 Number Theoretic Hilbert transform
 13 See also
 14 Notes
 15 References
 16 External links
Introduction
The Hilbert transform of u can be thought of as the convolution of u(t) with the function h(t) = 1/(πt). Because h(t) is not integrable, the integrals defining the convolution do not converge. Instead, the Hilbert transform is defined using the Cauchy principal value (denoted here by p.v.). Explicitly, the Hilbert transform of a function (or signal) u(t) is given by:
provided this integral exists as a principal value. This is precisely the convolution of u with the tempered distribution p.v. 1/πt (due to Template:Harvtxt; see Template:Harvtxt). Alternatively, by changing variables, the principal value integral can be written explicitly Template:Harv as:
When the Hilbert transform is applied twice in succession to a function u, the result is negative u:
provided the integrals defining both iterations converge in a suitable sense. In particular, the inverse transform is −H. This fact can most easily be seen by considering the effect of the Hilbert transform on the Fourier transform of u(t) (see Relationship with the Fourier transform, below).
For an analytic function in upper halfplane, the Hilbert transform describes the relationship between the real part and the imaginary part of the boundary values. That is, if f(z) is analytic in the plane Im z > 0 and u(t) = Re f(t + 0·i ) then Im f(t + 0·i ) = H(u)(t) up to an additive constant, provided this Hilbert transform exists.
Notation
In signal processing the Hilbert transform of u(t) is commonly denoted by (e.g., Template:Harvnb). However, in mathematics, this notation is already extensively used to denote the Fourier transform of u(t) (e.g., Template:Harvnb). Occasionally, the Hilbert transform may be denoted by . Furthermore, many sources define the Hilbert transform as the negative of the one defined here (e.g., Template:Harvnb).
History
The Hilbert transform arose in Hilbert's 1905 work on a problem posed by Riemann concerning analytic functions (Template:Harvtxt; Template:Harvtxt) which has come to be known as the Riemann–Hilbert problem. Hilbert's work was mainly concerned with the Hilbert transform for functions defined on the circle (Template:Harvnb; Template:Harvnb). Some of his earlier work related to the Discrete Hilbert Transform dates back to lectures he gave in Göttingen. The results were later published by Hermann Weyl in his dissertation Template:Harv. Schur improved Hilbert's results about the discrete Hilbert transform and extended them to the integral case Template:Harv. These results were restricted to the spaces L^{2} and ℓ^{2}. In 1928, Marcel Riesz proved that the Hilbert transform can be defined for u in L^{p}(R) for 1 ≤ p < ∞, that the Hilbert transform is a bounded operator on L^{p}(R) for 1 < p < ∞, and that similar results hold for the Hilbert transform on the circle as well as the discrete Hilbert transform Template:Harv. The Hilbert transform was a motivating example for Antoni Zygmund and Alberto Calderón during their study of singular integrals Template:Harv. Their investigations have played a fundamental role in modern harmonic analysis. Various generalizations of the Hilbert transform, such as the bilinear and trilinear Hilbert transforms are still active areas of research today.
Relationship with the Fourier transform
The Hilbert transform is a multiplier operator Template:Harv. The symbol of H is σ_{H}(ω) = −i sgn(ω) where sgn is the signum function. Therefore:
where denotes the Fourier transform. Since sgn(x) = sgn(2πx), it follows that this result applies to the three common definitions of .
By Euler's formula,
Therefore H(u)(t) has the effect of shifting the phase of the negative frequency components of u(t) by +90° (π/2 radians) and the phase of the positive frequency components by −90°. And i·H(u)(t) has the effect of restoring the positive frequency components while shifting the negative frequency ones an additional +90°, resulting in their negation.
When the Hilbert transform is applied twice, the phase of the negative and positive frequency components of u(t) are respectively shifted by +180° and −180°, which are equivalent amounts. The signal is negated; i.e., H(H(u)) = −u, because:
Table of selected Hilbert transforms
Signal 
Hilbert transform^{[fn 1]} 

^{[fn 2]}  
^{[fn 2]}  
Sinc function 

Rectangular function 

Dirac delta function 

Characteristic Function 
 Notes
 ↑ Some authors (e.g., Bracewell) use our −H as their definition of the forward transform. A consequence is that the right column of this table would be negated.
 ↑ ^{2.0} ^{2.1} The Hilbert transform of the sin and cos functions can be defined in a distributional sense, if there is a concern that the integral defining them is otherwise conditionally convergent. In the periodic setting this result holds without any difficulty.
An extensive table of Hilbert transforms is available (Template:Harvnb). Note that the Hilbert transform of a constant is zero.
Domain of definition
It is by no means obvious that the Hilbert transform is welldefined at all, as the improper integral defining it must converge in a suitable sense. However, the Hilbert transform is welldefined for a broad class of functions, namely those in L^{p}(R) for 1< p <∞.
More precisely, if u is in L^{p}(R) for 1<p<∞, then the limit defining the improper integral
exists for almost every t. The limit function is also in L^{p}(R) and is in fact the limit in the mean of the improper integral as well. That is,
as ε→0 in the L^{p}norm, as well as pointwise almost everywhere, by the Titchmarsh theorem Template:Harv.
In the case p=1, the Hilbert transform still converges pointwise almost everywhere, but may fail to be itself integrable even locally Template:Harv. In particular, convergence in the mean does not in general happen in this case. The Hilbert transform of an L^{1} function does converge, however, in L^{1}weak, and the Hilbert transform is a bounded operator from L^{1} to L^{1,w} Template:Harv. (In particular, since the Hilbert transform is also a multiplier operator on L^{2}, Marcinkiewicz interpolation and a duality argument furnishes an alternative proof that H is bounded on L^{p}.)
Properties
Boundedness
If 1<p<∞, then the Hilbert transform on L^{p}(R) is a bounded linear operator, meaning that there exists a constant C_{p} such that
for all u∈L^{p}(R). This theorem is due to Template:Harvtxt; see also Template:Harvtxt. The best constant C_{p} is given by
This result is due to Template:Harv; see also Template:Harvtxt. The same best constants hold for the periodic Hilbert transform.
The boundedness of the Hilbert transform implies the L^{p}(R) convergence of the symmetric partial sum operator
to f in L^{p}(R), see for example Template:Harv.
Antiself adjointness
The Hilbert transform is an antiself adjoint operator relative to the duality pairing between L^{p}(R) and the dual space L^{q}(R), where p and q are Hölder conjugates and 1 < p,q < ∞. Symbolically,
for u ∈ L^{p}(R) and v ∈ L^{q}(R) Template:Harv.
Inverse transform
The Hilbert transform is an antiinvolution Template:Harv, meaning that
provided each transform is welldefined. Since H preserves the space L^{p}(R), this implies in particular that the Hilbert transform is invertible on L^{p}(R), and that
Differentiation
Formally, the derivative of the Hilbert transform is the Hilbert transform of the derivative, i.e. these two linear operators commute:
Iterating this identity,
This is rigorously true as stated provided u and its first k derivatives belong to L^{p}(R) Template:Harv. One can check this easily in the frequency domain, where differentiation becomes multiplication by ω.
Convolutions
The Hilbert transform can formally be realized as a convolution with the tempered distribution Template:Harv
Thus formally,
However, a priori this may only be defined for u a distribution of compact support. It is possible to work somewhat rigorously with this since compactly supported functions (which are distributions a fortiori) are dense in L^{p}. Alternatively, one may use the fact that h(t) is the distributional derivative of the function logt/π; to wit
For most operational purposes the Hilbert transform can be treated as a convolution. For example, in a formal sense, the Hilbert transform of a convolution is the convolution of the Hilbert transform on either factor:
This is rigorously true if u and v are compactly supported distributions since, in that case,
By passing to an appropriate limit, it is thus also true if u ∈ L^{p} and v ∈ L^{r} provided
a theorem due to Template:Harvtxt.
Invariance
The Hilbert transform has the following invariance properties on L^{2}(R).
 It commutes with translations. That is, it commutes with the operators T_{a}ƒ(x) = ƒ(x + a) for all a in R
 It commutes with positive dilations. That is it commutes with the operators M_{λ}ƒ(x) = ƒ(λx) for all λ > 0.
 It anticommutes with the reflection Rƒ(x) = ƒ(−x).
Up to a multiplicative constant, the Hilbert transform is the only bounded operator on L^{2} with these properties Template:Harv.
In fact there is a larger group of operators commuting with the Hilbert transform. The group SL(2,R) acts by unitary operators U_{g} on the space L^{2}(R) by the formula
This unitary representation is an example of a principal series representation of SL(2,R). In this case it is reducible, splitting as the orthogonal sum of two invariant subspaces, Hardy space H^{2}(R) and its conjugate. These are the spaces of L^{2} boundary values of holomorphic functions on the upper and lower halfplanes. H^{2}(R) and its conjugate consist of exactly those L^{2} functions with Fourier transforms vanishing on the negative and positive parts of the real axis respectively. Since the Hilbert transform is equal to H = i (2P  I), with P being the orthogonal projection from L^{2}(R) onto H^{2}(R), it follows that H^{2}(R) and its orthogonal are eigenspaces of H for the eigenvalues ± i. In other words H commutes with the operators U_{g}. The restrictions of the operators U_{g} to H^{2}(R) and its conjugate give irreducible representations of SL(2,R)—the socalled limit of discrete series representations.^{[1]}
Extending the domain of definition
Hilbert transform of distributions
It is further possible to extend the Hilbert transform to certain spaces of distributions Template:Harv. Since the Hilbert transform commutes with differentiation, and is a bounded operator on L^{p}, H restricts to give a continuous transform on the inverse limit of Sobolev spaces:
The Hilbert transform can then be defined on the dual space of , denoted , consisting of L^{p} distributions. This is accomplished by the duality pairing: for , define by
It is possible to define the Hilbert transform on the space of tempered distributions as well by an approach due to Template:HarvtxtTemplate:Page needed, but considerably more care is needed because of the singularity in the integral.
Hilbert transform of bounded functions
The Hilbert transform can be defined for functions in L^{∞}(R) as well, but it requires some modifications and caveats. Properly understood, the Hilbert transform maps L^{∞}(R) to the Banach space of bounded mean oscillation (BMO) classes.
Interpreted naively, the Hilbert transform of a bounded function is clearly illdefined. For instance, with u = sgn(x), the integral defining H(u) diverges almost everywhere to ±∞. To alleviate such difficulties, the Hilbert transform of an L^{∞}function is therefore defined by the following regularized form of the integral
where as above h(x) = 1/πx and
The modified transform H agrees with the original transform on functions of compact support by a general result of Template:Harvtxt; see Template:Harvtxt. The resulting integral, furthermore, converges pointwise almost everywhere, and with respect to the BMO norm, to a function of bounded mean oscillation.
A deep result of Template:Harvtxt and Template:Harvtxt is that a function is of bounded mean oscillation if and only if it has the form ƒ + H(g) for some ƒ, g ∈ L^{∞}(R).
Conjugate functions
The Hilbert transform can be understood in terms of a pair of functions f(x) and g(x) such that the function
is the boundary value of a holomorphic function F(z) in the upper halfplane Template:Harv. Under these circumstances, if f and g are sufficiently integrable, then one is the Hilbert transform of the other.
Suppose that f ∈ L^{p}(R). Then, by the theory of the Poisson integral, f admits a unique harmonic extension into the upper halfplane, and this extension is given by
which is the convolution of f with the Poisson kernel
Furthermore, there is a unique harmonic function v defined in the upper halfplane such that F(z) = u(z) + iv(z) is holomorphic and
This harmonic function is obtained from f by taking a convolution with the conjugate Poisson kernel
Thus
Indeed, the real and imaginary parts of the Cauchy kernel are
so that F = u + iv is holomorphic by Cauchy's integral formula.
The function v obtained from u in this way is called the harmonic conjugate of u. The (nontangential) boundary limit of v(x,y) as y → 0 is the Hilbert transform of f. Thus, succinctly,
Titchmarsh's theorem
A theorem due to Edward Charles Titchmarsh makes precise the relationship between the boundary values of holomorphic functions in the upper halfplane and the Hilbert transform Template:Harv. It gives necessary and sufficient conditions for a complexvalued squareintegrable function F(x) on the real line to be the boundary value of a function in the Hardy space H^{2}(U) of holomorphic functions in the upper halfplane U.
The theorem states that the following conditions for a complexvalued squareintegrable function F : R → C are equivalent:
 F(x) is the limit as z → x of a holomorphic function F(z) in the upper halfplane such that
 The real and imaginary parts of the Fourier transform of F(x) are Hilbert transforms of each other.
 The Fourier transform vanishes for x < 0.
A weaker result is true for functions of class L^{p} for p > 1 Template:Harv. Specifically, if F(z) is a holomorphic function such that
for all y, then there is a complexvalued function F(x) in L^{p}(R) such that F(x + iy) → F(x) in the L^{p} norm as y → 0 (as well as holding pointwise almost everywhere). Furthermore,
where ƒ is a realvalued function in L^{p}(R) and g is the Hilbert transform (of class L^{p}) of ƒ.
This is not true in the case p = 1. In fact, the Hilbert transform of an L^{1} function ƒ need not converge in the mean to another L^{1} function. Nevertheless Template:Harv, the Hilbert transform of ƒ does converge almost everywhere to a finite function g such that
This result is directly analogous to one by Andrey Kolmogorov for Hardy functions in the disc Template:Harv.
Riemann–Hilbert problem
One form of the Riemann–Hilbert problem seeks to identify pairs of functions F_{+} and F_{−} such that F_{+} is holomorphic on the upper halfplane and F_{−} is holomorphic on the lower halfplane, such that for x along the real axis,
where f(x) is some given realvalued function of x ∈ R. The lefthand side of this equation may be understood either as the difference of the limits of F_{±} from the appropriate halfplanes, or as a hyperfunction distribution. Two functions of this form are a solution of the Riemann–Hilbert problem.
Formally, if F_{±} solve the Riemann–Hilbert problem
then the Hilbert transform of f(x) is given by
Hilbert transform on the circle
{{#invoke:see alsoseealso}} For a periodic function f the circular Hilbert transform is defined as
The circular Hilbert transform is used in giving a characterization of Hardy space and in the study of the conjugate function in Fourier series. The kernel,
 is known as the Hilbert kernel since it was in this form the Hilbert transform was originally studied Template:Harv.
The Hilbert kernel (for the circular Hilbert transform) can be obtained by making the Cauchy kernel 1/x periodic. More precisely, for x≠0
Many results about the circular Hilbert transform may be derived from the corresponding results for the Hilbert transform from this correspondence.
Another more direct connection is provided by the Cayley transform C(x) = (x – i) / (x + i), which carries the real line onto the circle and the upper half plane onto the unit disk. It induces a unitary map
of L^{2}(T) onto L^{2}(R). The operator U carries the Hardy space H^{2}(T) onto the Hardy space H^{2}(R).^{[2]}
Hilbert transform in signal processing
Bedrossian's theorem
Bedrossian's theorem states that the Hilbert transform of the product of a lowpass and a highpass signal with nonoverlapping spectra is given by the product of the lowpass signal and the Hilbert transform of the highpass signal, or
where f_{LP} and f_{HP} are the low and highpass signals respectively Template:Harv.
Amplitude modulated signals are modeled as the product of a bandlimited "message" waveform, u_{m}(t), and a sinusoidal "carrier":
When u_{m}(t) has no frequency content above the carrier frequency, then by Bedrossian's theorem:
Analytic representation
{{#invoke:mainmain}} {{ safesubst:#invoke:Unsubst$N=Unreferenced section date=__DATE__ $B= {{ safesubst:#invoke:Unsubst$N=Unreferenced date=__DATE__ $B= {{#invoke:Message boxambox}} }} }} In the context of signal processing, the conjugate function interpretation of the Hilbert transform, discussed above, gives the analytic representation of a signal u(t):
which is a holomorphic function in the upper half plane.
For the narrowband model [above], the analytic representation is:
This complex heterodyne operation shifts all the frequency components of u_{m}(t) above 0 Hz. In that case, the imaginary part of the result is a Hilbert transform of the real part. This is an indirect way to produce Hilbert transforms.
Phase/frequency modulation
{{ safesubst:#invoke:Unsubst$N=Unreferenced section date=__DATE__ $B= {{ safesubst:#invoke:Unsubst$N=Unreferenced date=__DATE__ $B= {{#invoke:Message boxambox}} }} }} The form:
is called phase (or frequency) modulation. The instantaneous frequency is For sufficiently large ω, compared to :
and:
Single sideband modulation (SSB)
{{ safesubst:#invoke:Unsubst$N=Unreferenced section date=__DATE__ $B= {{ safesubst:#invoke:Unsubst$N=Unreferenced date=__DATE__ $B= {{#invoke:Message boxambox}} }} }} {{#invoke:mainmain}} When u_{m}(t) in Template:EquationNote is also an analytic representation (of a message waveform), that is:
the result is singlesideband modulation:
whose transmitted component is:
Causality
{{ safesubst:#invoke:Unsubst$N=Unreferenced section date=__DATE__ $B= {{ safesubst:#invoke:Unsubst$N=Unreferenced date=__DATE__ $B= {{#invoke:Message boxambox}} }} }} The function h with h(t) = 1/(πt) is a noncausal filter and therefore cannot be implemented as is, if u is a timedependent signal. If u is a function of a nontemporal variable (e.g., spatial) the noncausality might not be a problem. The filter is also of infinite support which may be a problem in certain applications. Another issue relates to what happens with the zero frequency (DC), which can be avoided by assuring that s does not contain a DCcomponent.
A practical implementation in many cases implies that a finite support filter, which in addition is made causal by means of a suitable delay, is used to approximate the computation. The approximation may also imply that only a specific frequency range is subject to the characteristic phase shift related to the Hilbert transform. See also quadrature filter.
Discrete Hilbert transform
For a discrete function, u[n], with discretetime Fourier transform (DTFT), U(ω), the Hilbert transform is given by:
where:
And by the convolution theorem, an equivalent formulation is:
where:
When the convolution is performed numerically, an FIR approximation is substituted for h[n], as shown in Figure 1, and we see rolloff of the passband at the low and high ends (0 and Nyquist), resulting in a bandpass filter. The high end can be restored, as shown in Figure 2, by an FIR that more closely resembles samples of the smooth, continuoustime h(t). But as a practical matter, a properlysampled u[n] sequence has no useful components at those frequencies. As the impulse response gets longer, the low end frequencies are also restored.^{[3]}
With an FIR approximation to h[n], a method called overlapsave is an efficient way to perform the convolution on a long u[n] sequence. Sometimes the array FFT{h[n]} is replaced by corresponding samples of σ_{H}(ω). That has the effect of convolving with the periodic summation:^{[4]}
Figure 3 compares a halfcycle of h_{N}[n] with an equivalent length portion of h[n]. The difference between them and the fact that they are not shorter than the segment length (N) are sources of distortion that are managed (reduced) by increasing the segment length and overlap parameters.
The popular MATLAB function, hilbert(u,N), returns an approximate discrete Hilbert transform of u[n] in the imaginary part of the complex output sequence. The real part is the original input sequence, so that the complex output is an analytic representation of u[n]. Similar to the discussion above, hilbert(u, N) only uses samples of the sgn(ω) distribution and therefore convolves with h_{N}[n]. Distortion can be managed by choosing N larger than the actual u[n] sequence and discarding an appropriate number of output samples. An example of this type of distortion is shown in Figure 4.
Number Theoretic Hilbert transform
The number theoretic Hilbert transform is an extension^{[5]} of the discrete Hilbert transform to integers modulo an appropriate prime number. In this it follows the generalization of discrete Fourier transform to number theoretic transforms. The number theoretic Hilbert transform can be used to generate sets of orthogonal discrete sequences.^{[6]}
See also
 Analytic signal
 Harmonic conjugate
 Hilbert spectroscopy
 Hilbert transform in the complex plane
 Hilbert–Huang transform
 Kramers–Kronig relation
 Singlesideband signal
 Singular integral operators of convolution type
Notes
 ↑ See:
 ↑ Template:Harvnb
 ↑ Hilbert studied the discrete transform: and showed that for u(n) in ℓ^{2} the sequence H(u)[n] is also in ℓ^{2} (see Hilbert's inequality). An elementary proof of this fact can be found in Template:Harv. This transform was used by E. C. Titchmarsh to give alternate proofs of the results of M. Riesz in the continuous case (Template:Harvnb; Template:Harvnb), but it is not used for pragmatic signal processing.
 ↑ see Convolution Theorem
 ↑ http://link.springer.com/article/10.1007%2Fs0003401497598
 ↑ http://link.springer.com/article/10.1007%2Fs0003401498791#page1
References
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=book }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
 {{#invoke:citation/CS1citation
CitationClass=citation }}.
External links
 Derivation of the boundedness of the Hilbert transform
 Mathworld Hilbert transform — Contains a table of transforms
 Analytic Signals and Hilbert Transform Filters
 Weisstein, Eric W., "Titchmarsh theorem", MathWorld.
 Mathias Johansson, "The Hilbert transform" a student level summary to Hilbert transformation. Template:Dead link (via www.archive.org)
 GS256 Lecture 3: Hilbert Transformation, an entry level introduction to Hilbert transformation. Template:Dead link (via www.archive.org)