Skip to content

Commit 0aaf8db

Browse files
committed
Skip DC Component(1st value)
1 parent 8cf5ee4 commit 0aaf8db

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

ffteeg.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,26 +81,27 @@ def compute_fft(self, channel, time_data):
8181
signal_chunk = np.array(time_data[-FFT_WINDOW_SIZE:], dtype=np.float64)
8282
windowed_signal = signal_chunk * self.fft_window
8383
fft_result = np.fft.rfft(windowed_signal)
84-
fft_magnitude = np.abs(fft_result) * (2.0 / self.window_correction)
84+
fft_magnitude = np.abs(fft_result[1:]) * (2.0 / self.window_correction) # Skip first value
85+
adjusted_freqs = self.freqs[1:] # Skip DC frequency (0 Hz)
8586

8687
# DEBUG: Print detected peak frequency
8788
if channel == 0:
8889
start_idx = int(2.0 * len(fft_magnitude) / (self.sampling_rate / 2))
8990
sorted_indices = np.argsort(fft_magnitude[start_idx:])[::-1] + start_idx
9091
peak1_idx = sorted_indices[0]
91-
peak1_freq = self.freqs[peak1_idx]
92+
peak1_freq = adjusted_freqs[peak1_idx]
9293
print(f"Peak Frequency: {peak1_freq:.2f} Hz")
9394

9495
# Update smoothing buffer
9596
self.smoothing_buffers[channel].append(fft_magnitude)
9697

9798
# Return smoothed FFT
9899
smoothed_fft = np.mean(self.smoothing_buffers[channel], axis=0) if self.smoothing_buffers[channel] else fft_magnitude
99-
return self.freqs, smoothed_fft
100+
return adjusted_freqs, smoothed_fft
100101

101102
def calculate_band_power(self, fft_magnitudes, freq_range):
102103
low, high = freq_range
103-
mask = (self.freqs >= low) & (self.freqs <= high)
104+
mask = (self.freqs[1:] >= low) & (self.freqs[1:] <= high)
104105
return np.sum(fft_magnitudes[mask] ** 2) # Total power in band
105106

106107
def compute_band_powers(self, channel, time_data):

0 commit comments

Comments
 (0)