ik1xpv / ExtIO_sddc

ExtIO_sddc.dll - BreadBoard RF103 / HDSDR
Other
72 stars 26 forks source link

Determine and report maximum ADC level - for clipping/oversteering indication #140

Open hayguen opened 3 years ago

hayguen commented 3 years ago

HDSDR shows the RF level in dBFS - assuming, that the I/Q samples it receives are really the sampled values. strong signals, might get filtered out with the DDC step before HDSDR gets the I/Q data and computes the RF dBFS value shown in the upper right corner of the RF spectrum .. which now might be too low not indicating the correct value ..

howard0su commented 3 years ago

How can I report +20db always on LNA that RX888 has? or HDSDR doesn't care about dBm at all?

Current code has a gain manually calibrate (Oscar did that).

Shall I use a fixed gain like 1.0f/32767/1000? I tried that and HDSDR reports -50dbFS, which is far above LTC2208 datasheet which is about -110dbFS.

hayguen commented 3 years ago

don't think, that HDSDR cares for any "dBm" - which is more than unknown if you have different cable length or have switched in an attenuator or external LNA ..

manual calibration is available with Options (F7) / "Calibration Settings" in the "S-Meter Calibration" tab. clicking on the power value below the S-meter switches "S" values to plain "dB" values.

seeing the text field below "Last Calibration in that dialog:

Time:    20210107_101612Z
Input:   ExtIO_SDDC.dll
LO:      103.000.000Hz
RF-Gain: +29,7dB
IF-Gain: +11,2dB

containing LO frequency and the RF/IF Gain values .. reminds me on how many premises the dBm power depends on - especially with the R820T2-tuner on VHF!

HF with direct sampling might be easier .. we could suggest a new ExtIO function delivering an initial "Correction Value [dBm]" for the S-meter calibration.

my issue is independet from power .. to allow exact determination of the ADCs clipping/oversteering in dBFS - similar to https://github.com/ik1xpv/ExtIO_sddc/pull/98

hayguen commented 3 years ago

additional note on

1.0f/32767/1000

the ExtIO does deliver 32-bit float values. these values should be nearly +/-1.0 peak-to-peak for 0 dBFS, that when recording RF files in PCM16/PCM24 there is no dramatic loss of dynamic range. float values with abs() >= 1.0 would surely produce a mess! many audio editors also don't like such files.

too small values would produce/loose sensivity, cause of truncation of lower bits. also not good. suppose, Oscar's calibration solution might have this problem!?

hayguen commented 3 years ago

Mario (HDSDR) just wrote me to press Ctrl + Shift + J to get dBm values below the S-meter. couldn't find that in the menus/options in the GUI

from http://www.hdsdr.de/hdsdr_keyboard_shortcuts.htm:

Switch S-Meter and RF Spectrum compensation:
 off: without '= ' prepended to strength value (=default)
 on: with '= ' prepended to strength value,
   compensates strength value for RF/IF gain and attenuation - when known

there are some other interesting functions in the Lab section: http://www.hdsdr.de/hdsdr_keyboard_shortcuts.htm#lab have a look there!