1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-24 10:50:29 -05:00
sdrangel/plugins/channelrx/localsink
Jon Beniston 0dd466a900 Add DialogPositioner to ensure dialogs are fully on screen and remain on
screen when screen orientation changes.
Add DialPopup to allow dials to adjusted with a slider, which is easier
on touchscreens.
Add TableTapAndHold to support table context menus on touchscreens.
2022-12-20 10:31:15 +00:00
..
CMakeLists.txt Update CMakeLists.txt to support both Qt5 and Qt6. Add option ENABLE_QT6 2022-11-17 14:34:54 +00:00
localsink.cpp Local Sink: updated API and documentation 2022-12-17 07:01:49 +01:00
localsink.h Local Sink: added FFT filter bands 2022-12-17 07:01:49 +01:00
localsinkbaseband.cpp Local Sink: added FFT filter bands 2022-12-17 07:01:49 +01:00
localsinkbaseband.h Local Sink: added FFT filter bands 2022-12-17 07:01:49 +01:00
localsinkgui.cpp Add DialogPositioner to ensure dialogs are fully on screen and remain on 2022-12-20 10:31:15 +00:00
localsinkgui.h Local Sink: added spectrum scale relative frequemcy display option 2022-12-17 07:01:49 +01:00
localsinkgui.ui Local Sink: added spectrum scale relative frequemcy display option 2022-12-17 07:01:49 +01:00
localsinkplugin.cpp Updated versions and changelogs 2022-12-17 10:30:08 +01:00
localsinkplugin.h Channel plugins: use specialized ChannelGUI superclass. Handle GUI lifecycle in MainWindow 2020-10-04 22:16:09 +02:00
localsinksettings.cpp Local Sink: implemented reverse FFT bands 2022-12-17 07:01:49 +01:00
localsinksettings.h Local Sink: implemented reverse FFT bands 2022-12-17 07:01:49 +01:00
localsinksink.cpp Local Sink: implemented reverse FFT bands 2022-12-17 07:01:49 +01:00
localsinksink.h Local Sink: added FFT filter bands 2022-12-17 07:01:49 +01:00
localsinkwebapiadapter.cpp Fixed -Wunused-parameter warnings 2020-11-14 11:13:32 +01:00
localsinkwebapiadapter.h
localsinkworker.cpp LocalSink: refactored LocalSinkThread to LocalSinkWorker object moved to thread. Equivalent to FileInput changes 2020-07-11 10:37:33 +02:00
localsinkworker.h LocalSink: refactored LocalSinkThread to LocalSinkWorker object moved to thread. Equivalent to FileInput changes 2020-07-11 10:37:33 +02:00
readme.md Local Sink: updated API and documentation 2022-12-17 07:01:49 +01:00

Local sink channel plugin

Introduction

This plugin sends I/Q samples from the baseband to a Local Input plugin source in another device set. It is basically the same as the Remote Sink channel plugin but pipes the samples internally instead of sending them over the network.

It may be used when you want to "zoom in" a particular area of the baseband. For example you would like to receive both the SSB section and the repeater section of the amateur 2m band (Region 1) using a single Rx device for example the RTL-SDR. You would then run the RTL-SDR at 2.4 MS/s without decimation. This provides a 2.4 MHz bandwidth that when centered on 145 MHz spans more than the entire 2m band (Region 1).

You can then use a Local Sink decimating by 8 and centered on 144.250 MHz (Position code 2, filter chain code LLH) thus spanning 300 kHz from 144.150 to 144.400 MHz. You can use another Local Sink decimating by 4 and centered on 145.600 MHz (Position code 7, filter chain code HC) thus spanning 600 kHz from 145.300 to 145.900 MHz and including the entire repeater band.

These Local Sinks can then be coupled with two Local Input device source plugins in two different device sets. In these device sets you will get a better view of the respective sub bands.

Note that because it uses only the channelizer half band filter chain to achieve decimation and center frequency shift you have a limited choice on the center frequencies that may be used (similarly to the Remote Sink). The available center frequencies depend on the baseband sample rate, the channel decimation and the filter chain that is used so you have to play with these parameters to obtain a suitable center frequency and pass band.

In addition it has some DSP stages that apply some transformations before sending the samples to the Local Input device that can be toggled vua (A.7.3):

  • A gain stage which gain in dB is controlled by (A.7.4)
  • A FFT multiband filter controlled by (A.7.6) to (A.13)

⚠ Important warning When closing the application or before closing the local input device the local sink is connected it is recommended to stop processing on the local sink (7). Depending on the sequence by which the devices have been created closing the local input while the local sink runs may crash the program.

Interface

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

Local sink channel plugin GUI

  • A: settings section
  • B: channel spectrum display (not detailed here)

Local sink channel plugin GUI Settings

A.1: Decimation factor

The device baseband can be decimated in the channel and its center can be selected with (5). The resulting sample rate of the I/Q stream sent over the network is the baseband sample rate divided by this value. The value is displayed in (2).

A.2: I/Q stream sample rate

This is the sample rate in kS/s of the I/Q stream sent to the Local Input source instance.

A.3: Half-band filters chain sequence

This string represents the sequence of half-band filters used in the decimation from device baseband to resulting I/Q stream. Each character represents a filter type:

  • L: lower half-band
  • H: higher half-band
  • C: centered

A.4: Center frequency shift

This is the shift of the channel center frequency from the device center frequency. Its value is driven by the device sample rate , the decimation (1) and the filter chain sequence (5).

A.5: Absolute or relative frequency scale display

Toggles channel spectrum (B) absolute or relative (to the center) frequency scale display

A.6: Half-band filter chain sequence

The slider moves the channel center frequency roughly from the lower to the higher frequency in the device baseband. The number on the right represents the filter sequence as the decimal value of a base 3 number. Each base 3 digit represents the filter type and its sequence from MSB to LSB in the filter chain:

  • 0: lower half-band
  • 1: centered
  • 2: higher half-band

A.7: Global settings

Local sink channel plugin GUI Settings

A.7.1: Local Input source index

This selects the index of the Local Input source where to send the I/Q samples. The list can be refreshed with the next button (7)

A.7.2: Start/stop processing

Use this button to start or stop processing.

A.7.3: DSP functions

Togles DSP functions (gain and FFT filter)

A.7.4: Gain

This is the gain in dB applied to the channel

A.7.5: FFT filter

Toggles FFT multiband filter

A.7.6: FFT filter size

This is the FFT size of the multiband FFT filter

A.7.7: FFT filter window

This is the window type applied to the FFT filter

A.7.8: Reverse filter bands

When engaged the FFT filter bands are defined as reject bands instead of pass bands

A.8: FFT band index

FFT band selection. Index is displayed in (A.10)

A.9: FFT band add/delete

Add (+) new band or remove (-) selected band

A.10: Current FFT band index

Displays the index of the selected FFT band. Displays "0" if no FFT bands are available.

A.11: FFT band lower frequency relative position

This is the relative position to the center of the passband of the lower bound of the FFT band. The actual frequency shift from center is displayed on the right.

A.12: FFT band relative bandwidth or higher boumd

This is the relative badnwidth of the FFT band. The value displayed on the right is either the bandwidth or the higher frequency band depending on the (A.13) button setting.

A.13: Toggle bandwidth or higher frequency bound

Toggles display on (A.12)