Bird
Raised Fist0
Signal Processingdata~20 mins

Sample rate conversion basics in Signal Processing - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Sample Rate Conversion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding the purpose of sample rate conversion

Why do we perform sample rate conversion in digital signal processing?

ATo change the sampling frequency of a signal to match another system's requirements
BTo increase the amplitude of the signal without changing its frequency
CTo convert an analog signal directly into a digital signal
DTo remove noise from the signal by filtering
Attempts:
2 left
💡 Hint

Think about why two devices with different sampling rates need to communicate.

❓ Predict Output
intermediate
2:00remaining
Output of upsampling by 2

What is the output array after upsampling the input signal by a factor of 2?

Input signal: [1, 2, 3]

Upsampling means inserting zeros between samples.

Signal Processing
input_signal = [1, 2, 3]
upsample_factor = 2
output_signal = []
for sample in input_signal:
    output_signal.append(sample)
    output_signal.append(0)
print(output_signal)
A[1, 2, 3, 0, 0, 0]
B[0, 1, 0, 2, 0, 3]
C[1, 0, 2, 0, 3, 0]
D[1, 0, 0, 2, 0, 0, 3, 0, 0]
Attempts:
2 left
💡 Hint

Upsampling by 2 inserts one zero after each original sample.

❓ data_output
advanced
2:00remaining
Length of signal after downsampling

Given a signal of length 1000 samples, what is the length after downsampling by a factor of 4?

A1004
B4000
C996
D250
Attempts:
2 left
💡 Hint

Downsampling by 4 keeps every 4th sample.

❓ visualization
advanced
3:00remaining
Effect of interpolation filter on upsampled signal

Which plot best shows the effect of applying an interpolation low-pass filter after upsampling a signal by 2?

The original signal is a sine wave sampled at 10 Hz.

APlot showing a noisy signal with random spikes after filtering
BPlot showing the upsampled signal with zero-inserted samples and smooth sine wave after filtering
CPlot showing a sine wave with doubled frequency without zero samples
DPlot showing only the original sine wave without any zero samples
Attempts:
2 left
💡 Hint

Interpolation filters smooth the zero-inserted samples to reconstruct the signal.

🔧 Debug
expert
3:00remaining
Identify error in sample rate conversion code

What error will this Python code raise when trying to downsample a signal by 3?

signal = [10, 20, 30, 40, 50]
downsample_factor = 3
result = [signal[i] for i in range(0, len(signal), downsample_factor + 1)]
print(result)
AThe output is [10, 50] which is incorrect downsampling
BThe code runs without error and outputs [10, 40]
CIndexError because the range step is incorrect
DThe code runs but outputs [10, 20, 30, 40, 50] without downsampling
Attempts:
2 left
💡 Hint

Check how the step size in range affects the indices selected.

Practice

(1/5)
1. What does sample rate conversion do in signal processing?
easy
A. Changes how often a signal is measured
B. Changes the signal's amplitude
C. Changes the signal's frequency content
D. Changes the signal's phase

Solution

  1. Step 1: Understand sample rate meaning

    Sample rate is how many times per second a signal is measured or sampled.
  2. Step 2: Define sample rate conversion

    Sample rate conversion changes this measurement rate, either increasing or decreasing it.
  3. Final Answer:

    Changes how often a signal is measured -> Option A
  4. Quick Check:

    Sample rate conversion = Changes measurement rate [OK]
Hint: Sample rate conversion changes measurement frequency [OK]
Common Mistakes:
  • Confusing sample rate with signal amplitude
  • Thinking it changes signal frequency content
  • Mixing phase changes with sample rate changes
2. Which of the following is the correct Python syntax to upsample a signal by a factor of 2 using scipy.signal.resample_poly?
easy
A. resample_poly(signal, up=1, down=2)
B. resample_poly(signal, up=2, down=1)
C. resample_poly(signal, rate=2)
D. resample_poly(signal, down=2)

Solution

  1. Step 1: Recall resample_poly parameters

    The function uses 'up' to increase sample rate and 'down' to decrease it.
  2. Step 2: Identify upsampling by 2

    To upsample by 2, set up=2 and down=1 to keep original rate multiplied by 2.
  3. Final Answer:

    resample_poly(signal, up=2, down=1) -> Option B
  4. Quick Check:

    Upsample factor = up=2, down=1 [OK]
Hint: Upsample means up>down, so up=2, down=1 [OK]
Common Mistakes:
  • Swapping up and down values
  • Omitting required parameters
  • Using only up or down without the other
3. Given a signal sampled at 1000 Hz, what will be the new sample rate after applying resample_poly(signal, up=3, down=2)?
medium
A. 1500 Hz
B. 2000 Hz
C. 500 Hz
D. 3000 Hz

Solution

  1. Step 1: Understand resample_poly rate change

    The new sample rate = original rate * (up / down).
  2. Step 2: Calculate new sample rate

    1000 Hz * (3 / 2) = 1500 Hz.
  3. Final Answer:

    1500 Hz -> Option A
  4. Quick Check:

    1000 * 3/2 = 1500 Hz [OK]
Hint: Multiply original rate by up/down ratio [OK]
Common Mistakes:
  • Multiplying by down/up instead of up/down
  • Forgetting to multiply by original rate
  • Confusing sample rate with signal length
4. What is wrong with this code snippet for downsampling a signal by 4?
from scipy.signal import resample_poly
new_signal = resample_poly(signal, up=1, down=4)
medium
A. It will cause a syntax error due to missing import
B. The up parameter should be 4, not 1
C. It may cause aliasing without proper filtering
D. The down parameter should be 1, not 4

Solution

  1. Step 1: Check code correctness

    The code syntax is correct and imports resample_poly properly.
  2. Step 2: Understand downsampling risks

    Downsampling by 4 reduces sample rate, which can cause aliasing if signal is not filtered.
  3. Final Answer:

    It may cause aliasing without proper filtering -> Option C
  4. Quick Check:

    Downsampling needs filtering to avoid aliasing [OK]
Hint: Downsampling needs filtering to prevent aliasing [OK]
Common Mistakes:
  • Assuming code syntax error
  • Confusing up and down parameters
  • Ignoring aliasing effects
5. You have a 44100 Hz audio signal and want to convert it to 16000 Hz for a speech recognition system. Which combination of up and down factors correctly resamples the signal using resample_poly?
hard
A. up=1600, down=441
B. up=44100, down=16000
C. up=160, down=4410
D. up=160, down=441

Solution

  1. Step 1: Calculate ratio for resampling

    The ratio is new_rate / old_rate = 16000 / 44100 ≈ 0.3628.
  2. Step 2: Find integer up/down factors

    Scaling both by 1000 gives up=160, down=441, which approximates the ratio well.
  3. Final Answer:

    up=160, down=441 -> Option D
  4. Quick Check:

    160/441 ≈ 0.3628 matches 16000/44100 [OK]
Hint: Simplify ratio new_rate/old_rate to small integers [OK]
Common Mistakes:
  • Using raw sample rates as up/down without simplification
  • Swapping up and down values
  • Choosing factors that don't approximate ratio
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