Ionosonde characteristics

57 views
Skip to first unread message

Phil Karn

unread,
May 25, 2026, 4:07:27 AM (6 days ago) May 25
to ham...@googlegroups.com
What do people know about the ionosondes I frequently see sweeping
across the HF spectrum? By eye they seem to sweep upward at about 100
kHz/sec, though they're not all the same (different line slopes,
sometimes even intersecting). Do they transmit on a published schedule?
Do any chirp down? (I haven't noticed any.)

I'm looking at what it would take to de-chirp these things in
ka9q-radio. I do have a Doppler feature (carrier phase acceleration
term) that works great for satellites but is best below 2 kHz/sec (the
40 Hz FFT bin size times the 50 Hz frame rate) because it chirps the +/-
20 Hz fine-tuning oscillator. (Coarse tuning in 40 Hz steps is by FFT
bin shifting, which can only be done every 20 ms.)

I might be able to extend it by filtering more loosely, chirping the
fine oscillator more than +/- 20 Hz per 20 ms frame time, jumping
multiple bins/frame, and then more tightly filtering the dechirped signal.

But if the signal isn't a simple linear FMCW chirp it would be nice to
know. Eg, if it's actually stepped, especially if there's a timing (eg,
Barker) code transmitted during each step, I could follow it with a
delay-locked loop and measure precise timing. The signals I hear are
usually plenty strong.

Phil



Ethan Miller K8GU

unread,
May 25, 2026, 7:11:17 AM (6 days ago) May 25
to ham...@googlegroups.com
Phil,

There are at least four different signal types that you can see (and
depending on where you are, there are more) regularly in the U.S.:

1. Chirp sounders: these are FMCW chirps that increase at 100 or 125
kHz/sec (sometimes others) starting on a GPS second boundary, usually
at 2 MHz.
2. WSBI (Wide-Sweep Backscatter Ionogram): these are associated with
certain OTH radar systems. They are single FMCW chirps that step in
frequency. This could be probably be reverse-engineered, but it would
be painful. The specifications are not public to my knowledge.
3. Digisondes: these use a complimentary-code BPSK pulse waveform, if
I recall correctly; the user manual for the LDI DPS-4D is floating
around the web. The key with the Digisonde is to work out the
frequency list for an individual site.
4. VIPIR: Vertical Incidence Pulsed Ionospheric Radar. These use a
more advanced pulsed waveform than the Digisonde that comes in
quartets (if you are near--NVIS path--one, you can often hear them in
a SSB receiver "brap-brap-brap-brap"). They typically have a much more
nonlinear frequency-stepping regime than the others. The inventor of
this system is on the HamSCI list.

Of these, #1 is by far the easiest to tackle. Perhaps start here:

https://github.com/jvierine/chirpsounder2

Good luck!

--Ethan, K8GU.
> --
> Please follow the HamSCI Community Participation Guidelines at http://hamsci.org/hamsci-community-participation-guidelines.
> ---
> You received this message because you are subscribed to the Google Groups "HamSCI" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hamsci+un...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/hamsci/1df819e0-e833-4f77-9f8b-c332eba2fb28%40ka9q.net.



--
http://www.k8gu.com/
Repair. Re-use. Re-purpose. Recycle.

Steve Kaeppler

unread,
May 25, 2026, 8:53:07 AM (5 days ago) May 25
to ham...@googlegroups.com
Hi Phil-

Ethan obviously gave a great response! I will just add a few little comments:
1. Juha also added dechirping digisondes in his code base. He sent an
email to some of us, including Nathaniel on that topic. I think Juha
is pretty regularly collecting digisondes now.
2. I have a used a SDRplay connected to a leo bodnar to collect IQ
data of chirpsounders without too much trouble. I am happy to share
data and instructions on what I did. Those could probably be
dechirped with a standard matched filter. In fact, Juha also wrote a
'midterm exam' explaining the math behind it which is straight
forward.
3. I think Nathaniel along with others have been developing a capable
SDR and with time synchronization they are using, these would be ideal
candidate signals to look at!

Thanks Phil and 73,
Steve
> To view this discussion visit https://groups.google.com/d/msgid/hamsci/CAFkosZLd_wUOTxe9N7cofhEYY3LMD-DHL35JuS3-nObMsKqWrw%40mail.gmail.com.



--

--------------------------------------------------------------------
Steve Kaeppler
steve.k...@gmail.com
cell: 262-707-0932
Amateur Radio Call: AD0AE/6

Dave Typinski

unread,
May 26, 2026, 12:56:05 AM (5 days ago) May 26
to ham...@googlegroups.com
Adding to Phil's very informative response regarding ionosondes, the sweeps from
AN/TPS-71 over the horizon radars look similar to ionospnde emission and are
received quite strongly in the HF band in several parts of North America.

A description here:
https://www.aj4co.org/Publications/Sweepers,%20Typinski%20%28SARAJ,%202010%29.pdf

One can also see similar HF band OTH radar sweeps from Russian, Australian, and
other nations' radar installations depending on propagation condx.
--
Dave, AJ4CO

Onno VK6FLAB

unread,
May 26, 2026, 7:20:19 AM (5 days ago) May 26
to ham...@googlegroups.com
Hi Phil,

Beyond having seen the phenomenon, I have no data and I've never seen anyone describing it even in as much detail as you describe it here, mind you I haven't gone looking for it either.

Apart from recording spectrograms with known and probably calibrated parameters and subsequently processing them, I'm not sure how you might even go about recording enough data in order to have something to code against.

I wonder if the various space weather services share hardware and software implementations, or if they homebrew their own.

I'd be happy to reach out to the Space Weather Service at the Bureau of Meteorology here in VK to ask, but I doubt that they're the only players in our spectrum.

Very interesting project.

--
finger painting on glass is an inexact art - apologies for any errors in this scra^Hibble

()/)/)() ..ASCII for Onno..



