[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 01/08: Replacing center of mass interpolati
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 01/08: Replacing center of mass interpolation for the time_est tag with parabolic interpolation. It should be more accurate although still is a biased estimate of the time delay |
Date: |
Wed, 5 Aug 2015 20:50:46 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
jcorgan pushed a commit to branch master
in repository gnuradio.
commit 8d336d2346c4933a124101af36ed88fc0f0ca58d
Author: Paul Garver <address@hidden>
Date: Tue Jul 21 17:41:02 2015 -0400
Replacing center of mass interpolation for the time_est tag with parabolic
interpolation. It should be more accurate although still is a biased estimate
of the time delay
---
gr-digital/lib/corr_est_cc_impl.cc | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/gr-digital/lib/corr_est_cc_impl.cc
b/gr-digital/lib/corr_est_cc_impl.cc
index 66645f6..772fc78 100644
--- a/gr-digital/lib/corr_est_cc_impl.cc
+++ b/gr-digital/lib/corr_est_cc_impl.cc
@@ -262,17 +262,18 @@ namespace gr {
add_item_tag(0, nitems_written(0) + i, pmt::intern("corr_start"),
pmt::from_double(d_corr_mag[i]), d_src_id);
- // Peak detector using a "center of mass" approach center
- // holds the +/- fraction of a sample index from the found
- // peak index to the estimated actual peak index.
+ // Use Parabolic interpolation to estimate a fractional
+ // sample delay. There are more accurate methods as
+ // the sample delay estimate using this method is biased.
+ // But this method is simple and fast.
+ // center between [-0.5,0.5] units of samples
+ // Paper Reference: "Discrete Time Techniques for Time Delay
+ // Estimation" G. Jacovitti and G. Scarano
double center = 0.0;
- if (i > 0 && i < (noutput_items - 1)) {
- double nom = 0, den = 0;
- for(int s = 0; s < 3; s++) {
- nom += (s+1)*d_corr_mag[i+s-1];
- den += d_corr_mag[i+s-1];
- }
- center = nom / den - 2.0;
+ if( i > 0 && i < (noutput_items - 1 )){
+ double nom = d_corr_mag[i-1]-d_corr_mag[i+1];
+ double denom = 2*(d_corr_mag[i-1]-2*d_corr_mag[i]+d_corr_mag[i+1]);
+ center = nom/denom;
}
// Calculate the phase offset of the incoming signal.
- [Commit-gnuradio] [gnuradio] branch master updated (6cf003d -> 81f632c), git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 01/08: Replacing center of mass interpolation for the time_est tag with parabolic interpolation. It should be more accurate although still is a biased estimate of the time delay,
git <=
- [Commit-gnuradio] [gnuradio] 03/08: Merge branch 'maint', git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 04/08: Merge remote-tracking branch 'garverp/corr_est_parabolicinterp', git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 02/08: fec: Adding doxygen comments to new dummy encoder params., git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 08/08: Merge remote-tracking branch 'tom/examples/qtgui_niceties', git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 05/08: apps: removed title and legend from uhd_fft for more viewing space., git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 07/08: Merge remote-tracking branch 'tom/fec/dummy_enc_docs', git, 2015/08/05
- [Commit-gnuradio] [gnuradio] 06/08: examples: removed extra titles or legends from QTGUI blocks in examples., git, 2015/08/05