Using CODAR for ionospheric sounding

CODAR is an HF radar used to measure surface ocean currents in coastal areas. Usually, it consists of a chirp which repeats every second. The chirp rate is usually on the order of 10kHz/s, and the signal is gated in small pulses so that the CODAR receiver can listen between pulses. The gating frequency can be on the order of 1kHz.

CODAR can be received by skywave many kilometers inland. Being a chirped signal, it is easy to extract the multipath information from the received signal. In this way, one can see the signal bouncing off the different layers of the ionosphere, and magnificent pictures showing the changes in the ionosphere (especially at dawn and dusk) can be obtained. For instance, see these images by Pieter Ibelings N4IP, or the image at the top of this post, which contains 48 hours worth of CODAR data.

Here I describe my approach to receiving CODAR. It uses GNU Radio for most of the signal processing, and Python with NumPy, SciPy and Matplotlib for plotting.

A brief study of TLE variation

During my research and experiments about using WSJT-X modes through linear transponder satellites, one of the questions I had is by how much do TLEs of different epochs for the same satellite vary. This was glimpsed in part II, where I plotted the “best delay” parameter for TLEs of different age.

The topic of accuracy in TLE computation and propagation is rather complex. A NORAD TLE is the result of an orbit determination after several radar measurements at different epochs, so the elements are in some sense “averaged” over time. Also, the SGP4 propagator is simple and doesn’t model many orbit perturbations. However, NORAD TLEs are specially crafted to give improved results when used with SGP4.

Nevertheless, here I present a simple way of studying the rate of change of NORAD TLEs at different epochs. This procedure might not be very meaningful or sophisticate, but still seems to yield some interesting results.

Tracking an RS41-SGP radiosonde and reporting to APRS

In the past, I’ve talked about the RS92-SGP radiosonde launched from Madrid-Barajas. Recently, Barajas has replaced the RS92-SGP with the newer Vaisala RS41-SGP (except for ozone sounding, which is is still done with the RS92). The new radiosondes transmit at 401MHz and are released daily at 11:15 and 23:15 UTC.

In that post, I described about how to receive the position data from the RS92 and plot it in Viking in real time. Since then, a few features such as FEC decoding have been added to the RS decoder software, so I have decided to give this a go again with the newer RS41. This will be a complete walk through, since some people are interested in setting up unattended decoders, perhaps running on a Raspberry Pi.

Building a feedline HF choke

My current HF antenna is a long wire (around 15 or 20m) connected to an MFJ-993BRT outdoor automatic antenna tuner. The tuner is fed with around 25m of M&P Airborne 10 coaxial cable which runs into the shack. When I installed this antenna, I suffered from high RF currents on the outside of the coax shield when transmitting. These currents go into the shack trying to find a path to earth, since this kind of antenna needs good grounding. Also, while receiving, the coax carried lots of interference into the antenna, especially in the lower bands.

I tried to mitigate this problem by installing a ground rod besides the tuner. This is 2m a copper tube with 50cm buried in the ground. The top of the tube is connected to the tuner ground with a short cable. After installing the ground rod, approximately half of the RF current flowed into the ground rod and the remaining half kept flowing into the shack via the coax shield.

To measure RF current, I have been using a clamp on meter. My design is similar to the design by Ian GM3SEK, but I measure voltage across the output capacitor with a multimeter instead of using a resistor and ammeter coil.

Now I have built and installed a feedline choke following the design of the mid-bands choke by GM3SEK. I use 4 turns of M&P Airborne 5 coax through 3 Fair Rite 2643167851 material 43 cores, wound as an 85mm coil. The finished choke can be seen below.

HF feedline choke

I have measured the performance of the choke using my Hermes-Lite2 beta2 in VNA mode, as I already did with my mains choke. The results are shown below.

The performance seen in these graphs matches the performance measured by GM3SEK in his document. The choke has a resistance of over 1000 ohms on most of the Amateur HF bands, and up to 5000 ohms in the middle bands.

