Scientific Research

An Academic Publisher

Linear Prolate Functions for Signal Extrapolation with Time Shift

**Author(s)**Leave a comment

1. Introduction

In the early 60’s David Slepian and his colleagues discovered the bandlimited function that is maximally concentrated, in the mean-square sense, within a given time interval; this function is the prolate spheroidal wave function (PSWF) of zero-order.

The linear prolate functions (LPFs) are the one-dimensional version of the prolate spheroidal functions and they form sets of bandlimited functions which are orthogonal and complete over a finite interval. Moreover, unlike other functions, they are also complete and orthogonal over the infinite interval. An additional property is that the finite Fourier transform (FT) of a linear prolate function is proportional to the same prolate function. Although there are other functions which are their own infinite Fourier transform, only the prolate functions enjoy the property for the finite transform: this property uniquely defines the prolate functions [1] . Associated with each function, there is an eigenvalue ${\lambda}_{n}\left(c\right)$ and a free parameter $c$ which is a useful descriptor of sys- tem performance [2] . Some of the mentioned mathematical properties make the prolate functions easily applicable to optics [3] . In particular, we are interested in the problem of determining a bandlimited function from the knowledge of a finite segment of the function, since it is relevant in many practical situations from application to filters in communication systems [4] to optical systems when, for example, due to intrinsic instrumental limits, only limited observation data are available.

Specifically, in the research area of bandlimited signal extrapolation, there have been contributions with iterative and non-iterative algorithms for extrapolation of signals in the LCT (linear canonical transform) domain that is a generalization of the Fourier transform. The challenges of convergence of algorithms based on the Gerchberg-Papoulis (GP) algorithm [5] and an applica- tion to high frequencies have been extensively investigated [6] . However, appro- aches based on the use of the prolate spheroidal wave functions [7] need to provide efficient ways to compute the prolate functions.

In this paper, we benefit from a proprietary algorithm developed theoretically and implemented numerically by Cada [8] , for accurate generation of linear prolate functions with desired high precision to use LPFs for signal extrapolation. In what follows, we introduces the basics of signal expansion using the linear prolate functions in Section 2; Section 3 presents our approach to signal extrapolation based on LPFs. In Section 4 and Section 5 simulation results, error analysis and numerical examples are presented and discussed. Finally conclu- sions are drawn in Section 6.

2. Signal Expansion

As sets of bandlimited functions, orthogonal on the finite interval and orthonormal on the infinite interval, the linear prolate functions ${\psi}_{n}\left(c\mathrm{,}t\right)$ can be successfully used for the expansion of a generally complex, bandlimited function $f\left(t\right)$ :

$f\left(t\right)={\displaystyle \underset{n=0}{\overset{\infty}{\sum}}}{a}_{n}{\psi}_{n}\left(c,t\right)$ (1)

the representation is valid for all $t$ , the bandwidth parameter is $c={t}_{0}{\Omega}_{0}$ where ${\Omega}_{0}$ represents the finite bandwidth or a cutoff frequency, and ${t}_{0}$ is the time interval. The function $f\left(t\right)$ is supposed to be ${\Omega}_{0}$ -bandlimited. Adopting the criterion of a minimized mean-square error, the expansion coefficients ${a}_{n}$ in (1) are given by:

${a}_{n}={\displaystyle {\int}_{-\infty}^{\infty}}f\left(t\right){\psi}_{n}\left(c,t\right)\text{d}t$ (2)

There is an alternative way to derive the coefficients ${a}_{n}$ using only the values of $f\left(t\right)$ within the finite observation interval $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ and introducing the eigenvalues ${\lambda}_{n}\left(c\right)$ . After multiplying (1) by ${\psi}_{m}\left(c\mathrm{,}t\right)$ , integrating as reported in [1] and from the orthogonality properties of the LPFs which are valid on both the finite and infinite interval, one can obtain:

${a}_{n}={\left[{\lambda}_{n}\left(c\right)\right]}^{-1}{\displaystyle {\int}_{-{t}_{0}}^{{t}_{0}}}f\left(t\right){\psi}_{n}\left(c,t\right)\text{d}t$ (3)

