Bird
Raised Fist0
Signal Processingdata~20 mins

Channel noise and SNR in Signal Processing - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Channel Noise and SNR Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Signal-to-Noise Ratio (SNR)

What does a higher Signal-to-Noise Ratio (SNR) indicate about a communication channel?

AThe noise is stronger than the signal, causing more errors.
BThe signal and noise have equal strength, making communication unreliable.
CThe signal is much stronger than the noise, leading to clearer communication.
DThe channel is completely noise-free.
Attempts:
2 left
💡 Hint

Think about what it means when the signal is stronger compared to noise.

❓ Predict Output
intermediate
2:00remaining
Calculate SNR from signal and noise powers

Given the signal power is 50 mW and noise power is 5 mW, what is the SNR in decibels (dB)?

Use the formula: SNR(dB) = 10 * log10(signal_power / noise_power)

Signal Processing
import math
signal_power = 50  # mW
noise_power = 5    # mW
snr_db = 10 * math.log10(signal_power / noise_power)
print(f"{snr_db:.2f}")
A7.00
B10.00
C13.01
D20.00
Attempts:
2 left
💡 Hint

Calculate the ratio first, then apply 10 times the log base 10.

❓ data_output
advanced
2:30remaining
Effect of Noise on Received Signal Power

Given a received signal array with noise added, what is the mean power of the noise component?

Signal: [2, 3, 4, 5, 6]

Received: [2.5, 3.2, 3.8, 5.1, 5.9]

Noise = Received - Signal

Signal Processing
import numpy as np
signal = np.array([2, 3, 4, 5, 6])
received = np.array([2.5, 3.2, 3.8, 5.1, 5.9])
noise = received - signal
noise_power = np.mean(noise**2)
print(f"{noise_power:.3f}")
A0.060
B0.052
C0.034
D0.070
Attempts:
2 left
💡 Hint

Calculate noise by subtracting signal from received, then find mean of squared noise values.

❓ visualization
advanced
2:00remaining
Plotting Signal and Noise Components

Which plot correctly shows the original signal and noise components separately?

Signal Processing
import matplotlib.pyplot as plt
import numpy as np
signal = np.array([1, 2, 3, 4, 5])
noise = np.array([0.1, -0.2, 0.3, -0.1, 0])
received = signal + noise
plt.plot(signal, label='Signal')
plt.plot(noise, label='Noise')
plt.legend()
plt.show()
ALine plot with signal as a smooth increasing line and noise fluctuating around zero.
BBar chart showing signal and noise stacked.
CScatter plot with signal and noise overlapping at same points.
DPie chart dividing signal and noise proportions.
Attempts:
2 left
💡 Hint

Think about how signal and noise values vary over time.

🔧 Debug
expert
2:30remaining
Identify the Error in SNR Calculation Code

What error will this code produce when calculating SNR?

import numpy as np
signal_power = np.array([10, 20, 30])
noise_power = np.array([2, 0, 5])
snr_db = 10 * np.log10(signal_power / noise_power)
print(snr_db)
ARuntimeWarning: divide by zero encountered in true_divide
BValueError: operands could not be broadcast together
CTypeError: unsupported operand type(s) for /: 'int' and 'list'
DNo error, prints SNR values
Attempts:
2 left
💡 Hint

Look at the noise_power array and check for zero values.

Practice

(1/5)
1. What does SNR (Signal-to-Noise Ratio) represent in signal processing?
easy
A. The strength of the signal compared to the background noise
B. The total amount of noise in the channel
C. The speed at which the signal is transmitted
D. The frequency of the signal

Solution

  1. Step 1: Understand the meaning of SNR

    SNR measures how strong the useful signal is compared to the noise interfering with it.
  2. Step 2: Compare options with definition

    Only The strength of the signal compared to the background noise correctly describes SNR as the ratio of signal strength to noise level.
  3. Final Answer:

    The strength of the signal compared to the background noise -> Option A
  4. Quick Check:

    SNR = Signal strength / Noise level [OK]
Hint: Remember: SNR compares signal power to noise power [OK]
Common Mistakes:
  • Confusing SNR with noise level alone
  • Thinking SNR measures speed or frequency
  • Mixing signal strength with noise amount
