Time shifting moves a signal forward or backward in time. It helps us see how signals change when delayed or advanced.
Time shifting a signal in Signal Processing
y(t) = x(t - t0)
t0 is the amount of time to shift.
If t0 is positive, the signal moves right (delay). If negative, it moves left (advance).
x(t) is delayed by 2 units of time.y(t) = x(t - 2)x(t) is advanced by 3 units of time.y(t) = x(t + 3)This code creates a 5 Hz sine wave and shifts it by 0.2 seconds to the right (delay). The shifted signal is zero before the start time.
The plot shows the original and delayed signals for easy comparison.
import numpy as np import matplotlib.pyplot as plt # Create a simple signal: a sine wave fs = 100 # samples per second t = np.linspace(0, 1, fs, endpoint=False) x = np.sin(2 * np.pi * 5 * t) # 5 Hz sine wave # Time shift amount shift = 0.2 # seconds # Shift the signal by shifting the time vector # y(t) = x(t - shift) means we evaluate x at (t - shift) t_shifted = t - shift # For values where t_shifted < 0, set signal to 0 (no data before start) y = np.where(t_shifted >= 0, np.sin(2 * np.pi * 5 * t_shifted), 0) # Plot original and shifted signals plt.plot(t, x, label='Original signal') plt.plot(t, y, label='Shifted signal (delay)') plt.xlabel('Time (seconds)') plt.ylabel('Amplitude') plt.title('Time Shifting a Signal') plt.legend() plt.grid(True) plt.show()
When shifting signals, values outside the original time range may be undefined. We often set them to zero.
Time shifting is a basic tool in signal processing to study delays and advances.
Time shifting moves a signal forward or backward in time by changing its time variable.
Positive shift delays the signal; negative shift advances it.
It helps analyze how signals behave when delayed or advanced.
Practice
Solution
Step 1: Understand time shift direction
A positive time shift means the signal is moved to a later time, which delays it.Step 2: Compare options with definition
Only It delays the signal, moving it forward in time. correctly states that a positive shift delays the signal.Final Answer:
It delays the signal, moving it forward in time. -> Option BQuick Check:
Positive shift = delay [OK]
- Confusing positive shift with advancing the signal
- Thinking time shift changes amplitude
- Mixing up delay and reversal
x by 3 units forward (delay)?Solution
Step 1: Understand np.roll behavior
In numpy, np.roll(x, 3) shifts elements to the right by 3, delaying the signal.Step 2: Check other options
shifted_x = x.shift(3)is invalid syntax for numpy arrays,np.roll(x, -3)shifts left (advances),x + 3adds 3 to values (not time shift).Final Answer:
shifted_x = np.roll(x, 3) -> Option AQuick Check:
np.roll with positive shift delays signal [OK]
- Using negative shift to delay signal
- Adding number to array instead of rolling
- Using non-existent shift method
x = [1, 2, 3, 4, 5], what is the output of np.roll(x, -2)?Solution
Step 1: Understand np.roll with negative shift
Negative shift moves elements to the left by 2 positions.Step 2: Apply shift to array
Original: [1, 2, 3, 4, 5]
Shift left 2: [3, 4, 5, 1, 2]Final Answer:
[3, 4, 5, 1, 2] -> Option CQuick Check:
Negative shift = advance signal [OK]
- Confusing left and right shift directions
- Miscounting shifted elements
- Assuming shift changes values
x = [10, 20, 30, 40] by 1 unit forward but produces incorrect output. What is the error?shifted_x = np.roll(x, -1)
Solution
Step 1: Analyze shift direction
Negative shift (-1) moves signal left (advances), not forward (delay).Step 2: Correct shift value
To delay (shift forward), use positive shift value +1.Final Answer:
The shift value should be positive to delay the signal. -> Option AQuick Check:
Positive shift delays signal [OK]
- Using negative shift to delay signal
- Thinking np.roll is invalid for shifting
- Forgetting to convert list to numpy array (not required here)
s1 = [0, 1, 2, 3, 4] and s2 = [3, 4, 0, 1, 2]. Which time shift applied to s1 aligns it best with s2?Solution
Step 1: Compare signals visually
s1 = [0, 1, 2, 3, 4], s2 = [3, 4, 0, 1, 2]. s2 matches s1 advanced (shifted left) by 3.Step 2: Verify with np.roll
np.roll(s1, -3) = [3, 4, 0, 1, 2] matches s2 exactly. np.roll(s1, 1) = [4, 0, 1, 2, 3], np.roll(s1, -2) = [2, 3, 4, 0, 1], np.roll(s1, 3) = [2, 3, 4, 0, 1] do not match.Final Answer:
Shifts1by -3 units (advance by 3) -> Option DQuick Check:
np.roll(s1, -3) == s2 [OK]
- Choosing wrong shift direction
- Not checking exact element alignment
- Confusing delay with advance
Ready to prove it?
Pass the test and this pattern moves unknown
