aboutsummaryrefslogtreecommitdiffstats
path: root/src/dab_util.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/dab_util.py')
-rw-r--r--src/dab_util.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/dab_util.py b/src/dab_util.py
index 3187036..e33ea05 100644
--- a/src/dab_util.py
+++ b/src/dab_util.py
@@ -77,6 +77,34 @@ def lag_upsampling(sig_orig, sig_rec, n_up):
l_orig = float(l) / n_up
return l_orig
+def subsample_align_upsampling(sig1, sig2, n_up=32):
+ """
+ Returns an aligned version of sig1 and sig2 by cropping and subsample alignment
+ Using upsampling
+ """
+ assert(sig1.shape[0] == sig2.shape[0])
+
+ if sig1.shape[0] % 2 == 1:
+ sig1 = sig1[:-1]
+ sig2 = sig2[:-1]
+
+ sig1_up = signal.resample(sig1, sig1.shape[0] * n_up)
+ sig2_up = signal.resample(sig2, sig2.shape[0] * n_up)
+
+ off_meas = lag_upsampling(sig2_up, sig1_up, n_up=1)
+ off = int(abs(off_meas))
+
+ if off_meas > 0:
+ sig1_up = sig1_up[:-off]
+ sig2_up = sig2_up[off:]
+ elif off_meas < 0:
+ sig1_up = sig1_up[off:]
+ sig2_up = sig2_up[:-off]
+
+ sig1 = signal.resample(sig1_up, sig1_up.shape[0] / n_up).astype(np.complex64)
+ sig2 = signal.resample(sig2_up, sig2_up.shape[0] / n_up).astype(np.complex64)
+ return sig1, sig2
+
def subsample_align(sig1, sig2):
"""
Returns an aligned version of sig1 and sig2 by cropping and subsample alignment