1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-25 09:18:54 -05:00
sdrangel/plugins/channelrx/freqscanner
2024-11-09 18:46:38 +01:00
..
CMakeLists.txt Merge pull request #2252 from srcejon/freq_scanner 2024-09-13 21:07:04 +02:00
freqscanner.cpp Freuqency Scanner: Add multiplex mode. 2024-11-05 10:09:09 +00:00
freqscanner.h Freuqency Scanner: Add multiplex mode. 2024-11-05 10:09:09 +00:00
freqscanneraddrangedialog.cpp FreqScanner: Add HF ATC channels preset. 2024-06-21 10:24:36 +01:00
freqscanneraddrangedialog.h Rewriting of copyright notices for plugins/channelrx. Part of #1893 2023-11-18 12:02:48 +01:00
freqscanneraddrangedialog.ui FreqScanner: Add HF ATC channels preset. 2024-06-21 10:24:36 +01:00
freqscannerbaseband.cpp Frequency Scanner: initialize pointer to FrequencyScanner. Fixes #2262 2024-10-04 20:50:36 +02:00
freqscannerbaseband.h Frequency Scanner: initialize pointer to FrequencyScanner. Fixes #2262 2024-10-04 20:50:36 +02:00
freqscannergui.cpp Freuqency Scanner: Add multiplex mode. 2024-11-05 10:09:09 +00:00
freqscannergui.h FreqScanner: Add API action to run scan. Add scan results to channel report. 2024-06-21 10:24:16 +01:00
freqscannergui.ui Fix path to resources. 2024-11-05 10:38:13 +00:00
freqscannerplugin.cpp Updated versions and changelogs 2024-11-09 18:46:38 +01:00
freqscannerplugin.h Rewriting of copyright notices for plugins/channelrx. Part of #1893 2023-11-18 12:02:48 +01:00
freqscannersettings.cpp Stop scanning when Tune menu selected. 2023-12-01 12:47:50 +00:00
freqscannersettings.h Freuqency Scanner: Add multiplex mode. 2024-11-05 10:09:09 +00:00
freqscannersink.cpp Fix PR comments 2024-09-09 19:17:30 +03:00
freqscannersink.h Fix PR comments 2024-09-09 19:17:30 +03:00
freqscannerwebapiadapter.cpp Rewriting of copyright notices for plugins/channelrx. Part of #1893 2023-11-18 12:02:48 +01:00
freqscannerwebapiadapter.h Rewriting of copyright notices for plugins/channelrx. Part of #1893 2023-11-18 12:02:48 +01:00
readme.md Freuqency Scanner: Add multiplex mode. 2024-11-05 10:09:09 +00:00

Frequency Scanner Plugin

Introduction

This plugin can be used to scan a range of frequencies looking for a transmission and then tune another channel (such as an AM or DSD Demod) to that frequency.

Tutorial Video

With the Run Mode (11) set to Multiplex, it can also repeatedly cycle through frequencies listening for a fixed period of time. This can be used, for example, to receive both AIS and ADS-B data via a single SDR.

Note that when scanning, the device centre frequency will often not be set exactly to the frequencies you enter. The Frequency Scanner will typically try to set the device centre frequency in order to scan as many frequencies simultanously as possible, and also avoid having a DC offset within the bandwidth of a scanned frequency. The demodulator channel's frequency offset option will be used so that it receives at the specified frequency.

Interface

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

Frequency Scanner plugin GUI

1: Channel

Specifies the channel (such as an AM, NFM or DSD Demod), by device set and channel index, that should be tuned to the active frequency.

2: Minimum frequency shift from center frequency of reception for channel

Use the wheels of keyboard to adjust the minimum frequency shift in Hz from the center frequency of reception for the channel (1).

This setting is typically used to avoid having the channel (1) centered at DC, which can be problematic for some demodulators used with SDRs with a DC spike.

3: Active frequency power

Average power in dB relative to a +/- 1.0 amplitude signal received for the active frequency. This is set to '-' while scanning.

4: TH - Threshold

Power threshold in dB that determines whether a frequency is active or not.

5: t_delta_f - Tune time

Specifies the time in milliseconds that the Frequency Scanner should wait after adjusting the device center frequency, before starting a measurement. This time should take in to account PLL settle time and the device to host transfer latency, so that the measurement only starts when IQ data that corresponds to the set frequency is being received.

6: t_s - Scan time

Specifies the time in seconds that the Frequency Scanner will average its power measurement over.

7: t_rtx - Retransmission Time / t_rx Receive Time

t_rtx: When Run Mode (11) is not Multiplex, specifies the time in seconds that the Frequency Scanner will wait after the power on the active frequency falls below the threshold, before restarting scanning. This enables the channel to remain tuned to a single frequency while there is a temporary break in transmission.