Ethan Miller K8GU

unread,
May 26, 2026, 8:29:56 AM (4 days ago) May 26
to ham...@googlegroups.com
All,

Some good additional information from Dave, especially, in this
thread. It might be helpful if I sketched out the way the code I
linked on github works.

It ingests a significant swath of the HF band (~20 MHz complex sample
rate) in real time and it has two components: a chirp (waveform)
detector and a downconverter. I'll only describe the linear chirp
(the (Q)"VI"--quasi-vertical-incidence--sounding described in Dave's
paper; it's important to note that there are additional chirp sounders
not associated with ROTHR that you will find on the air). The chirp
detector determines the start time of the sweep and its sweep rate.
The downconverter is very simple: once the start time is known, a
pair (in-phase and quadrature) of numerical-controlled oscillators
(NCOs) are started that track the sweep. The NCOs are mixed with
incoming I/Q stream, and low-pass filtered to retain the baseband (not
the double-frequency image). I believe it's implemented as complex
multiply and accumulate. The baseband can then be post-processed with
a short-time Fourier transform of the operator's choosing to trade
range/frequency resolution in the ionogram.

This is a classic FMCW radar implementation--the signals arriving at
longer ranges via skywave (or surface wave if you have a good channel)
arrive at lower frequencies due to having been transmitted earlier in
the chirp. So, the STFT will directly produce the ionogram and the
axes scales are simply a matter of scaling by the chirp rate,
decimation, and STFT parameters.

One subtle implication of this is that the FMCW waveform has a severe
range-Doppler ambiguity. That is, there are ionospheric Doppler
shifts that may masquerade as range changes or vice versa. Although
this may be partially mitigated by choosing the sweep rate, this
ambiguity was one motivation for more advanced systems to use pulsed
waveforms. However, the chirp sounder can exhibit extremely high SNR
and is very easy to process. Finally, the Doppler resolution for most
of the pulsed systems is not exquisite unless configured in a special
mode because there is a resource trade between dwelling at a frequency
long enough to do a long FFT over the pulses and completing a sweep
"before the ionosphere changes." There's no free lunch.

73,

--Ethan, K8GU.
> To view this discussion visit https://groups.google.com/d/msgid/hamsci/CACybYRUkUwqRv2e_Sc2OyfR32XLBC7Bw3d4Bh-5DEk59odKeFA%40mail.gmail.com.

googl...@cox.net

unread,
May 26, 2026, 1:55:08 PM (4 days ago) May 26
to ham...@googlegroups.com
Phil,

A link to the Lowell Digisonde manual:
https://digisonde.com/pdf/Digisonde4DManual_LDI-web.pdf

The waveform is not a linear FMCW signal; they use a pulsed transmission with a 13-bit Barker Code. The sounder steps in frequency (and sometimes is programmed to avoid stepping on other signals) to "find" the critical frequency associated with each layer of the ionosphere. The receiver system detects the ordinary (O) and extraordinary (X) ray returns based on the polarization detected by the crossed loop antennas and the return frequency separation.

The Digisonde is a monostatic radar system. There have been experiments conducted between sounders to perform bistatic collection, producing what is known as oblique sounding (vs vertical incident sounding). An example of an Italian oblique sounder network:
http://iononet.ingv.it/index.php/measure/ionosonde

73,

Mark Braunstein WA4KFZ

Michael Hauan

unread,
May 26, 2026, 5:30:13 PM (4 days ago) May 26
to ham...@googlegroups.com
I looked in to CODAR:

# codar-sounder

Opportunistic ionospheric sounder for the HamSCI (Ham Radio
Science Citizen Investigation) sigmond suite.

`codar-sounder` receives CODAR (Coastal Ocean Dynamics
Applications Radar) high-frequency (HF) chirp transmissions via
`radiod`, dechirps them, and produces a JSON Lines (JSONL) time
series of group range, virtual height, equivalent vertical
frequency, and per-peak amplitude / phase scintillation indices
along each oblique propagation path.

