other changes
This commit is contained in:
62
testy/domfreq.py
Normal file
62
testy/domfreq.py
Normal file
@ -0,0 +1,62 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from scipy.fft import fft
|
||||
|
||||
# Define the sampling frequency and time vector
|
||||
fs = 500 # Sampling frequency
|
||||
t = np.arange(0, 1, 1/fs) # Time vector
|
||||
|
||||
# Define the frequencies
|
||||
f1 = 5 # Frequency that occurs most often but with lower amplitude
|
||||
f2 = 20 # Frequency with the highest amplitude
|
||||
|
||||
# Creating the individual signals
|
||||
signal_f1 = 0.5 * np.sin(2 * np.pi * f1 * t) # Signal with frequency f1
|
||||
signal_f2 = 2 * np.sin(2 * np.pi * f2 * t) # Signal with frequency f2
|
||||
|
||||
# Composite signal
|
||||
signal = signal_f1 + signal_f2
|
||||
|
||||
# Performing a Fourier Transform
|
||||
freq = np.fft.fftfreq(len(t), 1/fs)
|
||||
fft_values = fft(signal)
|
||||
|
||||
# Plotting all the signals and the frequency spectrum
|
||||
plt.figure(figsize=(14, 10))
|
||||
|
||||
# Plot 1: Composite Signal
|
||||
plt.subplot(4, 1, 1)
|
||||
plt.plot(t, signal)
|
||||
plt.title('Composite Signal (f1 + f2)')
|
||||
plt.xlabel('Time [s]')
|
||||
plt.ylabel('Amplitude')
|
||||
|
||||
# Plot 2: Frequency f1 Signal
|
||||
plt.subplot(4, 1, 2)
|
||||
plt.plot(t, signal_f1)
|
||||
plt.title('Individual Frequency f1 Signal')
|
||||
plt.xlabel('Time [s]')
|
||||
plt.ylabel('Amplitude')
|
||||
|
||||
# Plot 3: Frequency f2 Signal
|
||||
plt.subplot(4, 1, 3)
|
||||
plt.plot(t, signal_f2)
|
||||
plt.title('Individual Frequency f2 Signal')
|
||||
plt.xlabel('Time [s]')
|
||||
plt.ylabel('Amplitude')
|
||||
|
||||
# Plot 4: Frequency Spectrum
|
||||
plt.subplot(4, 1, 4)
|
||||
plt.plot(freq, np.abs(fft_values))
|
||||
plt.title('Frequency Spectrum of Composite Signal')
|
||||
plt.xlabel('Frequency [Hz]')
|
||||
plt.ylabel('Amplitude')
|
||||
plt.xlim([0, 30])
|
||||
|
||||
# Highlighting the dominant frequencies in the spectrum
|
||||
plt.axvline(x=f1, color='green', linestyle='--', label='Frequency f1')
|
||||
plt.axvline(x=f2, color='red', linestyle='--', label='Frequency f2')
|
||||
|
||||
plt.legend()
|
||||
plt.tight_layout()
|
||||
plt.show()
|
||||
Reference in New Issue
Block a user