I have installed the choke directly on the input of the tuner. The RF current flowing on the outside of the coax shield has now decreased to around 2% in several cases and 10% in the worst case. The interference received in the lower bands has also decreased noticeably.

Published
Categorised as Hardware Tagged

Waterfall from the FT8 test through FO-29

In the previous post, I detailed my experiments transmitting FT8 through the FO-29 linear transponder. I recorded a complete pass of the FO-29 satellite while I transmitted an FT8 signal trough the transponder on even periods. As I promised in that post, I have now made a waterfall with the recording to show the activity through the linear transponder, and the strength of my FT8 signal in comparison with the SSB and CW signals of other users.

The watefall can be seen below. You can click on the image to view it in full size. A higher resolution version is available here (24MB). The horizontal axis represents frequency and the vertical axis represents time, with the beginning of the pass at the top of the image. The waterfall has been corrected for the downlink Doppler and the DC spike of the FUNcube Dongle Pro+ has been removed.

From left to right, the following signals can be seen: The CW beacon can be seen as a faint vertical signal. Next, there is some interference coming through the transponder in the form of terrestrial FM signals. Then we can see my FT8 signal, being transmitted only on even periods. Finally, around the centre of the image, we have a few SSB and CW signals through the transponder. Note that most of these signals increase in frequency as the pass progresses. This is because many people keep a fixed uplink and only tune the downlink by hand to correct for Doppler. Unfortunately, full computer Doppler correction is not very popular. I also used a fixed uplink frequency for my FT8 signal, but only to simplify the experiment. The best procedure is to correct for the uplink Doppler to keep a constant frequency at the satellite.

Waterfall of FO-29 downlink (Doppler corrected)

We can see that the SSB and CW signals are much stronger than my FT8 signal. Indeed, some of the CW signals are particularly strong at times, perhaps putting too much pressure on the linear transponder.

The waterfalls in this post have been created using this Jupyter notebook.

First FT8 test through FO-29

Continuing with my research on using WSJT-X modes through linear transponder satellites in low Earth orbit (see part I and part II), a few days ago I transmitted and recorded an FT8 signal through the V/U linear transponder on FO-29 during a complete pass. The recording started at 2017/10/23 20:26:00 UTC and ended at 20:42:30 UTC. It was made with a FUNcube Dongle Pro+ set to a centre frequency of 435.850MHz and connected to a handheld Arrow satellite yagi through a duplexer. Here the duplexer was used to avoid desense on transmit.

An FT8 signal was transmitted on every even period during the recording, at a fixed frequency of 145.990MHz, using a Yaesu FT-817ND and the Arrow antenna. The signal was transmitted using lower sideband (i.e., inverted in the frequency domain) to get a correct FT8 signal through the inverting transponder. The transmit power was adjusted often to get a reasonable signal through the transponder and avoid using excessive power. There have been reports and complaints of people using too much power with digital modes through linear satellites. In this post, a study of the power is included to show that it is possible to use digital modes effectively without putting any pressure on the satellite’s transponder.

Out of the 33 even periods, a total of 24 can be decoded by WSJT-X using the best TLEs from Space-Track. No measures were taken to correct for the time offset \(\delta\) that has been studied in the previous posts, as the TLEs already provided a good Doppler correction. Regarding the choice of TLEs, there are still some remarks to make. First, the epoch of the TLEs used was 2017/10/23 21:39:16 UTC, so these TLEs were actually taken after the pass. The previous TLEs were taken a few hours before the pass, and it is likely that they also provided a good correction, perhaps by using a time offset \(\delta\) if necessary. However, I do not know if these previous TLEs were also available from CelesTrak before the start of the pass, as it seems that TLEs take a while to propagate from Space-Track to Celestrack. To explain why the TLEs with no time offset correction are enough, it will be interesting to study the rate of change of TLE parameters for FO-29. This will be done in a future post.

