Skip to content

Commit ba65f10

Browse files
authored
Add fft frequency transformation (#62)
* add fft frequency transformation for data where the sampling rate must be at least twice the signal bandwidth * add fft frequency transformation for data where the sampling rate isnt at least twice the signal bandwidth * fft frequency transofrmation * fft freq unit test * fft freq unit test * fix lint * fix lint
1 parent 6ce0f8d commit ba65f10

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

sigpro/transformations/frequency/fftfreq.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def fft_freq(amplitude_values, sampling_frequency):
1616
* `amplitude_values (numpy.ndarray)`
1717
* `frequency_values (numpy.ndarray)`
1818
"""
19-
frequency_values = np.fft.fftfreq(len(amplitude_values), 1 / sampling_frequency)
19+
# frequency_values = np.fft.fftfreq(len(amplitude_values), 1 / sampling_frequency)
20+
frequency_values = np.arange(0, len(amplitude_values)) * sampling_frequency
2021

2122
return np.array(amplitude_values), np.array(frequency_values)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""Tests for sigpro.transformations.frequency module."""
2+
import numpy as np
3+
4+
from sigpro.transformations.frequency.fftfreq import fft_freq
5+
6+
7+
def test_fft_freq():
8+
# setup
9+
amplitude_values = [1.5, -0.5, 2.0, 0.5, -1.0]
10+
sampling_frequency = 2
11+
12+
# run
13+
amplitude_result, frequency_result = fft_freq(amplitude_values, sampling_frequency)
14+
15+
# assert
16+
expected_amplitude_values = np.array([1.5, -0.5, 2.0, 0.5, -1.0])
17+
expected_frequency_values = np.array([0., 2., 4., 6., 8.])
18+
np.testing.assert_array_almost_equal(amplitude_result, expected_amplitude_values)
19+
np.testing.assert_array_almost_equal(frequency_result, expected_frequency_values)

0 commit comments

Comments
 (0)