Does FFT on two samples from the same audio but with a very small sampling offset return the same results?

Using a single audio source, suppose I take two samples of the same length (say, 10s), with the same sample rate (say, 44100Hz), one just 1/3 sample length (7 microseconds) away from the other. Does FFT on the two samples return (roughly) the same shape? Is there a way for me to sync the two samples?

• Have you tried running a few experiments to see what happens?
– MBaz
Jun 24 '20 at 21:16
• @MBaz any experiment you recommend? I tried running phase shift and it worked (as in I could get the offset and sync the signals) on a couple of pure sinusoidal functions but it failed with more complex functions. Jun 24 '20 at 21:47

Fourier transforms possess a form of (in magnitude) shift-invariance, also called time-invariance, or shift property (see Properties of the Fourier Transform-shift properties): "a shift in time corresponds to a phase rotation in the frequency domain":

$$F\{x(t−t_0)\}=\exp(−j2πft_0)F\{x(t)\}\,.$$

This property of the continuous Fourier transform has analogues in its discretized versions. So many techniques to compensate for shifts or synchronize signals are based on this property. I'll name a few ones: cross-correlation, time-delay estimation, generalized cross-correlation (GCC), fractional delay filters. They can give you initial pointers.

In Matlab, functions like finddelay or alignsignals can be used.

Does FFT on the two samples return (roughly) the same shape?

Yes, it's "roughly" the same shape

Is there a way for me to sync the two samples?

Depends a bit on the details. If both have the same sampling clock source but just a constant sampling offset. However if the clocks are not phase locked, than the sampling offset will drift slowly over time, so the fractional delay will be time varying. In this case you will need an asynchronous sample rate converter.