discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: Symbol timing estimator block and CPM modulations


From: Andy Walls
Subject: Re: Symbol timing estimator block and CPM modulations
Date: Mon, 29 Jun 2020 15:42:55 -0400
User-agent: Evolution 3.32.5 (3.32.5-1.fc30)

On Mon, 2020-06-29 at 14:11 -0500, Alex Roberts wrote:
Copy that. Would a preamble with better properties like a gold code allow to raise that threshold? I guess I need to dig into what that threshold means. On the examples I’ve seen it’s always 0.9 or higher.


You could use a Gold code. Although the length 13 Barker code is probably good too, just to play around with.

Yeah, so the fixed correlation threshold algorithm is somewhat staright forward, but I caused to to have a bit of a wrinkle.

You'll notice in the algorithm, it checks using the square of the correlation's magnitude. That's because long ago, to save CPU cycles, I coded the block to compute the magnitude squared of the correlation and check against that. Taking the square-root of every I^2+Q^2 sample of the correlation output seemed like a waste of CPU to me at the time. I now regret that decision, as it has been a source of confusion for people working with this block, oh well.

The block has undergone a few revisions regarding the thresh holding algorithm, since I last touched it myself. I know that the dynamic algorithm only works with preambles with good correlation properties (gold codes, barker codes).

The non-adaptive algorithm is sensitive to the incoming signal level compared to the reference level of the correlation filter taps. In hindsight, I probably should have had my correlation filter taps script normalize h_iq to some nominal gain value.

Anyway, I highly recommend you do test correlation runs in Matlab/Octave first, duplicating the corr_est block's thresh hold crossing detection algorithm, before jumping into a GNURadio implementation. The analysis in Matlab/Octave will much better inform you on how your GNURadio parameters should be set.

Regards,
Andy


On Monday, June 29, 2020, Andy Walls <andy@silverblocksystems.net> wrote:
On Sun, 2020-06-28 at 16:31 -0500, Alex Roberts wrote:
> Andy,
>
> I had a copy of an old flowgraph that you posted on the mailing list
> a long while back (
> https://lists.gnu.org/archive/html/discuss-gnuradio/2016-03/msg00735.html
> ). This is what initially confused me on what to pass in as gmsk
> symbols to corr_est block as it has strictly real values.
>
> I modified it to mux in the preamble that's in the octave code with a
> random source. I also modified the octave code to match the samples
> per symbol of the flowgraph (10) and generated the modulated symbols
> for the corr_est block. The corr_est block does indeed
> perform conjugation and reversal of the symbols, so I used the "h_iq"
> value from the octave code as the modulated symbols since it has not
> been conjugated or reversed. I'm not getting corr_est tags.

On that flowgraph, set your threshold on the corr_est block to 0.23.

BTW, that preamble has horrible correlation properties.


> Thanks,Alex.

-Andy



reply via email to

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