Bird
Raised Fist0
Signal Processingdata~30 mins

Signal properties (amplitude, frequency, phase) in Signal Processing - Mini Project: Build & Apply

Choose your learning style10 modes available
Signal properties (amplitude, frequency, phase)
📖 Scenario: You are working with simple wave signals in a science lab. Each signal can be described by three properties: amplitude (how tall the wave is), frequency (how fast the wave repeats), and phase (where the wave starts).Understanding these properties helps in analyzing sound waves, light waves, or any repeating signals in real life.
🎯 Goal: You will create a data structure to hold signals with their amplitude, frequency, and phase. Then, you will select signals with frequency above a certain threshold and finally print those selected signals.
📋 What You'll Learn
Create a dictionary called signals with signal names as keys and their properties as nested dictionaries with keys 'amplitude', 'frequency', and 'phase'.
Create a variable called freq_threshold to hold the frequency cutoff value.
Use a dictionary comprehension to create a new dictionary called high_freq_signals containing only signals with frequency greater than freq_threshold.
Print the high_freq_signals dictionary.
💡 Why This Matters
🌍 Real World
Signal properties like amplitude, frequency, and phase are used in audio processing, telecommunications, and physics to analyze and manipulate waves.
💼 Career
Understanding how to handle and filter signal data is important for roles in data science, engineering, and research involving time series or wave data.
Progress0 / 4 steps
1
Create the signals dictionary
Create a dictionary called signals with these exact entries: 'signal1' with amplitude 5, frequency 50, phase 0; 'signal2' with amplitude 3, frequency 20, phase 1.57; 'signal3' with amplitude 4, frequency 75, phase 3.14.
Signal Processing
Hint

Use a dictionary with keys as signal names and values as dictionaries for properties.

2
Set the frequency threshold
Create a variable called freq_threshold and set it to 30.
Signal Processing
Hint

Just create a variable named freq_threshold and assign 30 to it.

3
Filter signals by frequency
Use a dictionary comprehension to create a new dictionary called high_freq_signals that contains only the signals from signals where the 'frequency' is greater than freq_threshold.
Signal Processing
Hint

Use dictionary comprehension with for name, props in signals.items() and filter by props['frequency'] > freq_threshold.

4
Print the filtered signals
Print the high_freq_signals dictionary.
Signal Processing
Hint

Use print(high_freq_signals) to show the filtered signals.

Practice

(1/5)
1. Which property of a signal describes how tall or strong the wave is?
easy
A. Frequency
B. Amplitude
C. Phase
D. Wavelength

Solution

  1. Step 1: Understand amplitude meaning

    Amplitude measures the height or strength of a wave, showing how strong the signal is.
  2. Step 2: Compare with other properties

    Frequency is how often the wave repeats, phase shifts the start, wavelength is distance, not height.
  3. Final Answer:

    Amplitude -> Option B
  4. Quick Check:

    Amplitude = wave height [OK]
Hint: Amplitude means wave height or strength [OK]
Common Mistakes:
  • Confusing amplitude with frequency
  • Thinking phase affects height
  • Mixing wavelength with amplitude
2. Which of the following is the correct way to represent a sine wave with amplitude 3 and frequency 5 Hz in Python using numpy?
t = np.linspace(0, 1, 500)
y = ?
easy
A. 3 + np.sin(2 * np.pi * 5 * t)
B. np.sin(3 * 2 * np.pi * 5 * t)
C. 3 * np.sin(2 * np.pi * 5 * t)
D. 5 * np.sin(2 * np.pi * 3 * t)

Solution

  1. Step 1: Recall sine wave formula

    The sine wave formula is amplitude * sin(2π * frequency * time).
  2. Step 2: Match formula to options

    3 * np.sin(2 * np.pi * 5 * t) matches amplitude 3 and frequency 5 correctly as 3 * sin(2π * 5 * t).
  3. Final Answer:

    3 * np.sin(2 * np.pi * 5 * t) -> Option C
  4. Quick Check:

    Amplitude * sin(2π * frequency * t) [OK]