The latest expression for $\left\{{a}_{n}\right\}$ together with (1) states that when the bandlimited function $f\left(t\right)$ is known over a finite interval of extend $2{t}_{0}$ then $f\left(t\right)$ is theoretically known everywhere if one can accurately calculate the coefficients ${a}_{n}$ for $n\mathrm{}\to \mathrm{}\infty $ , the functions ${\psi}_{n}\left(c\mathrm{,}t\right)$ and the eigenvalues ${\lambda}_{n}\left(c\right)$ . ${\lambda}_{n}\left(c\right)$ can be regarded as the index of energy concentration of each function ${\psi}_{n}$ in $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ . Therefore:

$f\left(t\right)\simeq {\displaystyle \underset{n=0}{\overset{N}{\sum}}}{\left[{\lambda}_{n}\left(c\right)\right]}^{-1}{\psi}_{n}\left(c,t\right){\displaystyle {\int}_{-{t}_{0}}^{{t}_{0}}}f\left({t}^{\prime}\right){\psi}_{n}\left(c,{t}^{\prime}\right)\text{d}{t}^{\prime}$ (4)

Accurate computing of ${\psi}_{n}$ , ${\lambda}_{n}$ and ${a}_{n}$ for $n>2c/\text{\pi}$ (where ${N}_{crit}=2c/\text{\pi}$ is known as the critical value) turns the orthogonal expansion expression presented in (1) into a signal extrapolation problem. Indeed, for any LPFs set with a fixed $c$ , the energy concentration of the functions within $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ decreases as the order $n$ increases and for $n={N}_{crit}$ , the signal’s maximum concentration reaches the boundary of the observation interval. Hence the summation of $\left\{{\lambda}_{n}\left(c\right)\right\}$ is mostly determined by the first ${N}_{crit}$ terms whose

individual value is very close to 1, and the series ${\sum}_{n=0}^{\infty}{\lambda}_{n}\left(c\right)$ converges to a finite value $\left(2c/\text{\pi}\right)$ , as extensively analyzed in [9] . Accurate estimation of the overlap integral ${\int}_{-{t}_{0}}^{{t}_{0}}}f\left(t\right){\psi}_{n}\left(c\mathrm{,}t\right)\text{d}t$ for high orders of $n$ becomes then a

challenging problem of high-precision numerical integration with an absolute necessity of having ${\psi}_{n}\left(c\mathrm{,}t\right)$ with a high precision as well [8] .

3. Signal Extrapolation

Our main objective in signal extrapolation using linear prolate functions aims to take advantage of a generalized expression stated in [3] , never exploited so far, for the coefficients in (3) which enables the finite interval $2{t}_{0}$ to not be nece- ssarily symmetric with respect to the origin. Hence, for a general interval $T-{t}_{0}\le t\le T+{t}_{0}$ , relation (4) becomes:

$f\left(t\right)\simeq {\displaystyle \underset{n=0}{\overset{N}{\sum}}}{\left[{\lambda}_{n}\left(c\right)\right]}^{-1}{\psi}_{n}\left(c,t-T\right){\displaystyle {\int}_{T-{t}_{0}}^{T+{t}_{0}}}f\left({t}^{\prime}\right){\psi}_{n}\left(c\mathrm{,}{t}^{\prime}-T\right)\text{d}{t}^{\prime}$ (5)

Substituting $y={t}^{\prime}-T$ , the following expression for $f\left(t\right)$ is obtained:

$f\left(t\right)\simeq {\displaystyle \underset{n=0}{\overset{N}{\sum}}}{\left[{\lambda}_{n}\left(c\right)\right]}^{-1}{\psi}_{n}\left(c,t-T\right){\displaystyle {\int}_{-{t}_{0}}^{{t}_{0}}}f\left(y+T\right){\psi}_{n}\left(c,y\right)\text{d}y$ (6)

with

${a}_{n}\left(T\right)=\frac{1}{{\lambda}_{n}\left(c\right)}{\displaystyle {\int}_{-{t}_{0}}^{{t}_{0}}}f\left(y+T\right){\psi}_{n}\left(c,y\right)\text{d}y$ (7)

Thanks to the significant generalization for the calculation of coefficients $\left\{{a}_{n}\right\}$ , one can use (6) to perform the signal extrapolation on $f\left(t\right)$ beyond the observation interval $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ using an iterative approach.

