new fft
This commit is contained in:
@ -14,6 +14,7 @@ from rfg_adc_plotter.processing.calibration import (
|
||||
save_calib_envelope,
|
||||
)
|
||||
from rfg_adc_plotter.processing.fft import (
|
||||
build_positive_only_centered_ifft_spectrum,
|
||||
build_symmetric_ifft_spectrum,
|
||||
compute_distance_axis,
|
||||
compute_fft_mag_row,
|
||||
@ -127,6 +128,19 @@ class ProcessingTests(unittest.TestCase):
|
||||
self.assertTrue(np.allclose(spectrum[zero_mask], 0.0))
|
||||
self.assertTrue(np.allclose(spectrum[neg_idx], spectrum[pos_idx][::-1]))
|
||||
|
||||
def test_positive_only_centered_spectrum_keeps_zeros_until_positive_min(self):
|
||||
sweep = np.linspace(1.0, 2.0, 128, dtype=np.float32)
|
||||
freqs = np.linspace(SWEEP_FREQ_MIN_GHZ, SWEEP_FREQ_MAX_GHZ, 128, dtype=np.float64)
|
||||
spectrum = build_positive_only_centered_ifft_spectrum(sweep, freqs, fft_len=FFT_LEN)
|
||||
|
||||
self.assertIsNotNone(spectrum)
|
||||
freq_axis = np.linspace(-SWEEP_FREQ_MAX_GHZ, SWEEP_FREQ_MAX_GHZ, FFT_LEN, dtype=np.float64)
|
||||
zero_mask = freq_axis < SWEEP_FREQ_MIN_GHZ
|
||||
pos_idx = np.flatnonzero(freq_axis >= SWEEP_FREQ_MIN_GHZ)
|
||||
|
||||
self.assertTrue(np.allclose(spectrum[zero_mask], 0.0))
|
||||
self.assertTrue(np.any(np.abs(spectrum[pos_idx]) > 0.0))
|
||||
|
||||
def test_peak_helpers_find_reference_and_peak_boxes(self):
|
||||
xs = np.linspace(0.0, 10.0, 200)
|
||||
ys = np.exp(-((xs - 5.0) ** 2) / 0.4) * 10.0 + 1.0
|
||||
|
||||
Reference in New Issue
Block a user