Source file map
Which source file does what. DSP-path files are grouped first. Paths link to the fventuri/linrad source.
Core DSP pipeline#
| File | Role |
|---|---|
rxin.c |
RX input; fills timf1; internal test generator; raw file/net save |
fft1.c |
first (wideband) FFT; waterfall; back-transform helpers |
sellim.c |
liminfo[] strong/weak classification (selective limiter) |
timf2.c |
split + simultaneous back-FFT → timf2 |
blank1.c |
noise blankers (clever + stupid) and pulse polarization |
fft2.c |
second (fine) FFT for AFC / spur removal |
spur.c, spursub.c |
spur / birdie removal |
afcsub.c, afc_graph.c |
AFC + initial polarization; AFC graph |
mix1.c |
first mixer (tune + decimate as a limited back-FFT) → timf3 |
fft3.c |
third FFT feeding the second mixer |
mix2.c |
second mixer: baseband filter + adaptive polarization → baseb_raw |
baseb_graph.c |
baseband: filters, AGC detection, AM/FM, baseband spectrum |
rxout.c |
output: resampling, AGC gain, BFO/demod, squelch, D/A |
wcw.c |
wideband-DSP thread glue; coherent-CW weak-signal path |
fm.c |
FM demodulation, WFM stereo pilot / RDS / de-emphasis |
FFT kernels / SIMD#
fft0.c and the fft2mmx*.s, fftasm*.s, split*.s, simdasm*.s assembly kernels; GPU path oclprogs.c, cuda.c.
Coherent CW / Morse / measurement#
coherent.c, cohsub.c, coh_osc.c (coherent CW, waveform fitting); cwdetect.c, cwspeed.c, morse.c (auto Morse decode); siganal_graph.c, allan_graph.c (correlation / Allan-variance displays); pol_graph.c (polarization graph); hires_graph.c (high-resolution blanker/level graph); radar.c.
Hardware / device drivers#
sdrplay2.c, sdrplay3.c, mirics.c, perseus.c, sdrip.c, sdr14.c, excalibur.c, airspy.c, airspyhf.c, bladerf.c, rtl2832.c, cloudiq.c, afedri.c, elad.c, elektor.c, soft66.c, fcdpp.c, openhpsdr.c, pcie9842.c, si570.c, wse.c, extio.c, hwaredriver.c, hid*.c, loadusb.*, loadalsa.*, soundcard.c, pa.c (PortAudio), sim2*.c (simulators). Networking: network.c, httpd.c, html_server.c.
Calibration#
calibrate.c, calsub.c, calsub2.c, caliq.c, calvar.c, caldef.h — amplitude / phase / IQ-balance calibration.
UI / display / platform#
menu.c, ui.c (menus, UI, thread startup); screen.c, screensub.c, fonts.c, palette.c (rendering); wide_graph.c, baseb_graph.c, meter_graph.c, tx_graph.c (graphs); mouse.c, help.c; xmain.c / lxsys.c (X11 / Linux), wmain.c / wsys.c (Windows).
Central headers: globdef.h (parameter structs hg, bg, pg, ag, ui, mix1, mix2, genparm[], mode defines); thrdef.h (threads/events/mutexes); fft1def.h, sigdef.h, blnkdef.h, sdrdef.h.
Transmit#
tx.c, txssb.c, tx_graph.c, txtest.c, txdef.h (not covered in these DSP notes).
Author's documentation shipped with the source#
z_SETTINGS.txt (DSP overview), z_BUFFERS.txt (buffer conventions), z_TIMING.txt (the T display / delay chain), z_NETWORK.txt, z_CALIBRATE.txt, z_MORSE_DECODING.txt and other z_*.txt files.