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
--
|