t_rx: When Run Mode (11) is Multiplex, specifies the time in seconds the channel will be tuned to each frequency.

8: Ch BW - Channel Bandwidth

This specifies the bandwidth of the channels to be scanned.

9: Pri - Priority

Specifies which frequency will be chosen as the active frequency, when multiple frequencies exceed the threshold (4):

  • Max power: The frequency with the highest power will be chosen
  • Table order: The frequency first in the frequency table (14) will be chosen.

10: Meas - Power Measurement

Specifies how power is measured. In both cases, a FFT is used. FFT size is typically the same as used for the Main Spectrum, but may be increased to ensure at least 8 bins cover the channel bandwidth (8). The first and last bins are excluded from the measurement (to reduce spectral leakage from adjacent channels):

  • Peak: Power is the highest value in all of the bins, averaged over the scan time (6).
  • Total: Power is the sum of power in all of the bins, averaged over the scan time (6).

Peak can be used when you wish to set the threshold roughly according to the level displayed in the Main Spectrum. Total is potentially more useful for wideband signals, that are close to the noise floor.

11: Run Mode

Specifies the run mode:

  • Single: All frequencies are scanned once. Channel (1) is tuned to the active frequency at the end of the scan. The scan does not repeat.
  • Continuous: All frequencies scanned, with channel (1) being tuned to active frequency at the end of the scan. Scan repeats once the power on the active frequency falls below the threshold (4) for longer than the retransmission time (7).
  • Scan only: All frequencies are scanned repeatedly. The channel will not be tuned. This mode is just for counting how often frequencies are active, which can be seen in the Active Count column in the frequency table (14).
  • Multiplex: Frequencies will be stepped through sequentially and repeatedly, with the channel (1) being tuned for the time specified by t_rx (7).

12: Start/Stop Scanning

Press this button to start or stop scanning.

13: Status Text

Displays the current status of the Frequency Scanner.

  • "Scanning": When scanning for active frequencies.
  • Frequency and annotation for active frequency.

14: Frequency Table

The frequency table contains the list of frequencies to be scanned, along with results of a scan. The columns are:

  • Freq (Hz): Specifies the channel center frequencies to be scanned. Values should be entered in Hertz.
  • Annotation: An annotation (description) for the frequency, that is obtained from the closest matching annotation marker in the Main Spectrum.
  • Enable: Determines whether the frequency will be scanned. This can be used to temporarily disable frequencies you aren't interested in.
  • Power (dB): Displays the measured power in decibels from the last scan. The cell will have a green background if the power was above the threshold (4).
  • Active Count: Displays the number of scans in which the power for this frequency was above the threshold (4). This allows you to see which frequencies are commonly in use.
  • Notes: Available for user-entry of notes/information about this frequency.
  • Channel: Specifies the channel that should be tuned when this frequency is active. If blank, the common Channel setting (1) is used.
  • Ch Bw (Hz): Specifies the channel bandwidth in Hertz. If blank, the common Channel Bandwidth setting (8) is used.
  • TH (dB): Specifies the power threshold in dB that determines whether this frequency is active or not. If blank, the common Threshold setting (4) is used.
  • Sq (dB): Specifies a squelch level in dB that will be applied to the Channel when active. If blank, the squelch level will not be changed.

When an active frequency is found after a scan, the corresponding row in the table will be selected.

Right clicking on a cell will display a popup menu:

  • Copy contents of cell to clipboard.
  • Enable all rows.
  • Disable all rows.
  • Remove selected rows.
  • Tune selected channel (1) to the frequency in the row clicked on.

15: Add

Press to add a single row to the frequency table (14).

16: Add Range

Press to add a range of frequencies to the frequency table (14). A dialog is displayed with start and stop frequencies, as well as a step value. The step value should typically be an integer multiple of the channel bandwidth (8).

17: Remove

Removes the selected rows from the frequency table (14). Press Ctrl-A to select all rows.

18: Remove Inactive

Removes all rows with Active Count of 0.

19: Up

Moves the selected rows up the frequency table (14).

20: Down

Moves the selected rows the the frequency table (14).

21: Clear Active Count

Press to reset the value in the Active Count column to 0 for all rows.

API

Full details of the API can be found in the Swagger documentation. Below are a few examples.

To run a frequency scan:

curl -X POST "http://127.0.0.1:8091/sdrangel/deviceset/0/channel/0/actions" -d '{  "channelType": "FreqScanner",  "direction": 0,  "originatorDeviceSetIndex": 0,  "originatorChannelIndex": 0,  "FreqScannerActions": { "run": 1 }}'

To get the results of the last scan:

curl -X GET "http://127.0.0.1:8091/sdrangel/deviceset/0/channel/0/report"