Specifically, we start from the assumption that the function $f\left(t\right)$ is perfectly known in the interval $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ . We use (6) with $T=0$ to extrapolate the signal by an interval $\Delta {t}^{\left(0\right)}$ using already proposed algorithms to obtain accurate calculations of ${a}_{n}\left(0\right)$ till $N={N}^{\left(0\right)}>2c/\text{\pi}$ . Instead of pursuing the more challenging computing for $N\gg 2c/\text{\pi}$ , Formula (6) is re-applied for $T=\Delta {t}^{\left(0\right)}$ to extrapolate the signal by an additional interval $\Delta {t}^{\left(T\right)}$ via accurate calcula- tions of ${a}_{n}\left(T\right)$ to ${N}^{\left(T\right)}>2c/\text{\pi}$ . The procedure is then repeated for the $i$ -th iteration and up to the number of iterations that has been set. Specifically, at each iteration $i$ , we form the function which becomes the input for iteration $i+1$ :

$\begin{array}{c}{f}_{i}\left(t\right)={\stackrel{\u02dc}{f}}_{i}(t)+\left[{f}_{i-1}\left(t\right)-{\stackrel{\u02dc}{f}}_{i}\left(t\right)\right]{p}_{\Delta t}\left(t\right)\\ =\{\begin{array}{l}{f}_{i-1}\left(t\right),\text{\hspace{0.17em}}-{t}_{0}+i\Delta t\le t\le {t}_{0}+\left(i-1\right)\Delta t\hfill \\ {\stackrel{\u02dc}{f}}_{i}\left(t\right),\text{\hspace{0.17em}}{t}_{0}+\left(i-1\right)\Delta t<t\le {t}_{0}+i\Delta t\hfill \end{array}\end{array}$ (8)

with ${\stackrel{\u02dc}{f}}_{i}\left(t\right)$ being defined in (6). For the sake of simplicity $\Delta t$ is chosen to be the same at every iteration. Also,

${p}_{\Delta t}\left(t\right)=\{\begin{array}{l}\mathrm{1,}\text{\hspace{1em}}\text{\hspace{1em}}-{t}_{0}+i\Delta t\le t\le {t}_{0}+\left(i-1\right)\Delta t\hfill \\ \mathrm{0,}\text{\hspace{1em}}\text{\hspace{1em}}\text{otherwise}\hfill \end{array}$

4. Numerical Results

A LPFs set with bandwidth parameter $c=20\text{\pi}$ and ${t}_{0}=1$ is used as the orthogonal basis for the proposed extrapolation method. The functions are discretized in time at a sampling rate of 0.001 for numerical implementation and each discrete sample has a high numerical precision greater than 100 digits. The software Mathematica characterized by high precision computing has been used for the simulations. Extrapolation is carried out on the ${\Omega}_{0}$ -bandlimited test function shown in Figure 1.

$f\left(t\right)=cos\left(2\text{\pi}t-\left(\frac{\text{\pi}}{11}\right)\right)+cos\left(\frac{2\text{\pi}t}{7}\right)-cos\left(\frac{3\text{\pi}t}{2}\right)$

4.1. Perfect Knowledge of $f\left(t\right)$ in the Integration Interval

In order to test the proposed approach for signal extrapolation as described in Section 3, we consider the ideal case first. This assumption means that at each iteration of the extrapolation, the function $f\left(t+T\right)$ in the integral in (6) is known in Mathematica user-defined precision. Figure 2 shows reconstruction/ extrapolation after the first iteration when the time shift is $T=0$ , the truncation value is $N=97$ and the Mathematica built-in interpolation and integration functions are used to calculate the overlap integral. In Figure 3, we show results for signal reconstruction/extrapolation after the second iteration with an actual application of our time shift approach; specifically $T=-{t}_{0}/2=-0.5$ and $N=97$ . In both cases, the extrapolation succeeds to extrapolate the signal over an addi-

Figure 1. $f\left(t\right)$ in the interval $\left[-\mathrm{1,1}\right]$ .

Figure 2. Extrapolated $f\left(t\right)$ , no time shift.

Figure 3. Extrapolated $f\left(t\right)$ , shift $\left[-\mathrm{0.5,1.5}\right]$ .

tional interval which is up to the $\mathrm{60\%}$ of half of the time range where the function is known. The presence of the truncation error is discussed in Section 5.

4.2. Estimate of $f\left(t\right)$ in the Integration Interval

We consider a more realistic case when the function $f\left(t+T\right)$ in the integral in (6) is known in Mathematica user-defined precision only for $T=0$ . Figure 4(b) shows signal reconstruction/extrapolation after 16 iterations with a total time shift $\left|T\right|=\left(i-1\right)\cdot \Delta t=0.3$ and $N=97$ .

Figure 4(c) shows results after 36 iterations with a total time shift $\left|T\right|=0.7$ and $N=97$ . Each progressive shift is equal to $\Delta t=0.02$ . At every iteration $i+1$ , we use the function ${\stackrel{\u02dc}{f}}_{i}\left(t\right)$ as the new input to (6) to make the integral calculation successful. The piecewise polynomial interpolation method present- ed in [10] has been applied for the accurate computing of the overlap integral and the LPFs set with bandwidth parameter $c=20\text{\pi}$ has been used. Indeed, in terms of the normalized mean-squared error (NMSE), the method in [10] performs superiorly when compared to the iterative approach proposed in [6] and the generalized PSWFs (prolate spheroidal wave functions) expansion method proposed in [7] . Specifically, for comparison purposes, Figure 4(a) is

(a) (b)(c) (d)

Figure 4. Extrapolation outputs. (a) $f\left(t\right)$ known in $\left[-\mathrm{1,1}\right]$ , $i=1$ ; (b) $f\left(t\right)$ known in $\left[-\mathrm{0.7,1.3}\right]$ , $i=16$ ; (c) $f\left(t\right)$ known in $\left[-\mathrm{0.3,1.7}\right]$ , $i=36$ ; (d) Reconstruction cases in (b) and (c) (solid line).

obtained by setting $i=1$ and hence $T=0$ , and reproduces results presented in [10] .

In Figure 5, details are shown for the extrapolation of the portion of the function in the time interval $\left[\mathrm{1.65,1.9}\right]$ . Despite the effect of accumulated errors, it verifies that given the same truncation value $N$ , the shift-approach ( $i=36$ ) outperforms the reference approach ( $i=1$ ) when the extrapolation capability of the reference approach vanishes.

The difference quotients in Table 1 calculated between time instant 1.73 and time instant 1.78 are indices of the curves slope and show that the shift-approach follows better the slope of the exact function. In Figure 6, extrapolation details are shown for the portion of the function in the time interval $\left[\mathrm{1.85,2.2}\right]$ . Despite the effect of accumulated errors, the shift-approach for $i=36$ outper- forms the shift-approach for $i=16$ . The difference quotients in Table 2 calcu- lated between time instants 1.90 and 2.00 show that the shift-approach for $i=36$ follows better the slope of the exact function.

Table 1. Difference quotient.

Figure 5. Detailed curves.

Figure 6. Detailed curves.

Table 2. Difference quotient.

5. Error Analysis

The proposed method is subject to an inherent series truncation error. Its mean squared error expression is the following, after an extrapolation interval ${T}_{e}$ :

${E}_{T}={\displaystyle {\int}_{-{t}_{0}}^{+{t}_{0}+{T}_{e}}}{\left|f\left(t\right)-{f}_{N}\left(t\right)\right|}^{2}\text{d}t={\displaystyle {\int}_{-{t}_{0}}^{+{t}_{0}}}{\left|f\left(t\right)-{f}_{N}\left(t\right)\right|}^{2}\text{d}t+{\displaystyle {\int}_{+{t}_{0}}^{+{t}_{0}+{T}_{e}}}{\left|f\left(t\right)-{f}_{N}\left(t\right)\right|}^{2}\text{d}t$ (9)

$={\displaystyle \underset{n=N+1}{\overset{\infty}{\sum}}}{a}_{n}^{2}{\lambda}_{n}\left(c\right)+{\displaystyle {\int}_{+{t}_{0}}^{+{t}_{0}+{T}_{e}}}{\left|f\left(t\right)-{f}_{N}\left(t\right)\right|}^{2}\text{d}t$ (10)

The first term in the summation in (9) represents the error in the fit of ${f}_{N}\left(t\right)$ (defined in (6)) to $f\left(t\right)$ within the interval $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ . Specifically, as reported in [1] , the calculation of ${\int}_{-{t}_{0}}^{+{t}_{0}}}{\left|f\left(t\right)-{f}_{N}\left(t\right)\right|}^{2}\text{d}t={\displaystyle {\int}_{-{t}_{0}}^{+{t}_{0}}}{\left({\displaystyle {\sum}_{n=N+1}^{\infty}}{a}_{n}{\psi}_{n}\left(c,t\right)\right)}^{2}\text{d}t$ into the sum form in (10) follows from the fact that ${\psi}_{n}\left(c\mathrm{,}t\right)$ are orthogonal on the interval $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ . The term ${\int}_{+{t}_{0}}^{+{t}_{0}+{T}_{e}}}{\left|f\left(t\right)-{f}_{N}\left(t\right)\right|}^{2}\text{d}t$ is the truncation error in

