Skip to content

Commit 9887599

Browse files
committed
use adaptive frequency response as reference for relative residual distortion outputs
1 parent e0442b2 commit 9887599

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/CLMeasurements/ResidualDistortion.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from CLAnalysis import chirp_time_to_freq, freq_points, interpolate, FS_to_unit, fftconv, max_in_intervals
33
from CLGui import CLParamNum, CLParamDropdown, FreqPointsParams
44
import numpy as np
5-
from CLMeasurements import CLMeasurement
5+
from CLMeasurements import CLMeasurement, FrequencyResponse
66
import pandas as pd
77
from scipy.fftpack import fft, ifft
88
from scipy.signal.windows import hann
@@ -163,8 +163,13 @@ def convert_output_units(fs_points, ref_points=None):
163163
# if necessary, calculate moving RMS of raw response signal
164164
if self.params['mode'] != 'crestfactor':
165165
if self.params['output']['unit'] in ['dB', '%', '% (IEC method)']: # if peak or rms modes and output is a relative unit
166-
ref_points = np.sqrt(pd.DataFrame(clp.signals['response']*clp.signals['response']).rolling(rms_samples, center=True, min_periods=1).mean())
167-
ref_points = interpolate(response_freqs, np.array(ref_points)[:,0], self.out_freqs)
166+
ref_fr = FrequencyResponse('fr')
167+
ref_fr.params['output'] = self.params['output'].copy()
168+
ref_fr.params['output']['unit'] = 'FS'
169+
ref_fr.params['output']['min_auto'] = False # shouldn't actually have any impact, but set in case of future updates
170+
ref_fr.params['output']['max_auto'] = False
171+
ref_fr.measure()
172+
ref_points = ref_fr.out_points
168173
else:
169174
ref_points = None
170175

0 commit comments

Comments
 (0)