## Background

CODAR transmitters along the US east and west coasts radiate
**linear frequency-modulated continuous-wave (FMCW)** chirps at
well-characterised frequencies (4–50 MHz) 24/7, with timing
disciplined by the Global Positioning System (GPS). Each chirp
sweeps the transmit frequency linearly across a band of roughly
25–100 kHz and repeats at the sweep repetition frequency (SRF;
typically 1 Hz). Some sites use up-chirps (instantaneous
frequency rising through the sweep), others down-chirps; the
sweep parameters — start frequency, bandwidth, sweep rate,
direction — are stable and well-documented per site. Co-located
transmitters that share a band coordinate via time-division
multiple access (TDMA) slots, each transmitter starting its
chirp at a fixed phase within a shared repetition period.

Although the transmitters exist to image ocean surface currents,
the same signals are an excellent **opportunistic** source for
single-frequency oblique ionospheric sounding: the transmit power
is already paid for, the frequencies and chirp parameters are
public, and the coverage geometry is fixed and well-documented.
The FMCW waveform is well suited to dechirp-based ranging — beat
frequency after dechirping is proportional to the group-path
delay — so a receiver with the same chirp parameters and
coherent timing can recover ionospheric path information from a
transmitter it has no operational relationship with.

The instrument design follows Kaeppler et al. (2022, *Atmos.
Meas. Tech.* 15:4531–4545). We add multi-hop hypothesis
selection, two stages of median-absolute-deviation (MAD)
interference rejection, and per-peak amplitude / phase
scintillation indices on top of the original method; see
[`docs/METHODOLOGY.md`](docs/METHODOLOGY.md) for the technical
detail.

The rest of the details are on https://github.com/mijahauan/codar-sounder along with a functioning codebase that uses my ka9q-python library and your ka9q-radio.  Here’s an example of the output:

$ smd watch codar -v

━━━ CODAR ionospheric soundings (AC0G-B1) ━━━
        stage: decoder (codar-sounder) → JSONL spool (pre-SQLite)
        ▸ 1 station(s): SEAB
        ▸ every 15 s (CPI cadence) — per-window rollup
          + ALL records in this window, one line each
        Ctrl-C to exit.

─── win UTC 21:28:00 (15s) ──────────────────────────────────
  (no detections this window)
─── win UTC 21:28:15 (15s) ──────────────────────────────────
  SEAB  : peaks=4   layers={E,F1,F2}  SNR=+60.0 dB
    21:38:21.373  SNR +60.0 dB  GR  1431.6 km  VH  103.1 km  EVF  1.937 MHz  E           (0/4)
    21:38:21.373  SNR +60.0 dB  GR  1479.9 km  VH  214.0 km  EVF  3.890 MHz  F1          (1/4)
    21:38:21.373  SNR +60.0 dB  GR  1510.2 km  VH  261.5 km  EVF  4.658 MHz  F2          (2/4)
    21:38:21.373  SNR +60.0 dB  GR  1522.2 km  VH  278.5 km  EVF  4.921 MHz  F2          (3/4)
  → peaks=4  stations=1/1  layers={E,F1,F2}
─── win UTC 21:28:30 (15s) ──────────────────────────────────
  SEAB  : peaks=4   layers={F2}  SNR=+60.0 dB
    21:38:36.373  SNR +60.0 dB  GR  1516.2 km  VH  270.1 km  EVF  4.792 MHz  F2          (0/4)
    21:38:36.373  SNR +60.0 dB  GR  1649.1 km  VH  422.0 km  EVF  6.884 MHz  F2          (1/4)
    21:38:36.373  SNR +60.0 dB  GR  1763.8 km  VH  262.7 km  EVF  8.013 MHz  F2          (2/4)
    21:38:36.373  SNR +60.0 dB  GR  1902.8 km  VH  317.6 km  EVF  8.979 MHz  F2          (3/4)
  → peaks=4  stations=1/1  layers={F2}
─── win UTC 21:28:45 (15s) ──────────────────────────────────
  SEAB  : peaks=4   layers={F2}  SNR=+8.4/+11.0 dB
    21:38:51.373  SNR +11.0 dB  GR  1775.9 km  VH  267.7 km  EVF  8.111 MHz  F2          (0/4)
    21:38:51.373  SNR  +9.8 dB  GR  2047.8 km  VH  369.6 km  EVF  9.712 MHz  F2          (1/4)
    21:38:51.373  SNR  +9.2 dB  GR  1667.2 km  VH  439.5 km  EVF  7.091 MHz  F2          (2/4)
    21:38:51.373  SNR  +8.4 dB  GR  1637.0 km  VH  410.1 km  EVF  6.739 MHz  F2          (3/4)
  → peaks=4  stations=1/1  layers={F2}

Michael AC0G

Reply all
Reply to author
Forward
0 new messages