Bird
Raised Fist0
Signal Processingdata~20 mins

Time shifting a signal in Signal Processing - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Time Shifting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of time-shifted discrete signal
What is the output of the following Python code that shifts a discrete signal by 2 units to the right?
Signal Processing
import numpy as np
signal = np.array([1, 2, 3, 4, 5])
shift = 2
shifted_signal = np.zeros_like(signal)
if shift > 0:
    shifted_signal[shift:] = signal[:-shift]
else:
    shifted_signal[:shift] = signal[-shift:]
print(shifted_signal.tolist())
A[0, 1, 2, 3, 4]
B[3, 4, 5, 0, 0]
C[1, 2, 3, 4, 5]
D[0, 0, 1, 2, 3]
Attempts:
2 left
💡 Hint
Think about how shifting right by 2 affects the indices of the array elements.
❓ data_output
intermediate
1:30remaining
Length of time-shifted continuous signal array
If you have a continuous signal sampled into 1000 points and you shift it by 100 points to the left using zero padding, what is the length of the resulting array?
A1000
B900
C1100
D100
Attempts:
2 left
💡 Hint
Shifting with zero padding keeps the array length the same.
❓ visualization
advanced
3:00remaining
Identify the correct plot after time shifting
Given a sine wave signal sampled at 100 points, which plot correctly shows the signal shifted 10 points to the right with zero padding?
Signal Processing
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
signal = np.sin(x)
shift = 10
shifted_signal = np.zeros_like(signal)
shifted_signal[shift:] = signal[:-shift]
plt.plot(signal, label='Original')
plt.plot(shifted_signal, label='Shifted')
plt.legend()
plt.show()
APlot with shifted signal starting at zero for first 10 points, then sine wave
BPlot with shifted signal starting immediately with sine wave, no zeros
CPlot with shifted signal shifted left by 10 points
DPlot with shifted signal amplified by factor of 2
Attempts:
2 left
💡 Hint
Right shift means zeros appear at the start of the shifted signal.
🧠 Conceptual
advanced
1:30remaining
Effect of negative time shift on signal indices
What happens to the indices of a discrete signal when it is shifted by a negative integer value (e.g., -3)?
AThe signal shifts right by 3 units, and zeros pad the left end
BThe signal length increases by 3
CThe signal shifts left by 3 units, and zeros pad the right end
DThe signal is reversed
Attempts:
2 left
💡 Hint
Negative shift means moving the signal earlier in time.
🔧 Debug
expert
2:30remaining
Identify the error in time shifting code
What error does the following code produce when shifting a signal by 3 to the right? import numpy as np signal = np.array([1, 2, 3, 4, 5]) shift = 3 shifted_signal = np.zeros_like(signal) shifted_signal[:shift] = signal[shift:] print(shifted_signal.tolist())
Signal Processing
import numpy as np
signal = np.array([1, 2, 3, 4, 5])
shift = 3
shifted_signal = np.zeros_like(signal)
shifted_signal[:shift] = signal[shift:]
print(shifted_signal.tolist())
AThe output is [4, 5, 0, 0, 0]
BIndexError due to mismatched slice lengths
CThe output is [0, 0, 1, 2, 3]
DTypeError due to wrong assignment
Attempts:
2 left
💡 Hint
Check the lengths of slices on left and right sides of the assignment.

Practice

(1/5)
1. What does a positive time shift do to a signal in signal processing?
easy
A. It advances the signal, moving it backward in time.
B. It delays the signal, moving it forward in time.
C. It changes the signal's amplitude.
D. It reverses the signal in time.

Solution

  1. Step 1: Understand time shift direction

    A positive time shift means the signal is moved to a later time, which delays it.
  2. 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.
  3. Final Answer:

    It delays the signal, moving it forward in time. -> Option B
  4. Quick Check:

    Positive shift = delay [OK]
Hint: Positive shift means delay, negative means advance [OK]
Common Mistakes:
  • Confusing positive shift with advancing the signal
  • Thinking time shift changes amplitude
  • Mixing up delay and reversal
2. Which of the following is the correct Python syntax to shift a discrete signal array x by 3 units forward (delay)?
easy
A. shifted_x = np.roll(x, 3)
B. shifted_x = np.roll(x, -3)
C. shifted_x = x + 3
D. shifted_x = x.shift(3)

Solution

  1. Step 1: Understand np.roll behavior

    In numpy, np.roll(x, 3) shifts elements to the right by 3, delaying the signal.
  2. Step 2: Check other options

    shifted_x = x.shift(3) is invalid syntax for numpy arrays, np.roll(x, -3) shifts left (advances), x + 3 adds 3 to values (not time shift).
  3. Final Answer:

    shifted_x = np.roll(x, 3) -> Option A
  4. Quick Check:

    np.roll with positive shift delays signal [OK]
Hint: np.roll with positive number delays signal [OK]
Common Mistakes:
  • Using negative shift to delay signal
  • Adding number to array instead of rolling
  • Using non-existent shift method
3. Given the signal array x = [1, 2, 3, 4, 5], what is the output of np.roll(x, -2)?
medium
A. [4, 5, 1, 2, 3]
B. [2, 3, 4, 5, 1]
C. [3, 4, 5, 1, 2]
D. [5, 1, 2, 3, 4]

Solution

  1. Step 1: Understand np.roll with negative shift

    Negative shift moves elements to the left by 2 positions.
  2. Step 2: Apply shift to array

    Original: [1, 2, 3, 4, 5]
    Shift left 2: [3, 4, 5, 1, 2]
  3. Final Answer:

    [3, 4, 5, 1, 2] -> Option C
  4. Quick Check:

    Negative shift = advance signal [OK]
Hint: Negative np.roll shifts left (advances) [OK]
Common Mistakes:
  • Confusing left and right shift directions
  • Miscounting shifted elements
  • Assuming shift changes values
4. The following code attempts to shift a signal x = [10, 20, 30, 40] by 1 unit forward but produces incorrect output. What is the error?
shifted_x = np.roll(x, -1)
medium
A. The shift value should be positive to delay the signal.
B. np.roll cannot be used for shifting signals.
C. The array x must be converted to a numpy array first.
D. The shift value should be zero for no change.

Solution

  1. Step 1: Analyze shift direction

    Negative shift (-1) moves signal left (advances), not forward (delay).
  2. Step 2: Correct shift value

    To delay (shift forward), use positive shift value +1.
  3. Final Answer:

    The shift value should be positive to delay the signal. -> Option A
  4. Quick Check:

    Positive shift delays signal [OK]
Hint: Positive shift delays; negative advances [OK]
Common Mistakes:
  • Using negative shift to delay signal
  • Thinking np.roll is invalid for shifting
  • Forgetting to convert list to numpy array (not required here)
5. You have two signals sampled at the same rate: s1 = [0, 1, 2, 3, 4] and s2 = [3, 4, 0, 1, 2]. Which time shift applied to s1 aligns it best with s2?
hard
A. Shift s1 by +3 units (delay by 3)
B. Shift s1 by +1 units (delay by 1)
C. Shift s1 by -2 units (advance by 2)
D. Shift s1 by -3 units (advance by 3)

Solution

  1. 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.
  2. 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.
  3. Final Answer:

    Shift s1 by -3 units (advance by 3) -> Option D
  4. Quick Check:

    np.roll(s1, -3) == s2 [OK]
Hint: Match s2 by rolling s1 left/right to align [OK]
Common Mistakes:
  • Choosing wrong shift direction
  • Not checking exact element alignment
  • Confusing delay with advance
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard