Introduction Thank you for choosing SigDigger. The following chapters attempt to cover all the relevant functions from the perspective of a user with minimal knowledge on digital signal processing and radio signals. It also includes practical examples for many real- world applications, including blind demodulation of radio signals and data acquisition from amateur satellites.
CHAPTER 1. INTRODUCTION realization of the attractor is a fractal , and depicts (in words of Iban EB3FRN ) the fractal nature of amateur radio as a hobby. About the author Gonzalo José Carracedo Carballal (BatchDrake) is a software engineer with a back- ground in cybersecurity, mathematical engineering and astrophysics.
$ chmod a+x SigDigger-0.3.0-x86_64-full.AppImage Now you can execute by typing: $ ./SigDigger-0.3.0-x86_64-full.AppImage Pro Tip: The AppImage file is a container not only for SigDigger but also for suscli and RMSViewer . Depending on the file name of the AppImage, one of these tools is exe- cuted.
/usr/local/bin/SigDigger $ sudo ln -s $PWD/SigDigger-0.3.0-x86_64-full.AppImage /usr/local/bin/RMSViewer $ sudo ln -s $PWD/SigDigger-0.3.0-x86_64-full.AppImage /usr/local/bin/suscli This will let you run SigDigger , suscli and RMSViewer from anywhere in the command line. https://batchdrake.github.io/suscli/ macOS Precompiled bundles are distributed in image files for x86-64 processors only.
(or do some progress in this direction), feel free to contact me at BatchDrake@gmail.com. Building from sources SigDigger has been designed to be easily built in Unix-like systems. Nonetheless, the following dependencies are required: • A modern C/C++ compiler (GCC or clang) •...
SigDigger: Fully-automated build using BLSD (GNU/Linux only) BLSD (short for Build Latest SigDigger from Develop) is a shell script that builds SigDigger from development branch and installs it inside a subdirectory of the current working directory. This is an option for users that do not want to install files in system- wide locations or have no root access to their system.
BUILDING FROM SOURCES disables PortAudio support as well (which in Windows and macOS –disable-portaudio targets implies disabling audio completely). Once has finished successfully, navigate to the resulting folder to run SigDigger blsd normally: $ cd blsd-dir/SigDigger $ ./SigDigger Manual compilation (all systems) This is the option you would choose if you do not have GNU/Linux or want to install SigDigger system-wide.
Page 12
$ export LD_LIBRARY_PATH=/usr/local/lib:"$LD_LIBRARY_PATH" $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:"$PKG_CONFIG_PATH" $ export PATH=/usr/local/bin:"$PATH" In case you wanted to install SigDigger somewhere else (e.g. /usr ), you must pass to every cmake invocation, PREFIX=/usr to every qmake -DCMAKE_INSTALL_PREFIX=/usr invocation and an additional SUWIDGETS_PREFIX=/usr to SigDigger’s qmake invocation.
Basic operation Although SigDigger’s UI seems a bit overwhelming at first, the things you may want to do with it usually boil down to one of the following: • Listen to voice channels (AM / FM / LSB / USB) •...
Optionally, the side bar can be hidden completely by dragging its left side to the right. Configuring the signal source The first step prior to any signal analysis is telling SigDigger where to read samples from. This is done by means of the Settings dialog, either by clicking the corresponding...
Sources and Location. By default, the Source tab –corresponding to the configu- ration of the signal source– is shown. Any saved signal source configuration with a name is called a profile. SigDigger relies on a profile named UI profile to load and save its signal source configuration. The Source tab is simply an editor of this profile, with additional functions to make copies...
Many SDR applications –including SigDigger– follow a set of fixed set of naming rules when it comes to storing sample data to a file. SigDigger is aware of several of these rules: when a file whose name looks like the one produced by a 3rd-party application is selected, it extracts fields like sample rate, frequency and date/time to adjust the...
• Raw complex 32 bit float. Header-less file containing a sequence of pairs of 32-bit IEEE-754 floating point numbers (little endian). The first element of the pair is the I component. This is the format used internally by SigDigger for I/Q data representation. Other applications –like Gqrx –...
CHAPTER 3. BASIC OPERATION For instance, the RTL-SDR –a 8-bit SDR– running at 3.2 Msps will deliver data at more than 51.2 Mbit/s. This imposes restrictions to applications like rtl-tcp , which are limited not only by the CPU power but also by the speed of the network interface. With the source type and the sample rate, you have already defined the most important parameters of the signal source.
Page 19
STARTING A CAPTURE The 7-segment display in the top-left corner is referred as the LCD. The leftmost number is the spectrum’s central frequency and, for SDR sources, is directly connected to the receiver’s tuner. You can adjust the frequency in real time from here, either by clicking on it and typing it with the keyboard, o by scrolling the digits with the mouse wheel.
Page 20
Details on spectrum normalization. While most signal analyzers (both hardware and soft- ware) rely on the square of the absolute value of the FFT to display the spectrum, not all of them agree in the way it is normalized. SigDigger relies on the following formula to calculate the PSD: (3.2)
Page 21
floor in the same level). On the other hand, if the device makes sure that the filter bandwidth is proportional to the sample rate, higher sample rates would result in wider gaussian distributions that should be scaled down by 1/f as SigDigger currently does.
• Throttle override: for file sources, adjusts the speed at which the signal is played back. By default, SigDigger will attempt to match the playback speed to the Mathematically speaking, and as long as the global phase is ignored, I/Q swapping is equivalent to...
Page 23
The I/O bandwidth progress bar indicates how much buffering space is used. If this progress bar ever hits 100%, it would mean that the underlying storage device is too slow to handle the current capture sample and samples would be lost. SigDigger reacts to this situation by stopping the recording automatically.
CHAPTER 3. BASIC OPERATION Adjusting the FFT The other important group in the side panel is the FFT group. FFT stands for Fast Fourier Transform, and it is used both for obtaining the frequency spectrum out of a portion of samples and for efficient channelization. From here you can adjust the following settings: •...
Page 25
ADJUSTING THE FFT (power spectral density in dBs of W/Hz), dBm/Hz (power spectral density indBs of mW/Hz) and AB magnitudes (in logarithmic units of Pogson’s law, also useful for radioastronomy). • Zero adjust: sets the origin of the vertical axis scale according to the current unit system.
CHAPTER 3. BASIC OPERATION Listening to the radio: audio preview Audio preview is maybe the most basic SigDigger use case. It lets you listen to voice channels modulated in different ways. You can use this feature to listen to FM...
Page 27
filter box its frequency span: If you have just plugged the receiver with SigDigger already opened, you will see that it does not show up in the settings dialog. You can force SigDigger to detect devices again by opening the device...
Minor tweaks This group lets you adjust other audio-related parameters, such as: • Squelch level (SQL): if enabled, informs SigDigger the signal level below which audio preview should be automatically muted. How squelch is performed de- pends on the current Demodulator: If the edges are way too close to the center frequency marker, the filter box may be too narrow to...
LISTENING TO THE RADIO: AUDIO PREVIEW – For FM signals, squelch is performed by analyzing the power spectral density at the detector’s output. This spectrum is divided in half, with the higher half consisting mostly in ultrasonic frequencies. In the presence of a clear FM signal, most of the power coming out of the detector should be concentrated in the lower –audible–...
Page 30
CHAPTER 3. BASIC OPERATION absence of a I/O Bandwidth progress bar (as rates are generally low) and the naming pattern: audio-Modulation-Frequency-Rate-NNNN.wav With Modulation being the modulation type (FM, AM, LSB, USB), Frequency the channel’s center frequency, Rate the sample rate used for the audio capture and NNNN a 4-digit number to identify different recordings in the same frequency.
(in which you basically adjust the parameters of a generic demodulator). Both workflows can be accessed through the side panel’s Inspection tab. SigDigger relies on suscan for channelization, which in turn relies on the Fast Fourier Transform to both filter out undesired frequencies and decimate the sample rate of the resulting channel.
CHAPTER 4. CHANNEL INSPECTION sample rates of the form f /2 . The output of the channelizer is not directly fed to SigDigger. Instead, it goes through a processing stage named inspector. Inspectors abstract out all sample-level anal- ysis and demodulation operations, and can be adjusted interactively. Currently, the...
The Time window opens as soon as the channel capture period reaches an end. SigDigger provides two ways of specifying the period during which channel data is It may be helpful to visualize these waveforms as the time evolution of the horizontal and vertical...
This can be done by pressing Autosquelch for a few seconds in a channel with no activity (so that SigDigger can make a good measure of the noise floor used as baseline level). Once you relese the Autosquelch button, you just have to wait until activity is found.
Page 35
DEFERRED INSPECTION: THE TIME WINDOW is also set, the signal’s envelope is overlaid to the waveform. If Phase is also set, the envelope is colored according to the instantaneous signal phase (i.e. the angle described by the I/Q vector with respect to the I component). If Frequency is set, the envelope is colored according to the instantaneous frequency.
CHAPTER 4. CHANNEL INSPECTION Basic measurements The Time window features a Measurements page. From this page, you can obtain different parameters and measurements of the captured signal and any selected interval, as well as use advanced selection techniques. In the absence of a selection, information regarding the full capture is displayed. This information includes: •...
DEFERRED INSPECTION: THE TIME WINDOW Measurements over selected data If a selection is present, measurements now refer to the selected data. Additionally, selection controls become available. The values labelled as Selection start / stop / length summarize the selection limits, both in time units and sample number.
CHAPTER 4. CHANNEL INSPECTION Periodic selection For bursty digital signals, one of the first parameters we would like to estimate is the bit rate (symbol rate). We do so by defining a channel roughly the bandwidth of the signal we want to observe, resulting in a sample rate close to the symbol rate. This often results in symbols being only a few samples long.
Both the selection and the full capture can be saved to a file. Three file formats are supported: WAV (regular WAV file, with I/Q components stored in the stereo channels), MATLAB/Octave script and MATLAB 5.0 MAT-file. The MATLAB/Octave script is an old-fashioned file in which samples are defined...
• : 1-D array of complex I/Q samples. The MATLAB 5.0 MAT-file is a binary file format used for compact storage of MAT- LAB/Octave datatypes. Although the information provided is the same, I/Q samples are presented in a different way: •...
Page 41
DEFERRED INSPECTION: THE TIME WINDOW Note that this feature only uses the information provided by the selection. It its com- pletely ignorant of the underlying modulation. In most cases this operation should be complemented with a Manual frequency correction, adjusting both the Frequency and Phase spin boxes and clicking Apply.
CHAPTER 4. CHANNEL INSPECTION Transforms The Transforms page provides a set of different signal transformations that can be used both to condition it before the sampling stage and to perform additional types of analysis. Transforms are chained, i.e. if a transform is applied after another, the output of the previous is used as the input of the next.
DEFERRED INSPECTION: THE TIME WINDOW • Product by the delayed conjugate: Extended version of the cyclostationary analysis. Multiplies the signal by the conjugate of a delayed version of itself by τ seconds. Since this is normally used to demodulate DBPSK signals (in which the captured signal can be used to demodulate itself), the user must provide the inverse of this delay in Hz, which corresponds to the symbol rate of the signal.
Page 44
CHAPTER 4. CHANNEL INSPECTION The first thing we would like to know is whether any of these three variables (amplitude, phase or frequency) are being used to modulate a digital signal. Unfortunately, it is impossible to cover all possible modulation types with these variables alone (e.g. QAM uses both amplitude and phase), but it suffices for many real-world signals.
Page 45
1 bit-per-symbol modulation. This is, each symbol maps to 1 bit. In order to achieve this, SigDigger needs information on the symbol timing. This is, when a symbol starts and ends. This information can be provided in 5 ways: •...
Page 46
CHAPTER 4. CHANNEL INSPECTION • Zero-crossings: width-based clock recovery mechanisms (binary amplitude modulation only). The user must define, in addition to a reference symbol rate, a reference level (the Zero point) in either one of the real, imaginary and amplitude components using the Component drop-down list.
Page 47
DEFERRED INSPECTION: THE TIME WINDOW 1. Set Bits per symbol (1 for 2 symbols, 2 for 4 symbols, 3 for 8 symbols, etc). This determines the relationship between frequencies, symbols and bits. The decision intervals will be marked with vertical gray lines. In our case, there is only one bit per symbol and we leave it as-is.
Page 48
CHAPTER 4. CHANNEL INSPECTION If you drag the mouse over the symbols of the symbol view, you can select a subset of symbols just like you would do with normal printable text. You can press Ctrl+A to select all symbols in the view and to copy the selection to the clipboard.
REAL-TIME INSPECTION: INSPECTION TABS Real-time inspection: inspection tabs With the Time window, demodulation and sampling was mostly performed in a forensic way: you capture signal data from a channel for some time, and spend a few minutes figuring it out. However, if the transmitter is continuously delivering data, extracting small portions of the signal may not be practical.
Page 50
These soft symbols should be fed to a user-tunable decider that transforms them into hard symbols, i.e. digital data. This section only covers the part of the chain that is processed by the SigDigger’s core (Suscan). Symbol decision is a human-guided process occurring at GUI level.
Page 51
REAL-TIME INSPECTION: INSPECTION TABS guess. When enabled, both CR and N run in closed-loop mode, continuously correcting the sampling phase. • CMA (Optional): equalizer, based on the constant modulus algorithm (CMA). It is a very naif implementation of an equalizer, but works fine for multipath / selective fading scenarios.
In certain sense, they define a view over the channel handled by an inspector. SigDigger supports different types of inspection tabs thanks to its extensible plugin interface (e.g. the APT Inspector provided by the APT decoder plugin ), and the built-in Generic Channel Inspector tab is always guaranteed to be available.
Page 53
(like RDS in FM broadcasts) • Data forwarding. Used to deliver demodulated samples to external sinks (like data files or network sockets) in different formats. Useful if you want SigDigger to be part of a longer DSP chain split in different applications.
Page 54
CHAPTER 4. CHANNEL INSPECTION graph representation of the observed transitions between consecutive decided ("hard") symbols. The nodes of the graph are all the possible 2 symbols, drawn as a set of equally spaced points in a circumference. Finally, the rightmost, longest plot corresponds to the histogram plot. This is the same control described in the Sampling window, with identical behavior: the user can tweak the decision intervals by dragging the leftmost peak to the rightmost peak.
REAL-TIME INSPECTION: INSPECTION TABS Analysis tabs The purpose of the analysis tabs is to provide different representations of the data at different stages in the DSP chain. It can be used both to validate the current adjustment of the demodulator parameters and to extract information out of the demodulated data.
CHAPTER 4. CHANNEL INSPECTION The Spectrum tab provides a toolbar with a subset of the controls of the main window’s FFT group. The Spectrum source drop-down is used to choose the spectrum source to be displayed, or to disable it (None). The following table summarizes the available spectrum sources and the applicable inspectors: Source Description...
The Doppler correction can be used to instruct SigDigger on how to continuously adjust the channel’s frequency to correct Doppler shifts, in case the signal comes from an orbiting satellite.
Page 58
CHAPTER 4. CHANNEL INSPECTION By default, all estimators are disabled. You can enable each parameter estimator by clicking on the corresponding Estimate button. If a valid estimation of the parameter is available, its value will be displayed in the text box to the left. Once the estimator settles to a more or less stable value, you can click Apply to update the corresponding parameter.
REAL-TIME INSPECTION: INSPECTION TABS Demodulator controls The Demodulator controls group provide an interactive user interface to dynamically adjust the different parameters of the elements in the inspector’s DSP chain. Depend- ing on which particular inspector you are using, different controls will be available. This section intends to be reference of all the demodulator controls that may show up in the inspection tab.
Page 60
CHAPTER 4. CHANNEL INSPECTION will be used to remove any residual frequency component and lock the signal to an arbitrary initial phase. The number of bits per symbol is deduced from the chosen modulation type: 1 for BPSK, 2 for QPSK and 3 for 8PSK. The naming used for each Costas loop is a bit misleading.
Page 61
REAL-TIME INSPECTION: INSPECTION TABS Matched filter In order to maximize the SNR at the receiving end and reduce inter-symbol interference (ISI), a matched filter may be necessary. In many systems, the standard is the Square- Root-Raised-Cosine filter (SRRC). This filter can be enabled from the Matched filter drop-down list.
The supported variables are: • Complex soft bits (IQ). These are regular, complex, IQ samples. This is what SigDigger internally uses. • Soft bits (I). In-phase component of the IQ samples. This is just the real part of the IQ sample ( [x ]) •...
Page 63
MTU is too small, the user may adjust this setting by means of the Frame size box. When the user clicks Forward, SigDigger will attempt to open a connection to the specified host and port (if TCP is chosen) or create a datagram socket bound to that address (if UDP is chosen).
IQ sampling and a functional tuner. The principle of operation is simple: the user specifies a device, a frequency range, a sample rate and a hop speed. SigDigger then tunes the device to a frequency in the range, receives a few samples, computes the spectrum and glues it to the wider, panoramic spectrum before hopping to the next frequency.
CHAPTER 5. PANORAMIC SPECTRUM • LNB: if the device is plugged to a frequency converter (e.g. a Ku-band LNB or NooElec’s Ham It Up), you may want to set the IF frequency here to have a properly centered frequency axis. •...
Need help?
Do you have a question about the SigDigger and is the answer not in the manual?
Questions and answers