2. Which of the following is the correct formula to calculate SNR in decibels (dB)?
easy
A. SNR(dB) = 10 * log10(signal power / noise power)
B. SNR(dB) = signal power / noise power
C. SNR(dB) = 20 * log10(signal power * noise power)
D. SNR(dB) = log10(signal power - noise power)

Solution

  1. Step 1: Recall the SNR dB formula

    SNR in decibels is calculated as 10 times the base-10 logarithm of the ratio of signal power to noise power.
  2. Step 2: Match formula with options

    SNR(dB) = 10 * log10(signal power / noise power) matches the correct formula exactly; others are incorrect or mathematically invalid.
  3. Final Answer:

    SNR(dB) = 10 * log10(signal power / noise power) -> Option A
  4. Quick Check:

    SNR(dB) = 10 * log10(Signal/Noise) [OK]
Hint: Use 10 * log10 for power ratios in dB [OK]
Common Mistakes:
  • Using 20 instead of 10 for power ratio
  • Multiplying signal and noise instead of dividing
  • Subtracting powers inside log instead of dividing
3. Given signal power = 50 mW and noise power = 5 mW, what is the SNR in decibels (dB)? Use SNR(dB) = 10 * log10(signal power / noise power).
medium
A. 7 dB
B. 10 dB
C. 13 dB
D. 5 dB

Solution

  1. Step 1: Calculate the ratio signal power / noise power

    Ratio = 50 mW / 5 mW = 10
  2. Step 2: Calculate SNR in dB using formula

    SNR(dB) = 10 * log10(10) = 10 * 1 = 10 dB
  3. Step 3: Re-check calculation

    Log base 10 of 10 is 1, so SNR = 10 dB
  4. Final Answer:

    10 dB -> Option B
  5. Quick Check:

    10 * log10(10) = 10 dB [OK]
Hint: Calculate ratio first, then multiply log10 by 10 [OK]
Common Mistakes:
  • Using natural log instead of log base 10
  • Dividing noise by signal instead of signal by noise
  • Forgetting to multiply by 10
4. The following Python code attempts to calculate SNR in dB but has an error. What is the error?
import math
signal_power = 100
noise_power = 20
snr_db = 10 * math.log(signal_power / noise_power)
print(snr_db)
medium
A. Multiplying by 20 instead of 10
B. Dividing noise_power by signal_power
C. Missing import statement
D. Using math.log instead of math.log10

Solution

  1. Step 1: Identify the logarithm function used

    The code uses math.log which is natural log (base e), but SNR in dB requires log base 10.
  2. Step 2: Correct the log function

    Replace math.log with math.log10 to get correct SNR in decibels.
  3. Final Answer:

    Using math.log instead of math.log10 -> Option D
  4. Quick Check:

    Use math.log10 for dB calculations [OK]
Hint: Use math.log10 for base-10 logs in dB calculations [OK]
Common Mistakes:
  • Using natural log instead of log10
  • Swapping signal and noise in division
  • Forgetting to import math module
5. A communication channel has a signal power of 200 mW and noise power of 50 mW. If the noise power doubles, what happens to the SNR in dB? Use SNR(dB) = 10 * log10(signal power / noise power).
hard
A. SNR decreases by about 6 dB
B. SNR increases by about 3 dB
C. SNR decreases by about 3 dB
D. SNR stays the same

Solution

  1. Step 1: Calculate initial SNR

    Initial SNR = 10 * log10(200 / 50) = 10 * log10(4) ≈ 10 * 0.602 = 6.02 dB
  2. Step 2: Calculate new SNR after noise doubles

    New noise power = 50 * 2 = 100 mW
    New SNR = 10 * log10(200 / 100) = 10 * log10(2) ≈ 10 * 0.301 = 3.01 dB
  3. Step 3: Find change in SNR

    Change = 6.02 - 3.01 = 3.01 dB decrease
  4. Final Answer:

    SNR decreases by about 3 dB -> Option C
  5. Quick Check:

    Doubling noise halves ratio, drops SNR by ~3 dB [OK]
Hint: Doubling noise power drops SNR by ~3 dB [OK]
Common Mistakes:
  • Thinking SNR increases when noise increases
  • Calculating log base e instead of base 10
  • Forgetting to multiply log by 10
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