This formula means we multiply the signal by simple waves and add them up.
F(\omega) shows how much of frequency \omega is in the signal.
Examples
This example creates a signal with 50 Hz and 120 Hz tones and shows their frequencies using Fourier Transform.
Signal Processing
import numpy as np
import matplotlib.pyplot as plt
# Create a signal with two frequencies
fs = 1000# samples per second
T = 1# seconds
t = np.linspace(0, T, fs, endpoint=False)
signal = np.sin(2*np.pi*50*t) + 0.5*np.sin(2*np.pi*120*t)
# Compute Fourier Transform
ft = np.fft.fft(signal)
freq = np.fft.fftfreq(len(signal), 1/fs)
# Plot magnitude
plt.plot(freq[:fs//2], np.abs(ft)[:fs//2])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.title('Fourier Transform of signal')
plt.show()
This code finds the main frequency in a simple sine wave signal.
Signal Processing
import numpy as np
# Simple signal: one frequency
fs = 500
T = 1
t = np.linspace(0, T, fs, endpoint=False)
signal = np.sin(2*np.pi*5*t)
# Fourier Transform
ft = np.fft.fft(signal)
freq = np.fft.fftfreq(len(signal), 1/fs)
# Find peak frequency
peak_freq = freq[np.argmax(np.abs(ft))]
print(f'Peak frequency: {peak_freq} Hz')
Sample Program
This program creates a signal with two frequencies (50 Hz and 120 Hz). It then uses Fourier Transform to find these frequencies and plots their strength.
Signal Processing
import numpy as np
import matplotlib.pyplot as plt
# Create a signal with two sine waves
fs = 1000# Sampling rate
T = 1# Duration in seconds
t = np.linspace(0, T, fs, endpoint=False)
signal = np.sin(2*np.pi*50*t) + 0.5*np.sin(2*np.pi*120*t)
# Compute Fourier Transform
ft = np.fft.fft(signal)
freq = np.fft.fftfreq(len(signal), 1/fs)
# Plot only positive frequencies
plt.plot(freq[:fs//2], np.abs(ft)[:fs//2])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.title('Fourier Transform of signal')
plt.grid(True)
plt.show()
OutputSuccess
Important Notes
The Fourier Transform changes a signal from time view to frequency view.
Real signals often have many frequencies mixed together.
Fourier Transform helps us see these frequencies clearly.
Summary
Fourier Transform breaks signals into simple waves.
It shows which frequencies are inside a signal.
This helps analyze sounds, vibrations, and other signals.
Practice
(1/5)
1. What does the Fourier Transform do to a signal?
easy
A. Breaks it into simple waves of different frequencies
B. Changes the signal into a random noise
C. Removes all frequencies except the highest
D. Converts the signal into a single number
Solution
Step 1: Understand the purpose of Fourier Transform
The Fourier Transform breaks a complex signal into simpler parts called sine and cosine waves.
Step 2: Identify what the transform reveals
It shows the different frequencies that make up the original signal.
Final Answer:
Breaks it into simple waves of different frequencies -> Option A
Quick Check:
Fourier Transform = signal broken into frequencies [OK]
Hint: Fourier Transform splits signals into frequency waves [OK]
Common Mistakes:
Thinking it removes frequencies instead of showing them
Believing it converts signal to a single number
Confusing it with noise generation
2. Which of the following is the correct syntax to compute the Fourier Transform of a signal array signal using NumPy in Python?
easy
A. np.fft.fft(signal)
B. np.fft.transform(signal)
C. np.fourier(signal)
D. np.fft.fourier_transform(signal)
Solution
Step 1: Recall NumPy FFT function name
NumPy uses np.fft.fft() to compute the Fourier Transform of a signal.
Step 2: Check other options for correctness
Other options are not valid NumPy functions for Fourier Transform.
Final Answer:
np.fft.fft(signal) -> Option A
Quick Check:
NumPy FFT function = np.fft.fft() [OK]
Hint: Use np.fft.fft() for Fourier Transform in NumPy [OK]
Common Mistakes:
Using incorrect function names like np.fft.transform
Confusing Fourier Transform with other NumPy functions
Misspelling 'fft'
3. Given the Python code:
import numpy as np
signal = np.array([1, 0, -1, 0])
ft = np.fft.fft(signal)
print(np.round(ft, 2))
What is the output?
medium
A. [0.+0.j 0.+0.j 0.+0.j 0.+0.j]
B. [0.+0.j 0.+2.j 0.+0.j 0.-2.j]
C. [0.+0.j 2.+0.j 0.+0.j 2.+0.j]
D. [0.+0.j 1.-1.j 0.+0.j 1.+1.j]
Solution
Step 1: Compute FFT of the signal [1, 0, -1, 0]
The FFT of this 4-point signal results in complex values representing frequency components.
Step 2: Calculate or recall FFT output
The FFT output is [0.+0.j, 0.+2.j, 0.+0.j, 0.-2.j] after rounding to 2 decimals.
Final Answer:
[0.+0.j 0.+2.j 0.+0.j 0.-2.j] -> Option B
Quick Check:
FFT of [1,0,-1,0] = [0, 2j, 0, -2j] [OK]
Hint: FFT output shows complex frequency components [OK]
Common Mistakes:
Ignoring imaginary parts in FFT output
Mixing up real and imaginary values
Assuming FFT output is all real numbers
4. The following code attempts to compute the Fourier Transform but gives an error:
import numpy as np
signal = [1, 2, 3, 4]
ft = np.fft.fft(signal, n='4')
print(ft)
What is the error and how to fix it?
medium
A. Error: print statement syntax wrong, fix by adding parentheses
B. Error: signal must be a NumPy array, fix by converting signal to np.array
C. Error: np.fft.fft does not accept 'n' parameter, remove it
D. Error: 'n' must be an integer, fix by removing quotes: n=4
Solution
Step 1: Identify the error cause
The parameter n expects an integer, but a string '4' is given causing a type error.
Step 2: Fix the error
Remove quotes around 4 to pass an integer: n=4.
Final Answer:
Error: 'n' must be an integer, fix by removing quotes: n=4 -> Option D
Quick Check:
Parameter types must match function signature [OK]
Hint: Pass integer, not string, for numeric parameters [OK]
Common Mistakes:
Passing string instead of integer for 'n'
Not converting list to NumPy array (not error here)
Misreading error as print syntax issue
5. You have a noisy audio signal sampled at 1000 Hz. You want to remove frequencies above 300 Hz using Fourier Transform. Which steps correctly describe this process?
hard
A. Remove frequencies above 300 Hz directly from time signal, then compute FFT
B. Apply inverse FFT first, then remove frequencies above 300 Hz
C. Compute FFT, zero out frequencies above 300 Hz, then apply inverse FFT
D. Compute FFT, keep only frequencies above 300 Hz, then apply inverse FFT
Solution
Step 1: Use FFT to convert time signal to frequency domain
Compute the Fourier Transform to see all frequency components.
Step 2: Filter frequencies above 300 Hz
Set frequency components above 300 Hz to zero to remove noise.
Step 3: Convert back to time domain
Apply inverse FFT to get the cleaned time signal without high frequencies.
Final Answer:
Compute FFT, zero out frequencies above 300 Hz, then apply inverse FFT -> Option C
Quick Check:
Filter in frequency domain, then inverse FFT [OK]
Hint: Filter frequencies in FFT, then inverse transform [OK]
Common Mistakes:
Filtering in time domain instead of frequency domain
Applying inverse FFT before filtering
Keeping unwanted frequencies instead of zeroing them
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.