I somehow attached the wrong correlation screenshot in my previous post.
Here is the correct one.

Rich

On Mon, Apr 27, 2015 at 4:35 PM, Richard Bell <richard.be...@gmail.com>
wrote:

> Andy and all,
>
> Sorry for the delay in reply, I've been working hard to figure things out
> on my end.
>
> I use the polyphase clock recovery block for timing recovery.
>
> I have essentially copied the test_corr_est.grc example that was included
> with the block in the examples directory. It seems that this might not be
> the appropriate way to use this block. Here is why I say this. If you look
> at the attached screenshot, you will see the correlation output has two
> peaks, somewhat close in amplitude to each other. The synchronization
> sequence that was used to generate those peaks was 64 bits long and
> composed of two 32 bit long PN sequences repeated. Therefore, one would
> expect the output of the correlation to generate 3 peaks, a center peak
> that is ~64 units high, and two side peaks spaced 32 samples apart that are
> ~32 units high.
>
> Now, I believe the cause of this to be the use of the modulate vector
> block to generate the input mask for the correlation estimation block. I
> have attached a second screenshot of the output of the modulation vector
> block. You will see in this screen shot a large transient portion that is
> fed into the correlation estimation block. So, if we agree we should not
> use the modulate vector block to feed the correlation estimation block with
> its mask, then the question is how should I? An example what be most
> helpful.
>
> This is difficult to discuss because things get wordy very quickly. Let me
> know if I can make anything more clear.
>
> v/r,
> Rich
>
> On Fri, Apr 24, 2015 at 9:11 AM, Andy Walls <a...@silverblocksystems.net>
> wrote:
>
>> Hi Richard,
>>
>> >                              From:
>> > Richard Bell
>> >                           Subject:
>> > Re: [Discuss-gnuradio] Correlation
>> > Estimation Block Oddity
>> >                              Date:
>> > Thu, 23 Apr 2015 15:38:38 -0700
>> >
>> > ______________________________________________________________________
>> > I have another question on tag placement for the correlation
>> > estimation block. In the screenshot I've attached, you'll see that the
>> > corr_start tag is placed well before the preamble actually starts.
>>
>> OK.  That's the first thing you should try to fix.  You are crossing the
>> correlation threshold too early.
>>
>> Either
>>
>> a. Get rid of leading 0's in the correlation sequence that you are
>> using,
>> b. Set the threshold on the corr_est block to something higher than the
>> default 0.9 (90%), or
>> c. make the correlation sequence "more unique" somehow, e.g. make it
>> longer.
>>
>> As I mentioned in my previous email, the "corr_start" tags is placed at
>> the length of your matched filter samples before where the correlation
>> peak was detected.
>>
>> You can eyeball how the correlation is going by plotting the Magnitude^2
>> of the "corr" output on top of the output signal (use a tag_gate block
>> to block the tags coming out of the "corr" output).  The output signal
>> is delayed by the length of the matched filter, so you can see the
>> correlation peak and the "corr_start" tag line up.
>>
>> See the attached screen shot of an AIS preamble and the scaled magnitude
>> squared of the correlator output.
>>
>>
>> >  If I use the 'delay tag' field to move it to the end of the preamble
>> > where I need it, it stops delaying, no matter how big I make the
>> > delay,
>>
>> Yup, the code forces a maximum delay.  You can delay it to the end of
>> your matched filter and no further:
>>
>> https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/corr_est_cc_impl.cc#L65
>>
>> The code does this because GnuRadio will not let us tag samples outside
>> of the window of samples passed to the current call to work.  By setting
>> the bound of the marking delay to the start and end of the matched
>> filter, with other mechanisms in the block, we are guaranteed to be able
>> to mark the sample.
>>
>> >  before it reaches the end of the preamble.
>>
>> Well as far as the block is concerned, you are able to mark to the end
>> of the matched filter where the correlation peak occurred (but no
>> further), which should be the end of your preamble.  Your problem is
>> that the block declared a correlation too early.
>>
>>
>> >  This is shown in the picture. I need this tag to denote the start of
>> > the header for the Header Payload Demux block.
>>
>> Out of curiosity, what's doing timing recovery, i.e. finding the optimal
>> bit sampling times?  I use the tagging delay out of the corr_est block
>> to mark the center of the first bit in the preamble, to tell downstream
>> bit timing recovery blocks to reset/realign at that point.
>>
>> Regards,
>> Andy
>>
>> >
>> > My question is, given the situation in the screenshot, is there a way
>> > I can delay just the tag in grc using a block? I'm not sure how to get
>> > the tag positioned where I need it at this point.
>> >
>> >
>> > Help is greatly appreciated
>> >
>> >
>> > v/r,
>> >
>> > Rich
>> >
>> >
>> >
>>
>>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to