the extrapolation interval and then depends on the quantity ${T}_{e}$ . It is reasonable to consider the first term not critical for truncation values $N$ above $2c/\text{\pi}$ , when the energy factor ${\lambda}_{n}\left(c\right)$ rapidly approaches zero (an example is shown in Figure 7 for $c=20\text{\pi}$ ). The last statement has to satisfy the condition that for a

Figure 7. Eigenvalues ${\lambda}_{n}\left(c\right)$ vs. order $n$ for $c=20\text{\pi}$ and ${n}_{crit}=2c/\text{\pi}=40$ .

sufficiently large $n$ , the integral ${\left({\displaystyle {\int}_{-{t}_{0}}^{{t}_{0}}}f\left(t\right){\psi}_{n}\left(c,t\right)\text{d}t\right)}^{2}$ tends to zero faster than

the corresponding ${\lambda}_{n}\left(c\right)$ at the denominator of the products ${a}_{n}^{2}{\lambda}_{n}\left(c\right)$ . This consideration motivated our work and indirectly highlights again that calculating accurate coefficients ${a}_{n}$ for large $n$ is critical since both overlap integrals and eigenvalues become very small quantities. This has been a known problem since the 60’s of the last century. The critical aspect is an accurate calculation of ${\psi}_{n}\left(c\mathrm{,}t\right)$ , which is now possible [8] . Under the assumption that the function $f\left(t\right)$ is initially known in $\left[-{t}_{0}\mathrm{,}{t}_{0}\right]$ , the sum of truncation errors, computer roundoff and analog to digital conversion errors makes the practical implementation of the proposed iterative approach subject to a total error that has been measured as normalized mean-square error (NMSE) between the original function and the extrapolated signal ${f}_{e}$ as:

