0
0
RosConceptBeginner · 3 min read

Time Shifting Property of Fourier Transform Explained Simply

The time shifting property of the Fourier transform states that shifting a signal in time results in a phase shift in its Fourier transform. Specifically, if a signal x(t) is shifted by t_0, its transform becomes X(f) e^{-j 2 \pi f t_0}, where X(f) is the original transform.
⚙️

How It Works

Imagine you have a song playing, and you start it a few seconds later than usual. The song itself doesn't change, just when it starts. The time shifting property of the Fourier transform works similarly: if you delay or advance a signal in time, its frequency content stays the same but gains a phase change.

This phase change is like a shift in the wave's starting point in the frequency domain. The Fourier transform breaks down a signal into its frequency parts, and shifting the signal in time adds a complex exponential factor to each frequency component. This factor changes the phase but not the amplitude, meaning the signal's frequency strength stays the same, only the timing shifts.

💻

Example

This example shows a simple signal and its Fourier transform. Then it shifts the signal in time and shows how the Fourier transform changes by a phase factor.
python
import numpy as np
import matplotlib.pyplot as plt

# Original signal: a simple cosine wave
fs = 1000  # Sampling frequency
T = 1      # Duration in seconds
t = np.linspace(0, T, fs, endpoint=False)
freq = 5  # Frequency of cosine
x = np.cos(2 * np.pi * freq * t)

# Shift the signal by t0 seconds
t0 = 0.1
x_shifted = np.cos(2 * np.pi * freq * (t - t0))

# Compute Fourier transforms
X = np.fft.fft(x)
X_shifted = np.fft.fft(x_shifted)
freqs = np.fft.fftfreq(len(t), 1/fs)

# Plot magnitude and phase
plt.figure(figsize=(12, 6))

plt.subplot(2, 2, 1)
plt.plot(t, x)
plt.title('Original Signal')
plt.xlabel('Time [s]')

plt.subplot(2, 2, 2)
plt.plot(t, x_shifted)
plt.title('Time-Shifted Signal')
plt.xlabel('Time [s]')

plt.subplot(2, 2, 3)
plt.stem(freqs, np.abs(X), basefmt=' ')
plt.title('Magnitude of Fourier Transform')
plt.xlabel('Frequency [Hz]')
plt.xlim(0, 20)

plt.subplot(2, 2, 4)
plt.stem(freqs, np.angle(X_shifted) - np.angle(X), basefmt=' ')
plt.title('Phase Difference Due to Time Shift')
plt.xlabel('Frequency [Hz]')
plt.xlim(0, 20)

plt.tight_layout()
plt.show()
Output
A 2x2 plot window showing: (1) original cosine wave, (2) time-shifted cosine wave, (3) magnitude spectrum of original signal with peak at 5 Hz, (4) phase difference plot showing linear phase shift proportional to frequency.
🎯

When to Use

The time shifting property is useful when you want to understand how delays affect signals in the frequency domain. For example, in communications, if a signal is delayed during transmission, this property helps predict how the signal's phase changes without altering its frequency content.

It is also used in signal processing tasks like filtering, modulation, and system analysis where timing shifts occur. Knowing this property helps engineers design systems that can compensate for or exploit time delays.

Key Points

  • Shifting a signal in time adds a phase shift in its Fourier transform.
  • The magnitude of the Fourier transform remains unchanged by time shifts.
  • The phase shift is a complex exponential factor depending on frequency and shift amount.
  • This property helps analyze delays and timing changes in signals.

Key Takeaways

Time shifting a signal causes a phase shift in its Fourier transform without changing magnitude.
The phase shift is given by multiplying the transform by e^{-j 2\pi f t₀}, where t₀ is the time shift.
This property helps analyze and compensate for delays in signal processing and communications.
Magnitude spectrum stays the same; only the phase spectrum changes with time shifts.