1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-24 10:50:29 -05:00
sdrangel/plugins/channeltx/modatv
2017-03-17 19:56:35 +01:00
..
atvmod.cpp ATV Modulator: use interpolated sample rate for SSB/DSB filters 2017-03-17 19:56:35 +01:00
atvmod.h ATV Modulator: use assymetrical filter for vestigial sideband modulation 2017-03-16 10:11:03 +01:00
atvmodgui.cpp ATV Modulator: use consistent opposite sideband bandwidth 2017-03-16 12:01:46 +01:00
atvmodgui.h ATV Modulator: UI: reverse opposite sideband slider 2017-03-16 10:44:31 +01:00
atvmodgui.ui ATV Modulator: UI: reverse opposite sideband slider 2017-03-16 10:44:31 +01:00
atvmodplugin.cpp ATV Modulator: SSB support in GUI 2017-03-15 05:05:42 +01:00
atvmodplugin.h ATV Modulator: very basically works 2017-03-06 03:39:34 +01:00
CMakeLists.txt ATV Modulator: implement opencv 2017-03-08 08:36:28 +01:00
modatv.pro ATV Modulator: still image loader 2017-03-08 19:04:10 +01:00
readme.md ATV Modulator: full SSB support 2017-03-15 06:10:39 +01:00

ATV modulator plugin

Introduction

This plugin can be used to generate an analog TV signal mostly used in amateur radio. It is limited to black and white images as only the luminance (256 levels) is supported.

There is no sound either. You coud imagine using any of the plugins supporting audio to create a mixed signal. This is not working well however for various reasons. It is better to use two physical transmitters and two physical receivers.

In practice 4 MS/s is the lowest sample rate that produces a standard image quality. Lower sample rates down to 1 MS/s produce low quality images that may still be acceptable for experiments.

Interface

ATV Modulator plugin GUI

1: Frequency shift from center frequency of reception direction

The "+/-" button on the left side of the dial toggles between positive and negative shift.

2: Frequency shift from center frequency of reception value

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.

3: Channel power

Average total power in dB relative to a ±1.0 amplitude signal generated in the pass band.

4: Channel mute

Use this button to toggle mute for this channel. The radio waves on the icon are toggled on (active) and off (muted) accordingly. Default is channel active.

5: Modulation type

The video signal can modulate the carrier in the following modes:

  • AM: Amplitude modulation. Modulation index is 90%.
  • FM: Frequency modulation. Excursion is half the bandwidth available given the channel sample rate. e.g. for 4 MS/s sample rate this is ±1 MHz (2 MHz total)
  • USB: SSB upper side band: video signal is transposed only in positive frequencies including DC component
  • LSB: SSB lower side band: video signal is transposed only in megative frequencies excluding DC component

6: RF bandwidth

This is the bandwidth in MHz of the channel filter when the interpolator is engaged. If the sink sample rate is an integer multiple of the base rate that depends on the standard then there is no interpolation else the channel rate is set to the closest integer multiple of the base rate below the sink sample rate.

The base rate depending on the standard is:

  • PAL625L: 1 MS/s
  • PAL525L: 1.008 MS/s

The modulating video signal sample rate is the same as the channel sample rate hence for example with a channel sample rate of 4 MS/s a video sample will last 1/4 = 0.25 μs. In PAL625L a complete horizontal line lasts 64 μs hence it will be composed of 64 × 4 = 256 samples while the useful image line that lasts about 52 μs will be composed of 52 × 4 = 204 samples or points.

When no interpolation and hence no soft RF filtering in the channel takes place then filtering relies on the hardware. The hardware filter bandwidth can be set in the sink plugin.

7: Video signal level meter

This is the level meter fed with the video signal. Units are the percentage of the 0.0 to 1.0 modulating video signal.

8: TV Standard

This is the analog TV standard in use. Use the checkbox to choose between:

  • PAL625L: this is the PAL 625 lines standard with 25 FPS. Since only black and white (luminance) is supported this corresponds to any of the B,G,I or L PAL standards
  • PAL525L: this is the PAL 525 lines standard with 30 FPS. This corresponds to the PAL M standard.

9: Input source

This combo box lets you choose between various inputs for the video signal:

  • Uniform: the image has a uniform luminance level given by the luminance level adjusted with the button next (10)
  • H Bars: horizontal bars from black level on the left to white level on the right
  • V Bars: vertical bars from black level on the top to white level on the bottom
  • Chess: chessboard pattern alternating black squares and squares with the luminance level adjusted with button (10)
  • H Grad: horizontal gradient from black level on the left to white level on the right
  • V Grad: vertical gradient from black level on the top to white level on the bottom
  • Image: still image read from the file selected with button (13). If no image is selected an uniform image is sent with the luminance adjusted with button (10)
  • Video: video file read from the file selected with button (14). If no image is selected an uniform image is sent with the luminance adjusted with button (10). Buttons (15) and (16) control the play.
  • Camera: video signal from a webcam or supported video source connected to the system. If no source is selected an uniform image is sent with the luminance adjusted with button (10). Button (21) selects the camera source. Button (20) plays or stops the camera on a still image.

10. Luminance level

This button lets you adjust the luminance level of the "blank" screens displays, the lighter squares on the chessboard and the overlay text.

11. Show overlay text toggle

This button toggles the display of an overlay text on a still image, or a video signal from a file or a camera. Note that for still images you will have to toggle off/on this button to take any change of text or text brightness into account.

12. Overlay text

In this textbox you can type the text that will be displayed as overlay when button (11) is engaged. The brightness level of the text is selected with the luminance adjust button (10). The number of characters is limited to 12.

13. Still picture file select

Clicking on this button will open a file dialog to let you choose an image file for still image display. When the dialog is closed and the choice is validated the name of the file will appear on the space at the right of the button.

14. Video file select

Clicking on this button will open a file dialog to let you choose a video file for video play. When the dialog is closed and the choice is validated the name of the file will appear on the space at the right of the button.

15. Play loop video

Use this button to toggle on/off playing the video file in a loop

16. Play/Pause video

Use this button to toggle on/off the video file play. When play stops the current image is displayed as a still image. When video is stopped the button is dark and a play (►) icon is displayed on the button. When video runs the button is lit and a pause (▋▋) icon is displayed on the button.

17. Current video position

This is the current video file play position in time units relative to the start

18. Video file length

This is the video file play length in time units

19. Video file position slider

This slider can be used to randomly set the currennt position in the file when file play is in pause state (button 16). When video plays the slider moves according to the current position.

20. Play/Pause camera

Use this button to toggle on/off the camera play. When play stops the current image is displayed as a still image. When camera is stopped the button is dark and a play (►) icon is displayed on the button. When camera runs the button is lit and a pause (▋▋) icon is displayed on the button.

On Linux systems when the play button is engaged for the first time the FPS of the camera is scanned which can take some time (100 frames are read). A message box appears while the operation is running.

21. Camera select

Use this combo to select the camera source when more than one is available. the number corresponds to the index of the camera during the camera scan at the startup of the plugin instance. A maximum of 4 cameras are scanned in whichever order presented by the system.

22. Camera device number

This is the device number used by OpenCV which on Linux systems correspond to the /dev/video device number. i.e. "#0" for /dev/video0.

23. Camera FPS

This is the camera FPS. On Windows there is no dynamic FPS check and a fixed 5 FPS is set for each camera. On Linux 90% of the calculated FPS is divided by the number of scanned cameras to give the final FPS. This is an attempt to avoid congestion when multiple cameras are available however this was only tested with two cameras.

24. Camera image size

This is the width x height camera iamge size in pixels