$\text{NMSE}=\frac{{\Vert {f}_{e}-f\Vert}^{2}}{{\Vert f\Vert}^{2}}=\frac{{\displaystyle {\int}_{-{t}_{0}+{T}_{e}}^{{t}_{0}+{T}_{e}}}{\left|{f}_{i}\left(t\right)-f\left(t\right)\right|}^{2}\text{d}t}{{\displaystyle {\int}_{-{t}_{0}+{T}_{e}}^{{t}_{0}+{T}_{e}}}{\left|f\left(t\right)\right|}^{2}\text{d}t}$ (11)

It is clear from Table 3 that the zero-shift still gives the best results up to the point it is capable to extrapolate correctly (e.g., ${T}_{e}=0.65$ ); increasing $N$ will extend ${T}_{e}$ and it will still be the best extrapolation up to that point. However, if $N$ is a limit, as in practice always is, our shifting method performs better. This can be interpreted as a consequence of the multiplication by the quantity ${\psi}_{n}\left(c\mathrm{,}t-T\right)$ in (6) which means moving the energy of the LPFs accordingly to the shift of the function. Hence results confirm that our approach works in principle and, as pointed out in [10] , the chosen algorithm for computing the overlap integral shows its sensitivity to reduced accuracy and noise when applied to an already extrapolated portion of the function. It is also important observing that the reported NMSE values have been calculated for ${f}_{i}\left(t\right)={\stackrel{\u02dc}{f}}_{i}\left(t\right)$ following

