discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Correlation Estimator block threshold settings in Absolute/Dynamic m


From: Nick Foster
Subject: Re: Correlation Estimator block threshold settings in Absolute/Dynamic mode
Date: Wed, 1 Apr 2020 10:33:43 -0700

The magnitude of the correlation depends on the magnitude of your signal. The AGC normalizes the signal amplitude before the correlator, so you see expected behavior. The correlation estimator block expects the input to have a normalized amplitude.

Nick

On Wed, Apr 1, 2020 at 8:58 AM Fabian Missbrenner <address@hidden> wrote:
Hi everyone,

I am currently developing a wireless transceiver and try to get the
transmission detection running at the receiving end. To help with
detection and synchronization, a known word is prepended to every
message. I now want to use the Correlation Estimator block to detect
the presence of the known word on a noisy, bursty channel. The block
computes the (magnitude squared of the) correlation of the incoming
stream of complex baseband samples with the known word:
https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/corr_est_cc_impl.cc#L219

Attached you can find the Flowgraph I am using for testing purposes.

With Threshold Method set to Absolute, once the correlation exceeds a
user-defineable share of the auto-correlation peak of the known word
(Threshold parameter: between 0 and 1),
https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/corr_est_cc_impl.cc#L178,
the known word is considered detected and a tag is added to the stream.

Unfortunately, the block does not quite behave like expected. The
threshold needs be set to a value that is off by a factor of 1000 in
my case:
cf. PDF attachment, slide 1.
With a Threshold of 0.8/1000=800u, detection works reliably. But I
don't understand where this factor of 1000 comes from.

When using an AGC3 block before the Correlation Estimator (yes, I made
sure to correlate against the normalized known word now), there is no
correction by factor 1000 necessary anymore:
cf. PDF attachment, slide 2.
Here, with a threshold of 0.5, detection works reliably.

With the Dynamic mode, the semantic of the Threshold parameter
changes: Now it means a probability of false alarm:
https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/corr_est_cc_impl.cc#L175.
Unfortunately, regardless of configuring a Threshold close to 0 or
close to 1, there are many false-positive detections:
cf. PDF attachment, slides 3 and 4.

I'm not quite sure if I am missing some important point about using
the block or if the described oddities are bugs. Maybe you can help me
out? I also saw a discussion about this block in a Github issue
mentioning its lack of documentation:
https://github.com/gnuradio/gnuradio/issues/1207#issuecomment-279573149

Best regards
Fabian Missbrenner

reply via email to

[Prev in Thread] Current Thread [Next in Thread]