Simple conversion from analog to digital signal for processing.
Signal Processing
digital_signal = analog_to_digital(analog_input)
# Converts continuous input to digital numbers
Sample Program
This code creates a sine wave as an analog signal, samples it at a lower rate, and then quantizes the samples into 256 levels. It prints the first 10 values of each step and shows a plot comparing the analog and digital signals.
Signal Processing
import numpy as np
import matplotlib.pyplot as plt
# Create a simple analog signal: sine wave
fs = 1000# sampling frequency in Hz
f = 5# signal frequency in Hz
t = np.linspace(0, 1, fs, endpoint=False)
analog_signal = np.sin(2 * np.pi * f * t)
# Digitize: sample and quantize
sample_rate = 100# samples per second
sample_points = np.arange(0, 1, 1/sample_rate)
digital_samples = np.sin(2 * np.pi * f * sample_points)
# Quantize to 8 bits (256 levels)
quantized = np.round((digital_samples + 1) * 127.5).astype(int)
# Show resultsprint('First 10 analog samples:', analog_signal[:10])
print('First 10 digital samples:', digital_samples[:10])
print('First 10 quantized values:', quantized[:10])
# Plot for visualization
plt.plot(t, analog_signal, label='Analog Signal')
plt.stem(sample_points, digital_samples, linefmt='r-', markerfmt='ro', basefmt='k-', label='Digital Samples')
plt.title('Digitization of a Sine Wave')
plt.xlabel('Time (seconds)')
plt.ylabel('Amplitude')
plt.legend()
plt.show()
OutputSuccess
Important Notes
Digitization allows computers to work with signals as numbers.
Sampling rate must be high enough to capture signal details (Nyquist rule).
Quantization introduces small errors but makes data manageable.
Summary
Digitization changes signals into numbers for computers.
This process includes sampling (taking points) and quantization (rounding values).
Digitized signals can be stored, processed, and analyzed easily.
Practice
(1/5)
1. Why does digitization allow computers to process signals?
easy
A. Because it changes signals into colors
B. Because it makes signals louder
C. Because it converts signals into numbers that computers understand
D. Because it removes all noise from signals
Solution
Step 1: Understand what digitization does
Digitization changes real-world signals into numbers that computers can read.
Step 2: Connect digitization to computer processing
Computers work with numbers, so digitization makes signals usable for software.
Final Answer:
Because it converts signals into numbers that computers understand -> Option C
Quick Check:
Digitization = numbers for computers [OK]
Hint: Digitization means turning signals into numbers [OK]
Common Mistakes:
Thinking digitization changes signal volume
Confusing digitization with color changes
Assuming digitization removes all noise
2. Which of the following is the correct way to represent a digitized signal in code?
easy
A. signal = [0.1, 0.5, 0.3, 0.7]
B. signal = '0.1, 0.5, 0.3, 0.7'
C. signal = {0.1, 0.5, 0.3, 0.7}
D. signal = (0.1 0.5 0.3 0.7)
Solution
Step 1: Identify correct data structure for digitized signals
Digitized signals are stored as lists or arrays of numbers.
Step 2: Check syntax correctness
signal = [0.1, 0.5, 0.3, 0.7] uses a list with commas and brackets, which is correct syntax.
Final Answer:
signal = [0.1, 0.5, 0.3, 0.7] -> Option A
Quick Check:
List with numbers and commas = correct [OK]
Hint: Lists use brackets and commas for numbers [OK]
Common Mistakes:
Using strings instead of number lists
Using curly braces which create sets, not lists
Missing commas between numbers
3. What will be the output of this Python code that digitizes a simple signal?
import numpy as np
signal = np.array([0.2, 0.4, 0.6, 0.8])
digitized = (signal * 10).astype(int)
print(digitized)
medium
A. [2 4 6 8]
B. [0 4 6 8]
C. [2 4 6 7]
D. [2 4 6 9]
Solution
Step 1: Multiply signal values by 10
Each element is multiplied: 0.2*10=2.0, 0.4*10=4.0, 0.6*10=6.0, 0.8*10=8.0.
Step 2: Convert float to int
Using astype(int) truncates decimals, so values become 2, 4, 6, 8.
Final Answer:
[2 4 6 8] -> Option A
Quick Check:
Multiply then int cast = [2 4 6 8] [OK]
Hint: Multiply then convert floats to int truncates decimals [OK]
Common Mistakes:
Rounding instead of truncating
Misreading multiplication results
Confusing array print format with list
4. Find the error in this code snippet that tries to digitize a signal:
signal = [0.1, 0.3, 0.5]
digitized = []
for value in signal:
digitized.append(value * 10)
print(digitized.astype(int))
medium
A. Multiplying by 10 is incorrect for digitization
B. You cannot call astype(int) on a Python list
C. The for loop syntax is wrong
D. The print statement is missing parentheses
Solution
Step 1: Identify data types used
Variable digitized is a Python list, which has no astype method.
Step 2: Understand method applicability
astype(int) is a NumPy array method, not for lists.
Final Answer:
You cannot call astype(int) on a Python list -> Option B
Quick Check:
List has no astype method [OK]
Hint: astype is for arrays, not lists [OK]
Common Mistakes:
Thinking for loop syntax is wrong
Believing multiplication by 10 is incorrect
Confusing print syntax in Python 3
5. You have a continuous signal sampled into 1000 points. To digitize it for processing, which step is essential to ensure accurate computational analysis?
hard
A. Change the signal into a string format for easy reading
B. Add random noise to the signal to test robustness
C. Reduce the number of points to less than 100 for faster processing
D. Convert the sampled points into numerical values with sufficient precision
Solution
Step 1: Understand digitization requirements
Digitization means turning samples into numbers computers can use, needing enough precision to keep signal details.
Step 2: Evaluate options for accuracy
Converting to numbers with sufficient precision preserves signal quality for analysis.
Final Answer:
Convert the sampled points into numerical values with sufficient precision -> Option D
Quick Check:
Precision in numbers = accurate digitization [OK]
Hint: Keep enough precision when converting samples to numbers [OK]
Common Mistakes:
Thinking strings help processing
Reducing points loses important data
Adding noise is not part of digitization
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.