Hint: Amplitude multiplies sine, frequency inside sine argument [OK]
Common Mistakes:
  • Multiplying frequency by amplitude inside sine
  • Adding amplitude instead of multiplying
  • Swapping amplitude and frequency
3. Given the code:
import numpy as np
t = np.linspace(0, 1, 5)
y = 2 * np.sin(2 * np.pi * 1 * t + np.pi/2)
print(np.round(y, 2))

What is the output?
medium
A. [ 2. 0. -2. 0. 2. ]
B. [ 2. 1.41 0. -1.41 -2. ]
C. [ 0. 1.41 2. 1.41 0. ]
D. [ 1.41 2. 1.41 0. -1.41]

Solution

  1. Step 1: Calculate time points

    t = [0, 0.25, 0.5, 0.75, 1]
  2. Step 2: Compute y values

    y = 2 * sin(2π * 1 * t + π/2) = 2 * cos(2π * t) due to phase shift π/2.
    Values: 2*cos(0)=2, 2*cos(π/2)=0, 2*cos(π)=-2, 2*cos(3π/2)=0, 2*cos(2π)=2
    np.round(y, 2) prints [ 2. 0. -2. 0. 2. ]
  3. Final Answer:

    [ 2. 0. -2. 0. 2. ] -> Option A
  4. Quick Check:

    Phase π/2 shifts sine to cosine [OK]
Hint: Phase π/2 shifts sine to cosine wave [OK]
Common Mistakes:
  • Ignoring phase shift
  • Rounding errors
  • Mixing sine and cosine values
4. Identify the error in this code snippet that tries to create a sine wave with amplitude 4 and frequency 2 Hz:
import numpy as np
t = np.linspace(0, 1, 100)
y = 4 * np.sin(2 * np.pi * t) * 2
medium
A. The time vector t should be integers, not floats
B. Amplitude should be added, not multiplied
C. np.linspace should use 0 to 2 instead of 0 to 1
D. The frequency multiplier is in the wrong place; it should be inside the sine argument as 2 * np.pi * 2 * t

Solution

  1. Step 1: Analyze sine argument order

    The sine argument is 2π * t (frequency 1 Hz), but *2 is outside sin(), incorrectly scaling the amplitude instead of frequency.
  2. Step 2: Correct placement for frequency

    Frequency multiplier must be inside sine: 2 * np.pi * 2 * t.
  3. Final Answer:

    The frequency multiplier is in the wrong place; it should be inside the sine argument as 2 * np.pi * 2 * t -> Option D
  4. Quick Check:

    Frequency must multiply time inside sine [OK]
Hint: Write frequency right after 2π inside sine [OK]
Common Mistakes:
  • Multiplying amplitude incorrectly
  • Using wrong time vector type
  • Changing linspace range unnecessarily
5. You have a signal defined as y = 5 * np.sin(2 * np.pi * 3 * t + π/4). If you want to double the frequency and halve the amplitude while keeping the phase shift the same, which expression is correct?
hard
A. y = 2.5 * np.sin(2 * np.pi * 6 * t + π/4)
B. y = 10 * np.sin(2 * np.pi * 1.5 * t + π/4)
C. y = 2.5 * np.sin(2 * np.pi * 3 * t + π/2)
D. y = 5 * np.sin(2 * np.pi * 6 * t)

Solution

  1. Step 1: Adjust amplitude and frequency

    Original amplitude is 5, halved is 2.5. Original frequency is 3, doubled is 6.
  2. Step 2: Keep phase shift same

    Phase shift π/4 remains unchanged in the new expression.
  3. Final Answer:

    y = 2.5 * np.sin(2 * np.pi * 6 * t + π/4) -> Option A
  4. Quick Check:

    Amplitude halved, frequency doubled, phase same [OK]
Hint: Multiply frequency by 2, amplitude by 0.5, keep phase [OK]
Common Mistakes:
  • Changing phase shift incorrectly
  • Multiplying amplitude instead of halving
  • Swapping frequency and amplitude values
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