0
$\begingroup$

I have some signal $s(t)$ which is real data i.e. finite.

The time runs from $-T$ to $+T$. The signal amplitude is large at $t=0$ and small ($\rightarrow 0$) at the $\pm T$ limits.

I can do a finite (discrete) Fourier transform of the signal within the interval $-T/2$ to + $T/2$. We will call this case A.

I can also do a finite FT of the signal within a smaller interval $-T/4$ to $+ T/4$. We will call this case B.

Intuitively, I sort of expect the value of $s(f)$ - the FT of $s(t)$ - at a particular shared frequency to be greater in case A than in case B, since case A has more `contributions' to the total s(f).

However, when I code this up in Python, I can see that it is not necessarily the case. It is possible (depending on the form of $s(t)$) for case B, the smaller time series, to have a greater value of $s(f)$.

Can someone explain why this is so? Thanks.

$\endgroup$
0
$\begingroup$

Intuitively, I sort of expect the value of $s(f)$ - the FT of $s(t)$ - at a particular shared frequency to be greater in case A than in case B, since case A has more `contributions' to the total $s(f)$.

In proper discrete Fourier transforms, the Fourier coefficients are normalized by the number of input samples, $N$. So if done properly, changing the duration of the time series should not, if all else is equal, change the amplitude of the transform at any given frequency.

Technically, you are most likely computing the fast Fourier transform (FFT) of the input time series, but again the Fourier coefficients (i.e., amplitudes) should be properly normalized. You should check the computer language being used as the normalization changes by language (e.g., in some the normalization is done during the forward transform, others are done half during forward and half during inverse, while some others do the normalization on the inverse only).

However, when I code this up in Python, I can see that it is not necessarily the case. It is possible (depending on the form of $s(t)$) for case $B$, the smaller time series, to have a greater value of $s(f)$.

Can someone explain why this is so?

Yes, this is possible if there's a signal at the selected frequency that exists in $A$ but not in $B$. Suppose you had a short-duration, large amplitude sine wave at frequency $f_{0}$ that exists in the interval covered by $A$ but not in $B$. You would then expect that the FFT of each would generate different amplitudes in the frequency bin closest to $f_{0}$.

You can also find differences if the time series were riddled with discontinuities. This is because a time-discontinuity (i.e., any abrupt variation between two time stamps that can cause divergences in the temporal derivative, like a step-function) adds power to all Fourier coefficients. If done properly, the amount of power should be evenly distributed among all Fourier coefficients. However, it is often the case that edge effects (e.g., see https://ui.adsabs.harvard.edu/abs/1978IEEEP..66...51H/abstract), among other issues resulting from discretizing a signal, can lead to a non-uniform distribution of power in the coefficients.

A time series full of discontinuities will lead to a power spectrum (i.e., absolute value squared of FFT output) proportional to something like $f^{-2}$, i.e., $s(f) \propto f^{-2}$ (e.g., see Lainscsek et al. [2017] doi:10.1162/NECO_a_00979). The magnitude of any given $s(f)$ will depend upon all the contributions of all the discontinuities in the signal. If the amplitude of the discontinuities are uniform, then $s(f)$ from $A$ should be roughly the same as $s(f)$ from $B$. If they are not uniform, then $s(f)$ will differ between the two if the nonuniformities exist outside of interval $B$.

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.