1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-22 16:08:39 -05:00
sdrangel/plugins/channeltx/udpsource
2020-08-27 07:40:41 +02:00
..
CMakeLists.txt SampleSourceFifo refactoring and Tx code reorganization 2019-11-15 01:05:32 +01:00
readme.md UDP source: updated documentation 2020-08-25 21:00:20 +02:00
udpsource.cpp UDP Source multicast: REST API: implementation 2020-08-25 00:16:06 +02:00
udpsource.h Websocket spectrum: adapted plugins 2020-05-15 22:57:09 +02:00
udpsourcebaseband.cpp Tx plugins: fixed VU meter handling 2019-12-09 13:43:54 +01:00
udpsourcebaseband.h Tx refactoring: added some missing method bodies 2019-11-15 02:20:03 +01:00
udpsourcegui.cpp UDP sink: implemented multicast join. Implements #610 2020-08-25 00:06:58 +02:00
udpsourcegui.h UDP sink: implemented multicast join. Implements #610 2020-08-25 00:06:58 +02:00
udpsourcegui.ui UDP Source: GUI compatibility with older version of Qt 2020-08-25 00:07:13 +02:00
udpsourcemsg.cpp Fixed incomplete copyright headers (1) 2019-04-11 06:39:30 +02:00
udpsourcemsg.h Fixed incomplete copyright headers (1) 2019-04-11 06:39:30 +02:00
udpsourceplugin.cpp Updated version and changelogs 2020-08-25 21:05:54 +02:00
udpsourceplugin.h REST API: config: use specialized ChannelWebAPIAdapter class similar to what has been done for devices 2019-08-05 00:10:56 +02:00
udpsourcesettings.cpp UDP sink: implemented multicast join. Implements #610 2020-08-25 00:06:58 +02:00
udpsourcesettings.h UDP sink: implemented multicast join. Implements #610 2020-08-25 00:06:58 +02:00
udpsourcesource.cpp UDP Source: restore spectrum display 2020-08-25 00:07:21 +02:00
udpsourcesource.h UDP Source: restore spectrum display 2020-08-25 00:07:21 +02:00
udpsourceudphandler.cpp UDP Source: style and debug message fixes 2020-08-27 07:40:41 +02:00
udpsourceudphandler.h UDP sink: implemented multicast join. Implements #610 2020-08-25 00:06:58 +02:00
udpsourcewebapiadapter.cpp REST API: config: use specialized ChannelWebAPIAdapter class similar to what has been done for devices 2019-08-05 00:10:56 +02:00
udpsourcewebapiadapter.h REST API: config: GET (13): corrected missing return in deserialize methods of the adapters 2019-08-05 03:42:04 +02:00

UDP Source plugin

Introduction

By "source" one should understand a source of samples that feed the baseband of the transmitting device. An external application establishes an UDP connection to the plugin at the given address and port and samples are directed to it. In fact it can also come from SDRangel itself using the UDP source plugin

The UDP block size or UDP payload size is optimized for 512 bytes but other sizes are acceptable.

This plugin is available for Linux and Mac O/S only.

Interface

UDP Source 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: Input channel power

Total power in dB relative to a +/- 1.0 amplitude signal received from UDP.

3: Output channel power

Total power in dB relative to a +/- 1.0 amplitude signal sent in the channel.

4: Channel mute

Use this button to switch off the RF on the channel. The background of the button lights in green when a signal can be sent.

5: UDP address and port

Enter the network interface address and listening port. The display is in the format address:data port

6: Join multicast group

Toggle join/leave multicast group specified by the address next (7). When multicast group is joined the listening address is automatically switched to all addresses (0.0.0.0)

7: Multicast group address

This is the multicast group address.

8: Input sample rate

Sample rate in samples per second of the signal that is received on UDP. The actual byte rate depends on the type of sample which corresponds to a number of bytes per sample.

9: Type of samples