The results of this test look very promising. Even though this wasn’t an overhead pass (the maximum elevation was 40º), the maximum rate of change of the Doppler was over 20Hz/s for the self-Doppler seen on the FT8 signal and 35Hz/s for the downlink Doppler seen on the CW beacon. Most of the periods which couldn’t be decoded were near the start or end of the pass. This is the only test that I know of that has decoded FT8 signals in the presence of high rates of change of Doppler. The previous tests by other people were made at low elevations, where the rate of change of Doppler is small. This test has shown that it is possible to get many decodes with high rates of change of Doppler, even using no corrections to the TLEs. Here I continue with a detailed analysis of the recording.

WSJT-X and linear satellites: part II

This is a follow-up to the part I post about using WSJT-X modes through a linear transponder on a LEO satellite. In part I, we considered the tolerance of several WSJT-X modes to the residual Doppler produced by a temporal offset in the Doppler computation used for computer Doppler correction. There, we introduced a parameter \(\delta\) which represents the time shift between the real Doppler curve and the computed Doppler curve. The main idea was that a decoder could try to correct the residual Doppler by trying several values of \(\delta\) until a decode is produced.

Here we examine the effect of TLE age on the accuracy of the Doppler computation. The problem is that, when a satellite pass occurs, TLEs have been calculated at an epoch in the past, so there is an error between the actual Doppler curve and the Doppler curve predicted by the TLEs. We show that the actual Doppler curve is very well approximated by applying a time shift to the Doppler curve predicted by the TLEs, justifying the study in part I.

Measuring a mains choke with Hermes-Lite VNA

I have made a mains choke for my HF station, following Ian GM3SEK’s design, which involves twisting the three mains wires together and passing as many turns as possible through a Fair-Rite 0431177081 snap-on ferrite core. I wanted to measure the choke’s impedance to get an idea of its performance, so I’ve used my Hermes-Lite 2.0 beta2 in VNA mode.

Charlas en IberRadio

English summary: Slides and recordings for the two talks I gave yesterday in IberRadio. One of the is about gr-satellites and the other one is about Linrad. All the material are in Spanish.

Ayer estuve en la feria IberRadio, en Ávila, dando dos charlas: una sobre gr-satellites y la otra sobre Linrad. Las diapositivas en PDF de las charlas se pueden descargar aquí:

He grabado las charlas usando mi cámara. El enfoque y la exposición no son muy buenos, pero he editado el vídeo incluyendo encima las imágenes de las diapositivas, lo que facilita seguir el vídeo de la charla. Por contra, las demostraciones en directo en la charla de Linrad se ven un poco mal.

Actualización: David EA1FAQ también hizo grabaciones de las charlas. En sus grabaciones se ve mejor el proyector, por lo que las demostraciones en directo durante la charla de Linrad se siguen mejor. Incluyo links más abajo.

Grabaciones con diapositivas por EA4GPZ

Grabaciones por EA1FAQ

About critical damping

Having to deal with DSP texts written by engineers, I have sometimes to work a bit to get a good grasp of the concepts, which many times are not explained clearly from their mathematical bases. Often, a formula is just used without much motivation. Lately, I’ve been trying to understand critically damped systems, in the context of PLL loop filters.

The issue is as follows. In a second order filter there is a damping parameter \(\zeta > 0\). The impulse response of the filter is an exponentially decaying sinusoid if \(\zeta < 1\) (underdamped system), a decaying exponential if \(\zeta > 1\) (overdamped system) and something of the form \(C t e^{-\lambda t}\) if \(\zeta = 1\) (critically damped system). Critical damping is desirable in many cases because it maximizes the exponential decay rate of the impulse response. However, many engineering texts just go and choose \(\zeta = \sqrt{2}/2\) without any justification and even call this critical damping. Here I give some motivation starting with the basics and explain what is special about \(\zeta = \sqrt{2}/2\) and why one may want to choose this value in applications.