Advertisement

Quick Links

User's Manual
Version 0.3.0
Gonzalo José Carracedo Carballal
June 27, 2022

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the SigDigger and is the answer not in the manual?

Questions and answers

Summary of Contents for MATLAB SigDigger

  • Page 1 User’s Manual Version 0.3.0 Gonzalo José Carracedo Carballal June 27, 2022...
  • Page 3: Table Of Contents

    About the author ....... . . 2 Installing SigDigger GNU/Linux .
  • Page 4 CONTENTS Sampling and decision ......Real-time inspection: inspection tabs ..... DSP chain .
  • Page 5: Introduction

    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.
  • Page 6: About The Author

    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.
  • Page 7: Installing Sigdigger

    $ 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.
  • Page 8: Macos

    /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.
  • Page 9: Building From Sources

    (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) •...
  • Page 10: Fully-Automated Build Using Blsd (Gnu/Linux Only)

    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.
  • Page 11: Manual Compilation (All Systems)

    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.
  • Page 13: Basic Operation

    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) •...
  • Page 14: Configuring The Signal Source

    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...
  • Page 15: Sdr Device

    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...
  • Page 16: File Source

    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...
  • Page 17: Source Parameters

    • 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 –...
  • Page 18: Starting A Capture

    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.
  • Page 22: Real-Time Source Tweaks

    • 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.
  • Page 24: Adjusting The Fft

    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.
  • Page 26: Listening To The Radio: Audio Preview

    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...
  • Page 28: Minor Tweaks

    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...
  • Page 29: Saving Audio

    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.
  • Page 31: Channel Inspection

    (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.
  • Page 32: Deferred Inspection: The Time Window

    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...
  • Page 33: Opening The Time Window

    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...
  • Page 34: Display Controls

    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.
  • Page 36: Basic Measurements

    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: •...
  • Page 37: Measurements Over Selected Data

    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.
  • Page 38: Periodic Selection

    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.
  • Page 39: Saving Samples

    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...
  • Page 40: Carrier Recovery

    • : 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.
  • Page 42: Transforms

    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.
  • Page 43: Sampling And Decision

    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.
  • Page 49: Real-Time Inspection: Inspection Tabs

    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.
  • Page 52: Inspection Tabs

    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.
  • Page 55: Spectrum Sources

    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.
  • Page 56: Fine-Tuning

    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...
  • Page 57: Parameter Estimation

    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.
  • Page 59: Demodulator Controls

    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.
  • Page 62: Data Forwarding

    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).
  • Page 65: Panoramic Spectrum

    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.
  • Page 66: Strategy And Partitioning

    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. •...
  • Page 67: Saving Data

    Saving data The resulting spectrum may be saved as a Matlab file. This file is a script with three variables: (the lower limit of the sweep range),...

Table of Contents