Parseval’s theorem

Parseval’s theorem, also known as Plancherel’s theorem or Rayleigh’s energy theorem, is a fundamental result in Fourier analysis and signal processing. It relates the energy (or power) of a function (or signal) to the energy (or power) of its Fourier transform. In essence, it states that the total energy remains the same whether you calculate it in the time domain or in the frequency domain.

Basic definitions

Time domain & frequency domain

A discrete-time signal is represented in time domain as a function of time, denoted as \(x(t)\). In the frequency domain, the signal is represented as a function of frequency, obtained by taking the Discrete-Time Fourier transform (DTFT) of the time-domain signal, denoted as \(X[e^{j \omega}]\).

Energy of a signal

For discrete-time signals, the energy is defined as:

$$ E = \sum_{n = -\infty}^{\infty} |x[n]|^2$$

Interpretation of Parseval’s theorem for discrete-time signals

For a discrete-time signal \(x[n]\) and its Discrete-Time Fourier Transform (DTFT) \(X(e^{j \omega})\) , Parseval’s theorem states:

$$\sum_{n=-\infty}^{\infty} |x[n]|^2 = \frac{1}{2 \pi} \int_{-\pi}^{\pi} |X(e^{j \omega})|^2$$

Parseval’s theorem implies that the total energy of a signal calculated in the time domain is equal to the total energy calculated in the frequency domain (up to a scaling factor). The scaling factor \(\frac{1}{2 \pi}\) arises due to the definition of the Fourier transform and the units of frequency.

Discrete Fourier Transform (DFT) Version

Suppose if the \(x[n]\) is a discrete-time sequence of complex numbers of length N : \(x_n = \{x_0, x_1, \cdots, x_{N-1}\}\), its N-point discrete Fourier transform (DFT) 1: \(X_k = \{x_0, x_1, x_{N-1}\}\) is given by

\[X[k] = \sum_{n=0}^{N-1} x[n] e^{-j\frac{2 \pi}{N} k n} \]

The inverse discrete Fourier transform is given by

\[\tilde{x}[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] e^{j \frac{2 \pi}{N} kn}\]

Suppose if \(x[n]\) and \(y[n]\) are two such sequences that follows the above definitions, the Parseval’s theorem is written as

\[\boxed{ \sum_{n=0}^{N-1} x[n] y^{\ast}[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] Y^{\ast}[k]} \]

where, \(\ast\) indicates conjugate operation.

Deriving Parseval’s theorem

\[\begin{aligned} \sum_{n=0}^{N-1} x[n] y^{\ast}[n] &= \sum_{n=0}^{N-1} x[n] \left(\frac{1}{N} \sum_{k=0}^{N-1} Y[k] e^{j\frac{2 \pi}{N} k n} \right )^\ast \\ &= \frac{1}{N}\sum_{n=0}^{N-1} x[n] \sum_{k=0}^{N-1} Y^\ast[k] e^{-j\frac{2 \pi}{N} k n} \\ &= \frac{1}{N} \sum_{k=0}^{N-1} Y^\ast[k] \cdot \sum_{n=0}^{N-1} x[n] e^{-j\frac{2 \pi}{N} k n} \\ &= \frac{1}{N} \sum_{k=0}^{N-1} X[k] Y^\ast[k] \end{aligned}\]

If \(x[n] = y[n]\), then

$$ \begin{aligned} \sum_{n=0}^{N-1} x[n] x^{\ast}[n] &= \frac{1}{N} \sum_{k=0}^{N-1} X[k] X^\ast[k] \\ \Rightarrow \sum_{n=0}^{N-1} |x[n]|^2 &= \frac{1}{N} \sum_{k=0}^{N-1} |X[k]|^2\end{aligned} $$

Time-domain and frequency domain representations are equivalent manifestations of the same signal. Therefore, the energy of the signal computed from time domain samples must be equal to the total energy computed from frequency domain representation.

Python code

Let’s verify Parseval’s Theorem with a simple discrete-time signal example. Here, a basic signal and its DFT are considered and it is shown that the energy calculated in both domains is the same (up to the scaling factor).

import numpy as np

x = np.array([1, 2, 1, 0])

# Time Domain Energy
energy_time = np.sum(np.abs(x)**2)
print(f"Energy in time domain: {energy_time}")

# DFT
X = np.fft.fft(x)

# Frequency Domain Energy
energy_frequency = (1/len(x)) * np.sum(np.abs(X)**2)
print(f"Energy in frequency domain: {energy_frequency}")

Code output

Energy in time domain: 6.0
Energy in frequency domain: 6.0

This example clearly shows how Parseval’s Theorem holds true. The total “energy” of the signal remains the same whether you calculate it from the original signal values or from its frequency components.

Reference

[1] Bertrand Delgutte and Julie Greenberg , “The discrete Fourier Transform”, Biomedical Signal and Image Processing Spring 2005, MIT web

Books by the author

Wireless Communication Systems in Matlab
Wireless Communication Systems in Matlab
Second Edition(PDF)

PoorBelow averageAverageGoodExcellent (182 votes, average: 3.64 out of 5)

Digital modulations using Python
Digital Modulations using Python
(PDF ebook)

PoorBelow averageAverageGoodExcellent (137 votes, average: 3.57 out of 5)

digital_modulations_using_matlab_book_cover
Digital Modulations using Matlab
(PDF ebook)

PoorBelow averageAverageGoodExcellent (137 votes, average: 3.64 out of 5)

Hand-picked Best books on Communication Engineering
Best books on Signal Processing

Post your valuable comments !!!