Combo box to specify the type of samples that are received and sent in the channel.

  • SnLE I/Q: Raw I/Q samples on signed 16 or 24 bits integers with Little Endian layout. Use it with software that sends I/Q data as output like GNUradio with the UDP source block. The output is interleaved I and Q samples. It can also match the UDP source plugin with the same S16LE I/Q format and compiled for the same sample I/Q size and can be used for linear transposition.
  • S16LE NFM: receives 16 bits signed integers on 1 (mono) or 2 (stereo) channels with Little Endian layout. It produces a mono signal with narrow bandwidth FM modulation. Stereo input channels are mixed before modulation. There is no DC block so it can be used with modulating signals where the DC component is important like digital signals.
  • S16LE LSB: Takes a 1 (mono) or 2 (stereo) channels AF signal and produces a LSB modulated signal. Stereo input channels are mixed before modulation.
  • S16LE USB: Takes a 1 (mono) or 2 (stereo) channels AF signal and produces a USB modulated signal. Stereo input channels are mixed before modulation.
  • S16LE AM: Takes a 1 (mono) or 2 (stereo) channels AF signal and produces a AM modulated signal. Stereo input channels are mixed before modulation.

10: Mono/Stereo input

This toggles switches between 1 channel (mono) and 2 channels (stereo) input samples format.

11: Output signal bandwidth

The signal is bandpass filtered to this bandwidth (zero frequency centered) before being sent out in the channel. In SSB modes only half of the filter is used (LSB: lower, USB: upper). Thus to send a signal with 3000 Hz bandwidth a bandwidth of 6000 Hz must be selected. In addition in SSB modes a 300 Hz highpass filter is applied.

12: FM deviation

This is the maximum FM deviation in Hz for a +/- 1.0 amplitude modulating signal. Therefore it is active only for NFM types of sample formats.

13: AM percentage modulation

this is the AM percentage modulation when a +/- 1.0 amplitude modulating signal is applied. Therefore it is active only for S16LE AM Mono sample format.

14: Squelch

The slider sets the squelch power threshold based on channel input power (2). At the right of the slider the value in dB is displayed.

The button sets the delay after which a signal constantly above the squelch threshold effectively opens the squelch. The same delay is used for squelch release. The delay in milliseconds is displayed at the right of the button.

15: Input and output Gains

Input ("Gi") and output ("Go") gains are placed next to each other.

The input gain is applied to samples received from UDP. The gain value appears at the right of the button.

The output gain is applied to the samples just before they are filtered and sent int the channel. The gain value appears at the right of the button.

16: Volume gauge

This is the amplitude volume gauge (VU meter) and should not exceed 100%

17: Input buffer gauge

This gauge shows the percentage of deviation from a R/W pointer distance of half the buffer size. Ideally this should stay in the middle and no bar should appear. The percentage value appears at the right of the gauge and can vary from -50 to +50 (0 is the middle).

There is an automatic correction to try to maintain the half buffer distance between read and write pointers. This adjust the sample rate and therefore some wiggling around the nominal sample rate can occur. This should be hardly noticeable for most modulations but can be problematic with very narrowband modulations like WSPR.

The buffer consists in 512 bytes frames so that a normalized UDP block can be placed in one frame. Half the number of frames is calculated as the sample rate divided by 375. This results in a fixed average delay 0f 341 ms for sample rates of 48 kS/s and above.

18: Reset input buffer R/W pointers

Resets the read and write pointers at their ideal position that is read at start and write at the middle of the buffer. This may cause occasional mess-up with the modulating signal until the read pointer reaches the middle of the buffer.

19: Automatic R/W balance toggle

This button enables or disables the automatic read / write pointers balance compensation so that they are always about half a buffer apart. The compensation adjust the sample rate around nominal input sample rate and can cause some tone wiggle on very narrowband modulations. Therefore you can switch it off at the expense of a small buffer section overlap or drop. With an input from the DSD demodulator it can be better to switch it off since the input samples flow is discontinuous and the automatic compensation may not have the time to adjust.

20: Apply (validation) button

The changes in the following items only become effective when this button is pressed:

  • Interface address and port (5)
  • Multicast join/leave (6)
  • Multicast address (7)
  • Output sample rate (8)
  • Samples format (9)
  • RF bandwidth (11)
  • FM deviation (12)
  • AM percentage (13)

When any item of these items is changed the button is lit in green until it is pressed.

21: Spectrum display

This is the spectrum display of the channel signal before filtering. Please refer to the Spectrum display description for details.

This spectrum is centered on the center frequency of the channel (center frequency of reception + channel shift) and is that of a complex signal i.e. there are positive and negative frequencies. The width of the spectrum is proportional of the sample rate. That is for a sample rate of S samples per seconds the spectrum spans from -S/2 to +S/2 Hz.