📖 Scenario: Imagine you are working with sound signals. You want to convert a continuous sound wave into digital data so a computer can store and play it back. To do this correctly, you need to understand how often to take samples from the sound wave. This is where the Sampling Theorem, also called the Nyquist-Shannon theorem, helps.This project will guide you through creating a simple example to see how sampling frequency affects the ability to capture a signal without losing information.
🎯 Goal: You will build a small program that creates a simple sine wave signal, sets a sampling frequency, samples the signal, and then shows the sampled values. This will help you understand the importance of sampling frequency in capturing signals accurately.
📋 What You'll Learn
Create a continuous sine wave signal with a specific frequency
Set a sampling frequency variable
Sample the sine wave at the given sampling frequency
Print the sampled values to observe the effect of sampling
💡 Why This Matters
🌍 Real World
Sampling continuous signals like sound or images is essential for digital devices to process and store real-world data.
💼 Career
Understanding sampling is key for roles in audio engineering, telecommunications, and data science involving signal processing.
Progress0 / 4 steps
1
Create a continuous sine wave signal
Create a list called time_points with values from 0 to 1 (exclusive) in steps of 0.01. Then create a list called signal that contains the sine of 2 * pi * 5 * each time point. Use import math at the top.
Signal Processing
Hint
Use a list comprehension to create time_points and another to create signal. The frequency of the sine wave is 5 Hz.
2
Set the sampling frequency
Create a variable called sampling_frequency and set it to 8.
Signal Processing
Hint
Sampling frequency should be less than twice the signal frequency to see aliasing effects.
3
Sample the sine wave at the sampling frequency
Create a list called sampled_signal by sampling the signal at intervals of 1 divided by sampling_frequency. Use a list comprehension with range and step size calculated from the sampling frequency.
Signal Processing
Hint
Calculate the step size for sampling by dividing 1 second by sampling frequency and converting to index steps for the 0.01 time step.
4
Print the sampled signal values
Print the sampled_signal list to see the sampled values.
Signal Processing
Hint
The printed list shows sampled sine values at the chosen sampling frequency.
Practice
(1/5)
1. What does the Nyquist-Shannon sampling theorem state about the sampling rate?
easy
A. Sample at the same rate as the highest frequency
B. Sample at half the highest frequency of the signal
C. Sample at any random rate
D. Sample at least twice the highest frequency of the signal
Solution
Step 1: Understand the sampling theorem
The Nyquist-Shannon theorem says to sample at least twice the highest frequency to capture all information.
Step 2: Identify correct sampling rate
Sampling below twice the highest frequency causes aliasing and loss of information.
Final Answer:
Sample at least twice the highest frequency of the signal -> Option D
Quick Check:
Sampling rate ≥ 2 x highest frequency [OK]
Hint: Remember: sample rate must be double highest frequency [OK]
Common Mistakes:
Thinking sampling rate can be less than highest frequency
Confusing sampling rate with signal frequency
Ignoring aliasing effects
2. Which of the following is the correct Python syntax to calculate the Nyquist frequency for a signal with sampling rate fs?
easy
A. nyquist = fs / 2
B. nyquist = fs * 2
C. nyquist = 2 / fs
D. nyquist = fs + 2
Solution
Step 1: Recall Nyquist frequency formula
The Nyquist frequency is half the sampling rate, so nyquist = fs / 2.
Step 2: Match formula to options
Only nyquist = fs / 2 correctly divides fs by 2.
Final Answer:
nyquist = fs / 2 -> Option A
Quick Check:
Nyquist frequency = sampling rate / 2 [OK]
Hint: Nyquist frequency is half the sampling rate [OK]
Common Mistakes:
Multiplying instead of dividing by 2
Confusing Nyquist frequency with sampling rate
Using addition or reciprocal incorrectly
3. Given a signal with highest frequency 500 Hz, what is the minimum sampling rate to avoid aliasing? Consider the code:
highest_freq = 500
sampling_rate = ?
medium
A. sampling_rate = 1000
B. sampling_rate = 750
C. sampling_rate = 250
D. sampling_rate = 500
Solution
Step 1: Apply Nyquist theorem to highest frequency
Minimum sampling rate = 2 x highest frequency = 2 x 500 = 1000 Hz.
Step 2: Compare with options
Only sampling_rate = 1000 matches 1000 Hz.
Final Answer:
sampling_rate = 1000 -> Option A
Quick Check:
Minimum sampling rate = 2 x 500 = 1000 [OK]
Hint: Double the highest frequency for minimum sampling rate [OK]
Common Mistakes:
Choosing sampling rate equal to highest frequency
Selecting a rate less than twice the frequency
Confusing frequency units
4. Identify the error in this Python code snippet that calculates the Nyquist frequency:
Step 1: Understand calculation of Nyquist frequency
Nyquist frequency = sampling rate divided by 2, which equals fs * 0.5.
Step 2: Check code correctness
Code multiplies fs by 0.5 correctly and prints the value 400.0.
Final Answer:
The code is correct and will print 400.0 -> Option C
Quick Check:
fs * 0.5 = 400.0, print works fine [OK]
Hint: Multiplying by 0.5 equals dividing by 2 [OK]
Common Mistakes:
Thinking multiplication by 0.5 is wrong
Assuming variable case matters here
Believing print syntax is incorrect in Python 3
5. You have a signal with components up to 1200 Hz. You sample it at 2000 Hz. What problem will occur and why?
Options: A) No problem, sampling rate is sufficient B) Aliasing will occur because sampling rate is less than twice highest frequency C) Aliasing will occur because sampling rate is more than twice highest frequency D) Signal will be perfectly reconstructed without aliasing
hard
A. No problem, sampling rate is sufficient
B. Aliasing will occur because sampling rate is less than twice highest frequency
C. Aliasing will occur because sampling rate is more than twice highest frequency
D. Signal will be perfectly reconstructed without aliasing
Solution
Step 1: Calculate minimum sampling rate needed
Minimum sampling rate = 2 x 1200 Hz = 2400 Hz.
Step 2: Compare given sampling rate with minimum
Given sampling rate is 2000 Hz, which is less than 2400 Hz, so aliasing will occur.
Step 3: Understand aliasing cause
Sampling below twice the highest frequency causes signal distortion called aliasing.
Final Answer:
Aliasing will occur because sampling rate is less than twice highest frequency -> Option B
Quick Check:
Sampling rate < 2 x highest frequency causes aliasing [OK]
Hint: Sampling rate must be ≥ 2 x highest frequency to avoid aliasing [OK]
Common Mistakes:
Assuming 2000 Hz is enough for 1200 Hz signal
Confusing aliasing cause with oversampling
Thinking aliasing occurs when sampling rate is too high
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.