Table 3. Normalized mean-square error (NMSE).

notation in (8). The extrapolation can be optimized by reconstructing the extra- polated function ${f}_{i}\left(t\right)$ as concatenation of the known function with segments of optimum estimates. However, we still observe numerical inaccuracies oc- curring at the points of concatenations, which is presently under investigation.

6. Conclusion

In this paper, we have proposed and implemented a low complexity iterative algorithm for bandlimited signal extrapolation based on orthogonal projections over real-valued eigenvectors: the linear prolate functions. The method is valid for an arbitrary large range of frequencies with immediate applications in signal processing. The main contribution of our work is a theoretical derivation such that given a truncated series (up to a selectable value) of prolate functions, it is possible to extrapolate the bandlimited function (initially known in a limited time interval) elsewhere if each extrapolated portion of the function is subject only to moderate series truncation errors. These errors are controllable by the depth of extrapolation at each iteration. By doing so and with the aim of finding an alternative solution to the initial problem of implementing an accurate summation of infinite terms, we have investigated a property of the signal de- composition formula based on LPFs according to which the integration interval does not need to be symmetric with respect to the origin while time-shifted prolate functions are used in the summation. Also, we have investigated the effects of different sources of errors by implementing and analyzing the iterative algorithm as a generalization of the special case presented in [10] . Our method has shown to outperform concurrent approaches in terms of the normalized mean-square error of the extrapolated signal.

Conflicts of Interest

The authors declare no conflicts of interest.

Cite this paper

*Applied Mathematics*,

**8**, 417-427. doi: 10.4236/am.2017.84034.

[1] |
Slepian, D. and Pollak, H.O. (1961) Prolate Spheroidal Wave Functions, Fourier Analysis, and Uncertainty—I. The Bell System Technical Journal, 40, 43-63.
https://doi.org/10.1002/j.1538-7305.1961.tb03976.x |

[2] | Moore, I.C. and Cada, M. (2004) Prolate Spheroidal Wave Functions, an Introduction to the Slepian Series and Its Properties. Applied and Computational Harmonic Analysis, 16, 208-230. |

[3] | Frieden, B.R. (1971) Evaluation, Design and Extrapolation Methods for Optical Signals Based on Use of the Prolate Functions. Progress in Optics, 9, 311-407. |

[4] |
Soman, S. and Cada, M. (2017) Design and Simulation of a Linear Prolate Filter for a Baseband Receiver. Journal of Information Technology and Software Engineering, 7, 197.
https://www.omicsgroup.org/journals/design-and-simulation-of-a-linear-prolate-filter-for-a-baseband-receiver-2165-7866-1000197.pdf |

[5] |
Papoulis, A. (1975) A New Algorithm in Spectral Analysis and Band-Limited Extrapolation. IEEE Transactions on Circuits and Systems, 22, 735-742.
https://doi.org/10.1109/TCS.1975.1084118 |

[6] |
Shi, J., Sha, X., Zhang, Q. and Zhang, N. (2012) Extrapolation of Bandlimited Signals in Linear Canonical Transform Domain. IEEE Transactions on Signal Processing, 60, 1502-1508. https://doi.org/10.1109/TSP.2011.2176338 |

[7] |
Zhao, H., Ran, Q.W., Ma, J. and Tan, L.Y. (2010) Generalized Prolate Spheroidal Wave Functions Associated with Linear Canonical Transform. IEEE Transactions on Signal Processing, 58, 3032-3041. https://doi.org/10.1109/TSP.2010.2044609 |

[8] | Cada, M. (2012) Private Communication. Department of Electrical and Computer Engineering, Dalhousie University, Halifax, Canada. |

[9] | Xiao, H. (2001) Prolate Spheroidal Wave Functions, Quadrature, Interpolation, and Asymptotic Formulae. Ph.D. Dissertation, Department of Computer Science, Yale University, New Haven. |

[10] | Devasia, A. and Cada, M. (2013) Bandlimited Signal Extrapolation Using Prolate Spheroidal Wave Functions. IAENG International Journal of Computer Science, 40, 291-300. |

Copyright © 2018 by authors and Scientific Research Publishing Inc.

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.