1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-03 15:31:15 -05:00
sdrangel/plugins/channelrx/demodfreedv
Jon Beniston 99fce0dce0 Add FramelessWindowResizer class for resizig frameless windows.
Remove top-right resize grip from windows.
In channels and features, make sure enterEvent and leaveEvent are passed
to parent class.
2022-04-22 18:21:24 +01:00
..
CMakeLists.txt Install debug symbols on Windows for debug builds 2022-02-06 12:56:58 +00:00
freedvdemod.cpp Massive UI revamping (v7): Implemented channel move to another device and more 2022-04-16 16:45:53 +02:00
freedvdemod.h Massive UI revamping (v7): Implemented channel move to another device and more 2022-04-16 16:45:53 +02:00
freedvdemodbaseband.cpp Demod plugins with configurable audio: fixed audio sample rate handling 2020-08-03 12:59:31 +02:00
freedvdemodbaseband.h Set label in AudioFifo to identify the controlling component in error messages. Use a signal to retrieve the channel index in device set appropriately 2022-03-18 21:53:53 +01:00
freedvdemodgui.cpp Add FramelessWindowResizer class for resizig frameless windows. 2022-04-22 18:21:24 +01:00
freedvdemodgui.h Massive UI revamping (v7): updated basic channel settings and indicate stream index for MIMO device and single stream channel 2022-04-18 01:42:03 +02:00
freedvdemodgui.ui Massive UI revamping (v7): Implemented channel move to another device and more 2022-04-16 16:45:53 +02:00
freedvdemodsettings.cpp Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
freedvdemodsettings.h Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
freedvdemodsink.cpp Do not write tail audio samples and write to sample buffer only if necessary. May fix #1132 2022-02-08 00:55:31 +01:00
freedvdemodsink.h Set label in AudioFifo to identify the controlling component in error messages. Use a signal to retrieve the channel index in device set appropriately 2022-03-18 21:53:53 +01:00
freedvdemodwebapiadapter.cpp Fixed -Wunused-parameter warnings 2020-11-14 11:13:32 +01:00
freedvdemodwebapiadapter.h REST API: config: GET (13): corrected missing return in deserialize methods of the adapters 2019-08-05 03:42:04 +02:00
freedvplugin.cpp Updated versions and changelogs 2022-03-30 22:16:08 +02:00
freedvplugin.h Channel plugins: use specialized ChannelGUI superclass. Handle GUI lifecycle in MainWindow 2020-10-04 22:16:09 +02:00
readme.md Massive UI revamping (v7): Channel window documentation. Show device type name in index tooltip 2022-04-17 10:20:07 +02:00

FreeDV demodulator plugin

Introduction

This plugin can be used to demodulate a signal following the FreeDV digital voice protocol.

⚠ A minimum of 48 kS/s I/Q sample rate in the baseband is required in 2400A mode for the demodulator/decoder to work correctly. Other modes only require 8 kS/s.

Interface

The top and bottom bars of the channel window are described here

FreeDV Demodulator plugin GUI

1: Frequency shift from center frequency of reception

Use the wheels to adjust the frequency shift in Hz from the center frequency of reception. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2.

2: Channel power

Average total power in dB relative to a +/- 1.0 amplitude signal received in the pass band.

3: Manual re-synchronization

This works only for the presently disabled 700D mode. Use this push button to force loosing and re-acquiring synchronisation.

4: FreeDV mode

Use this combo box to select which FreeDV standard is used. The following are supported:

  • 2400A: FSK-4 wideband (6 kHz) modulation with 1300 b/s compressed voice to be used at 29 MHz and above similarly to FM analog usage. Details here
  • 1600: OFDM (16 QPSK carriers) narrowband (1.4 kHz) with 700 b/s compressed voice
  • 800XA: FSK-4 narrowband (2 kHz) with 700 b/s compressed voice
  • 700C: Another OFDM (14 QPSK carriers) narrowband (1.5 kHz) mode with 700 b/s compressed voice

5: Level meter in dB

  • top bar (green): average value
  • bottom bar (blue green): instantaneous peak value
  • tip vertical bar (bright green): peak hold value

6: AGC and volume controls

FreeDV volume and AGC controls

6.1: AGC toggle

Use this checkbox to toggle AGC on and off.

6.2: Modem input volume

This is the volume of the signal entering the modem from 0.0 (mute) to 9.9 (maximum). It can be varied continuously in 0.1 steps using the dial button. Use this control to make sure the peaks do not exceed 100% on the VU meter.

6.3: Modem input VU meter

This shows the level of the signal entering the modem and peaks (shown by the tiny red vertical bar) should never exceed 100%. In fact there is a 10% guard so 100% is actually 90% of the signal volume.

6.4: Audio output volume

This is the volume of the audio signal from 0.0 (mute) to 9.9 (maximum). It can be varied continuously in 0.1 steps using the dial button. The mid position (5.0) corresponds to the normal level of comfort.

7: Digital signal quality indicators

FreeDV digital signal quality

7.1: Bit Error Rate (BER)

This shows the number of bit errors per second and is derived from the bit error counter updated at each frame and the frames per second depending on the FreeDV mode.

7.2: Synchronization indicator

This indicator lights in green when synchronization is locked. Note that this does not work for FM modes (2400A, 800XA).

7.3: Digital Signal to Noise Ratio

This should be derived more or less from the calculated Eb/N0. Note that in 700C mode it takes big jumps and does not seem very reliable.

7.4: Frequency shift estimation

This is an estimation of the frequency shift from optimal position. Use the frequency delta dial (1) to make it as close to 0 as possible.

8: Spectrum display frequency span

The transmitted signal is further decimated by a power of two before being applied to the channel spectrum display and used to set the in channel filter limits. This effectively sets the total available bandwidth depending on the decimation:

  • 1 (no decimation): 24 kHz (2400A) or 4 kHz (other modes)
  • 2: 12 kHz (2400A) or 2 kHz (other modes)
  • 4: 6 kHz (2400A) or 1 kHz (other modes)
  • 8: 3 kHz (2400A) or 0.5 kHz (other modes)
  • 16: 1.5 kHz (2400A) or 0.25 kHz (other modes)

9: Spectrum display

This is the spectrum display of the analog signal that enters the modem before AGC and volume control. Controls on the bottom of the panel are identical to the ones of the main spectrum display. It should be optimally centered using the frequency offset control (1) depending on the expected FreeDV mode:

  • 2400A: 3 kHz (filtered from 0 to 6 kHz)
  • 1600: 1.5 kHz (filtered from 0.6 to 2.4 kHz)
  • 800XA: 1.4 kHz (filtered from 0.4 to 2.4 kHz)
  • 700C: 1.5 kHz (filtered from 0.6 to 2.4 kHz)