Return to KLUBNL.PL main page

rsgb_lf_group
[Top] [All Lists]

Re: VLF: SpecLab GPS-phaselock with faster PSK

To: [email protected], [email protected]
Subject: Re: VLF: SpecLab GPS-phaselock with faster PSK
From: Markus Vester <[email protected]>
Date: Sun, 18 Dec 2016 10:46:03 -0500
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mx.aol.com; s=20150623; t=1482075965; bh=CtqHT53uIL7+tZ7bRrC4PfFjIqyfShUwcxd4sOe8nvM=; h=From:To:Subject:Message-Id:Date:MIME-Version:Content-Type; b=kv3Z3gTKykvAe7sEJcxa+A4f7f6fSwjFWIDPAZIF9EtxnDd5VL5JxZxf5j/uCuFLR n8LRWD11YP9fpFoR9LXlxcyx3WVy7iUMjM9RBMeU3Aa+lok1jF4qXFamDWirq32vJn /dvp07/D422XV0WO2KsI0pQvpPPtKRv5UWkwDGGw=
In-reply-to: <[email protected]>
Reply-to: [email protected]
Sender: [email protected]
In the meantime, I have changed the PLL setup again. Now it can only do hard-keying, but this works down to 1s symbols which is the shortest selectable periodic actions interval. I have swapped the functions of the L and R channel: The auxiliary carrier is now generated by the AM modulator in the R1-R2 Blackbox, converted to the final frequency in R3, and PSK-modulated in R4-R5 (bb[3].delayline.bypass_factor). The PSK is undone again in the feedback path in the L1-L2 blackbox, so that the phase comparator sees a constant colour and does not have to react to the modulation. There is a small delay to compensate for DAC and ADC latencies (500 ms, "timer.expired" in conditional actions).
One possible pitfall is that the AM modulator carrier level needs to be set to 0.00002, due to a bug in the scaling from +-32768 to +-1. The entry field does not have enough digits to show this small number, but the full precision is used and saved in the ini. Best to check the level using one of the little scopes at R2 or R3.

Here I am using SpecLab v2.92b01 which seems to work fine. The interpreter commands for the delaylines were introduced sometime around December 2015 so older versions won't work.

Like before, the frequency is still defined by the middle one of the three testsignal generators, no other changes are necessary. Don't worry about the USB mixer block, it can downconvert as well (e.g. from 2000 to 1495 Hz for an SSB transmitter).

I've also changed the format of "pskln.txt" to one line per symbol ("Save Rows" in ebnaut-tx). For my own transmissions, I've added a final line to set a=0.5 which turns the carrier off.

http://df6nm.bplaced.net/VLF/fec_tests/vlf_tx_pll_fasterpsk.zip (14 kB)

Best 73,
Markus (DF6NM)


-----Ursprüngliche Mitteilung-----
Von: Markus Vester <[email protected]>
An: rsgb_lf_group <[email protected]>
Verschickt: Di, 29 Nov 2016 1:58 pm
Betreff: VLF: SpecLab GPS-phaselock with faster PSK

The SpecLab GPS-PLL script can overcome soundcard glitches and provide absolute phase of the antenna voltage, but PSK modulation has been limited to slow symbol rates due to the ~ 3 second time constant of the phase swing. It appears that the PLL latency is mainly due to the digimode terminal generating the output signal, which responds to frequency commands from the interpreter script only with some delay. I have now tried to circumvent the lag by using the L3 frequency mixer which can be controlled faster, allowing phase-switching in less than 200 ms.
A couple of tricks were necessary: A constant 2 kHz signal is generated in the L1-L2 blackbox, which is then converted to the desired VLF output frequency. In addition, instantaneous phase switching is implemented by switching the bypass factor in the L4-L5 delay line. Alternatively, the phase can be smoothly ramped by setting a "hardkey" flag to zero.  

For EbNaut transmissions, you will need to use Paul's software and prepare a file "psk.txt" (containing zeroes, ones and spaces, similar to the provided template), and set up start times etc. in scheduled actions. You can also produce a simple 2-second test pattern by activating the second line in periodic actions. As before, the output frequency is defined by the second test signal generator, which provides the GPS-controlled reference.

Hope this may be useful,
Markus (DF6NM) 
...
<Prev in Thread] Current Thread [Next in Thread>