Fast Fourier Series Evaluation for Bandlimited Periodic Signals¶
Theory¶
Let \(\phi: \mathbb{R} \to \mathbb{C}\) be a \(T\)-periodic function of bandwidth \(N_{FS} = 2 N + 1\). Then \(\phi\) is fully characterized by its \(N_{FS}\) Fourier Series coefficients \(\{\phi_{k}^{FS}, k = -N, \ldots, N\}\) such that
where \(\{\phi_{k}^{FS}, k = -N, \ldots, N\}\) is defined as
with \(T_{c}\) being one of \(\phi\)’s period mid-points.
Computing the \(\phi_{k}^{FS}\) with (2) can be prohibitive when closed-form solutions are unavailable. However, it is possible to calculate the FS coefficients exactly from \(N_{s} = N_{FS} + Q\) judiciously-placed samples of \(\phi\), where \(Q \in \mathbb{N}\) can be arbitrarily chosen.
\(N_{s} \in 2 \mathbb{N} + 1\)¶
Theorem
Let \(\phi: \mathbb{R} \to \mathbb{C}\) be a \(T\)-periodic function of bandwidth \(N_{FS} = 2 N + 1\), with
\(T_{c}\): mid-point of one period,
\(\{\phi_{k}^{FS}, k = -N, \ldots, N\}\): Fourier Series coefficients of \(\phi\).
Moreover, let \(Q \in 2 \mathbb{N}\) be an arbitrary even integer such that
\(N_{s} = N_{FS} + Q\),
\(M = (N_{s} - 1) / 2\).
Then the following holds:
where \(\text{(i)DFT}\) is as defined in The Discrete Fourier Transform and
\(N_{s} \in 2 \mathbb{N}\)¶
Theorem
Let \(\phi: \mathbb{R} \to \mathbb{C}\) be a \(T\)-periodic function of bandwidth \(N_{FS} = 2 N + 1\), with
\(T_{c}\): mid-point of one period,
\(\{\phi_{k}^{FS}, k = -N, \ldots, N\}\): Fourier Series coefficients of \(\phi\).
Moreover, let \(Q \in 2 \mathbb{N} + 1\) be an arbitrary odd integer such that
\(N_{s} = N_{FS} + Q\),
\(M = N_{s} / 2\).
Then the following holds:
where \(\text{(i)DFT}\) is as defined in The Discrete Fourier Transform and
Proof(s)
Replace \(t[n]\) in (1) and rearrange terms.
Extension to multi-dimensional case¶
For a multi-dimensional signal \(\phi: \mathbb{R}^D \to \mathbb{C}\) that is \([T_1, T_2, \ldots, T_D]\)-periodic and \([N_{FS, 1}, N_{FS, 2}, \ldots, N_{FS, D}]\)-bandlimited, we can obtain its Fourier Series coefficients by applying the above approach along each dimension.
Implementation Notes¶
ffs() and iffs() can be used to obtain Fourier Series
coefficients / spatial samples of a function using the algorithms above. Due to the reliance on
\(\text{(i)DFT}_{N_{s}}\), it is recommended to choose \(N_{s}\) highly-composite.
ffsn() and iffsn() can be used to obtain Fourier Series
coefficients / spatial samples of a \(D\)-dimensional function. In our implementation, we opt
for a more efficient approach than applying the above method along each dimension.