Skip to content

Commit

Permalink
Merge pull request #60 from sintel-dev/frequency_primitive
Browse files Browse the repository at this point in the history
Frequency primitive
  • Loading branch information
SaraPido committed Apr 24, 2024
2 parents 4bc35a1 + 08feb28 commit cc10769
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 2 deletions.
7 changes: 7 additions & 0 deletions sigpro/basic_primitives.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ def __init__(self):
super().__init__("sigpro.transformations.frequency.fft.fft")


class FFTFreq(primitive.FrequencyTransformation):
"""FFT Freq primitive class."""

def __init__(self):
super().__init__("sigpro.transformations.frequency.fftfreq.fft_freq")


class FFTReal(primitive.FrequencyTransformation):
"""FFTReal primitive class."""

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "sigpro.transformations.frequency.fftfreq.fft_freq",
"primitive": "sigpro.transformations.frequency.fftfreq.fft_freq",
"classifiers": {
"type": "transformation",
"subtype": "frequency"
},
"produce": {
"args": [
{
"name": "amplitude_values",
"type": "numpy.ndarray"
},
{
"name": "sampling_frequency",
"type": "float"
}
],
"output": [
{
"name": "amplitude_values",
"type": "numpy.ndarray"
},
{
"name": "frequency_values",
"type": "numpy.ndarray"
}
]
}
}
21 changes: 21 additions & 0 deletions sigpro/transformations/frequency/fftfreq.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""SigPro Transformations Frequency module."""

import numpy as np


def fft_freq(amplitude_values, sampling_frequency):
"""Compute the Frequency having FFT values.
Args:
amplitude_values (np.ndarray):
A numpy array with the fft values.
sampling_frequency (int or float):
Sampling frequency value passed in Hz.
Returns:
tuple:
* `amplitude_values (numpy.ndarray)`
* `frequency_values (numpy.ndarray)`
"""
frequency_values = np.fft.fftfreq(len(amplitude_values), 1 / sampling_frequency)

return np.array(amplitude_values), np.array(frequency_values)
4 changes: 2 additions & 2 deletions tests/unit/transformations/frequency_time/test_stft.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def test_stft():
expected_time_values_len = 3
value = amplitude_values[0][0]

assert type(value) == np.complex128
assert isinstance(value, np.complex128)
assert len(amplitude_values) == expected_amplitude_values_len
assert len(frequency_values) == expected_frequency_values_len
assert len(time_values) == expected_time_values_len
Expand All @@ -39,7 +39,7 @@ def test_stft_real():
expected_time_values_len = 3
value = amplitude_values[0][0]

assert type(value) == np.float64
assert isinstance(value, np.float64)
assert len(amplitude_values) == expected_amplitude_values_len
assert len(frequency_values) == expected_frequency_values_len
assert len(time_values) == expected_time_values_len

0 comments on commit cc10769

Please sign in to comment.