Return to KLUBNL.PL main page

rsgb_lf_group
[Top] [All Lists]

Re: LF: More EbNaut 137.777

To: [email protected]
Subject: Re: LF: More EbNaut 137.777
From: Paul Nicholson <[email protected]>
Date: Sun, 29 Nov 2015 21:01:50 +0000
In-reply-to: <[email protected]>
References: <[email protected]> <CAA8k23Rrxfi8PRg4hy7XPh0X2wA39oqsy91=YR-MepHqCzAV7w@mail.gmail.com> <[email protected]> <[email protected]>
Reply-to: [email protected]
Sender: [email protected]
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2
Edgar wrote:

> Which software did you use for the cross-correlation?

I use

 http://abelian.org/vlfrx-tools

for everything.   The program vtcmp has an option for
cross-correlation, you just give it a 2-channel input.

For anyone interested, details follow...

I have the LF band 135-139kHz mixed down to 0-4kHz at 8k/S
sample rate and recorded continuously with

    vtwrite -G86400 /raw

That puts VO1NA 137.777 kHz at 2777 Hz in /raw.  The signal
given to vtwrite has been through vttime so the timestamps
and sample rate are exact.

Then to extract the 00:00 message which is exactly 1312 seconds
long, I do

 vtread -T2015-11-29_00:00,+1312 /raw |  # Extract 1312 seconds
    vtfilter -h bp,f=2777,w=2 |          # BP filter 2Hz wide
    vtmult -f 2777 |                     # Mix to I/Q, LO=2777 Hz
    vtresample -r 1000 > rxed.vt         # Resample to 1k/sec

That puts the baseband I/Q signal into rxed.vt.  Timestamps
are preserved through all these processing stages.

I can decode the message with

 vtraw -oa < rxed.vt |    # Convert to 3 column ASCII
    ebnaut -d -p 8K19A -r1000 -S2 -PS -L10000 -N8 -c4

and I see that ebnaut finds a reference phase of 45 degrees and
finds the message at phase 180.   I need to rotate the signal
phase by 45 degrees to get VO1NA into the I channel only, and
by another 180 degrees to get the correct polarity.

To do this, I re-extract it this time with a phase shift using
vtmix,

 vtread -T2015-11-29_00:00,+1312 /raw |
    vtfilter -h bp,f=2777,w=2 |
    vtmix -c 1/225 |             # Gain = 1.0, phase shift = +225
    vtmult -f 2777 |
    vtresample -r 1000 > rxed.vt

rxed.vt has two channels, ch1 = I and ch2 = Q.  All the signal
should now be in channel 1.

The message was 'TNX PAUL' so I encode that and convert the ASCII
output of ebnaut -e into a 'vt' stream with the same timestamp
as the rxed signal,

 echo 'TNX PAUL' |
    ebnaut -e -r1000 -S2 -p8K19A -N8 |
    vtdata -c1 -r1000 -T2015-11-29_00:00 > ref.vt

ref.vt has one channel with the encoded message modulated at DC
and the same timestamps as rxed.vt.

Now I can just join these two files, selecting only ch1 from
rxed.vt, and pipe the resulting pair into vtcmp to do
the cross-correlation,

 vtjoin ref.vt rxed.vt:1 - | vtcmp -m cor -w 20 > cmp.dat

cmp.dat is a 2-column ASCII file: time offset and amplitude,
and this I plot with gnuplot.

--
Paul Nicholson
--

<Prev in Thread] Current Thread [Next in Thread>