Bird
Raised Fist0
Signal Processingdata~5 mins

Time scaling (compression and expansion) in Signal Processing - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is time scaling in signal processing?
Time scaling changes the speed of a signal. Compression makes the signal faster, and expansion makes it slower.
Click to reveal answer
beginner
What happens to a signal when it is compressed in time?
The signal duration becomes shorter, so it plays faster. For example, a 10-second sound compressed by 2 will play in 5 seconds.
Click to reveal answer
beginner
How does time expansion affect a signal?
Time expansion makes the signal longer, slowing it down. A 5-second signal expanded by 3 will last 15 seconds.
Click to reveal answer
intermediate
Which mathematical operation represents time scaling of a signal x(t)?
The time-scaled signal is x(t / a), where 'a' is the scaling factor. If a > 1, the signal compresses; if 0 < a < 1, it expands.
Click to reveal answer
intermediate
What is the effect of time scaling on the frequency content of a signal?
Time compression increases the frequency components, making the signal sound higher in pitch. Time expansion lowers frequencies, making it sound deeper.
Click to reveal answer
What does time compression do to a signal's duration?
AReverses it
BMakes it shorter
CKeeps it the same
DMakes it longer
If a signal x(t) is scaled as x(2t), what happens?
ASignal duration doubles
BSignal amplitude doubles
CSignal amplitude halves
DSignal duration halves
Time expansion corresponds to which range of scaling factor 'a' in x(a * t)?
A0 < a < 1
Ba > 1
Ca = 1
Da < 0
How does time scaling affect the pitch of a sound signal?
ACompression raises pitch
BExpansion raises pitch
CCompression lowers pitch
DNo effect on pitch
Which of these is a real-life example of time scaling?
AChanging the color of an image
BChanging volume on a speaker
CSpeeding up a video playback
DRotating a photo
Explain what time scaling means and how compression and expansion affect a signal.
Think about how changing speed affects a song or video.
You got /3 concepts.
    Describe the mathematical representation of time scaling and how the scaling factor changes the signal duration.
    Focus on how multiplying time by a number changes the signal length.
    You got /3 concepts.

      Practice

      (1/5)
      1. What happens to a signal when it is time-scaled with a factor a > 1?
      easy
      A. The signal is expanded and plays slower.
      B. The signal amplitude increases.
      C. The signal is compressed and plays faster.
      D. The signal frequency decreases.

      Solution

      1. Step 1: Understand time scaling factor meaning

        A factor a > 1 means the time axis is divided by a number greater than 1, making the signal shorter in time.
      2. Step 2: Effect on signal playback speed

        Shorter time means the signal plays faster, which is called compression.
      3. Final Answer:

        The signal is compressed and plays faster. -> Option C
      4. Quick Check:

        Compression (a > 1) = Faster playback [OK]
      Hint: If a > 1, signal speeds up (compresses) [OK]
      Common Mistakes:
      • Confusing compression with expansion
      • Thinking amplitude changes with time scaling
      • Mixing frequency effects with time scaling
      2. Which of the following Python code snippets correctly applies time scaling by a factor a to a signal array x using interpolation?
      easy
      A. import numpy as np n = len(x) t = np.arange(n) t_new = t / a x_new = x[t_new]
      B. import numpy as np n = len(x) t = np.arange(n) t_new = t * a x_new = x[t_new]
      C. import numpy as np from scipy.interpolate import interp1d n = len(x) t = np.arange(n) f = interp1d(t, x) t_new = t * a x_new = f(t_new)
      D. import numpy as np from scipy.interpolate import interp1d n = len(x) t = np.arange(n) f = interp1d(t, x) t_new = t / a x_new = f(t_new)

      Solution

      1. Step 1: Understand time scaling formula

        Time scaling by factor a means new time points are t_new = t / a.
      2. Step 2: Use interpolation for non-integer indices

        Since t_new may be fractional, interpolation function f is used to get x_new.
      3. Final Answer:

        Code snippet A correctly applies time scaling with interpolation. -> Option D
      4. Quick Check:

        t_new = t / a with interp1d = Correct scaling [OK]
      Hint: Use t_new = t / a with interpolation function [OK]
      Common Mistakes:
      • Multiplying time by a instead of dividing
      • Indexing array directly with fractional indices
      • Forgetting to import interp1d
      3. Given the code below, what is the length of the output signal x_scaled?
      import numpy as np
      from scipy.interpolate import interp1d
      x = np.array([1, 2, 3, 4, 5])
      a = 0.5
      n = len(x)
      t = np.arange(n)
      f = interp1d(t, x, kind='linear', fill_value='extrapolate')
      t_new = t / a
      x_scaled = f(t_new)
      medium
      A. 5
      B. 10
      C. 3
      D. 7

      Solution

      1. Step 1: Check length of t_new

        Variable t_new is computed as t / a, but t has length 5, so t_new also has length 5.
      2. Step 2: Interpolation output length

        Interpolating at 5 points returns an array x_scaled of length 5.
      3. Final Answer:

        5 -> Option A
      4. Quick Check:

        Length of t_new = length of x_scaled = 5 [OK]
      Hint: Output length matches length of t_new array [OK]
      Common Mistakes:
      • Assuming output length changes with scaling factor
      • Confusing scaling factor with output size
      • Ignoring that t_new length equals original length
      4. Identify the error in the following code that attempts to expand a signal by a factor of 2:
      import numpy as np
      from scipy.interpolate import interp1d
      x = np.array([10, 20, 30, 40])
      a = 2
      n = len(x)
      t = np.arange(n)
      f = interp1d(t, x)
      t_new = t * a
      x_expanded = f(t_new)
      medium
      A. Using integer array t instead of float array.
      B. Using t * a instead of t / a for time scaling.
      C. Using interp1d without sorting t.
      D. Not specifying fill_value in interp1d causes error.

      Solution

      1. Step 1: Recall time scaling formula

        To expand (slow down) a signal by factor 2, new time points should be t_new = t / a, not t * a.
      2. Step 2: Effect of incorrect scaling

        Using t * a compresses the signal instead of expanding it, causing wrong output.
      3. Final Answer:

        Using t * a instead of t / a for time scaling. -> Option B
      4. Quick Check:

        Expansion requires t_new = t / a [OK]
      Hint: Use t_new = t / a for expansion, not t * a [OK]
      Common Mistakes:
      • Multiplying time by a instead of dividing
      • Ignoring interpolation domain limits
      • Not handling extrapolation in interp1d
      5. You have a signal sampled at 1000 Hz with 1000 samples. You want to create a time-scaled version that plays twice as slow (expansion). Which of the following code snippets correctly computes the new signal x_expanded with proper interpolation and new sampling points?
      hard
      A. import numpy as np from scipy.interpolate import interp1d x = original_signal fs = 1000 n = len(x) t = np.arange(n) / fs f = interp1d(t, x, kind='cubic', fill_value='extrapolate') t_new = np.arange(0, t[-1]*2, 1/fs) x_expanded = f(t_new)
      B. import numpy as np from scipy.interpolate import interp1d x = original_signal fs = 1000 n = len(x) t = np.arange(n) / fs f = interp1d(t, x, kind='linear') t_new = np.arange(0, t[-1]/2, 1/fs) x_expanded = f(t_new)
      C. import numpy as np from scipy.interpolate import interp1d x = original_signal fs = 1000 n = len(x) t = np.arange(n) / fs f = interp1d(t, x) t_new = np.arange(0, t[-1]*2, 2/fs) x_expanded = f(t_new)
      D. import numpy as np from scipy.interpolate import interp1d x = original_signal fs = 1000 n = len(x) t = np.arange(n) / fs f = interp1d(t, x, kind='cubic') t_new = np.arange(0, t[-1]*0.5, 1/fs) x_expanded = f(t_new)

      Solution

      1. Step 1: Understand expansion by factor 2

        Playing twice as slow means the signal duration doubles, so new time axis goes from 0 to t[-1]*2.
      2. Step 2: Create new time points at original sampling rate

        New time points should be spaced by 1/fs to keep sampling rate consistent.
      3. Step 3: Use interpolation with extrapolation

        Interpolation function with cubic method and fill_value='extrapolate' handles points beyond original range.
      4. Final Answer:

        Code snippet A correctly computes the expanded signal. -> Option A
      5. Quick Check:

        Expansion doubles duration with proper interpolation [OK]
      Hint: Double time axis length, keep sampling interval, interpolate [OK]
      Common Mistakes:
      • Reducing time axis length instead of expanding
      • Changing sampling interval incorrectly
      • Not handling extrapolation in interpolation
      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