Added scope fft snippet
Used to compare the fft of signals taken from the DSOX2024A oscope
This commit is contained in:
parent
02512129e2
commit
8ebc6a36bc
45
scope_fft/scope_fft.py
Normal file
45
scope_fft/scope_fft.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import numpy as np
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
def sig_fft(file1, file2):
|
||||||
|
# Load data from CSV files
|
||||||
|
data = np.genfromtxt(file1, delimiter=',')[2:]
|
||||||
|
data2 = np.genfromtxt(file2, delimiter=',')[2:]
|
||||||
|
|
||||||
|
# find where data is nan
|
||||||
|
n_index = np.argmax(np.isnan(data[:,1]))
|
||||||
|
n_index2 = np.argmax(np.isnan(data2[:,1]))
|
||||||
|
# Define each column
|
||||||
|
time = data[:n_index, 0]
|
||||||
|
rx_signal = data[:n_index, 1]
|
||||||
|
tx_signal = data[:n_index, 2]
|
||||||
|
num_samples = time.size
|
||||||
|
fs1 = 1 / (time[1] - time[0]) # Set sampling frequency
|
||||||
|
|
||||||
|
# Define each column for data 2
|
||||||
|
time2 = data2[:n_index2, 0]
|
||||||
|
rx_signal2 = data2[:n_index2, 1]
|
||||||
|
tx_signal2 = data2[:n_index2, 2]
|
||||||
|
num_samples2 = time2.size
|
||||||
|
fs2 = 1 / (time2[1] - time2[0]) # Set sampling frequency
|
||||||
|
# Plot raw data
|
||||||
|
plt.figure(1)
|
||||||
|
plt.plot(time, rx_signal, label='Data 1')
|
||||||
|
plt.plot(time2, rx_signal2, label='Data 2')
|
||||||
|
plt.title('Unfiltered Data')
|
||||||
|
plt.legend()
|
||||||
|
|
||||||
|
# fft for data 1
|
||||||
|
sigfft = np.fft.fft(rx_signal)
|
||||||
|
freq = np.fft.fftfreq(rx_signal.shape[-1], 1/(fs1))
|
||||||
|
# fft for data 2
|
||||||
|
sigfft2 = np.fft.fft(rx_signal2)
|
||||||
|
freq2 = np.fft.fftfreq(rx_signal2.shape[-1], 1/(fs2))
|
||||||
|
# plot fft
|
||||||
|
plt.figure(2)
|
||||||
|
plt.plot(freq, np.abs(sigfft), label='Data 1')
|
||||||
|
plt.plot(freq2, np.abs(sigfft2), label='Data 2')
|
||||||
|
plt.title('FFT of Data')
|
||||||
|
plt.xlim(0, 20000)
|
||||||
|
|
||||||
|
plt.show()
|
Loading…
Reference in New Issue
Block a user