diff --git a/doc/img/ChAnalyzerNG_plugin_ampOffset.png b/doc/img/ChAnalyzerNG_plugin_ampOffset.png new file mode 100644 index 000000000..e07cd277b Binary files /dev/null and b/doc/img/ChAnalyzerNG_plugin_ampOffset.png differ diff --git a/doc/img/ChAnalyzerNG_plugin_ampOffset.xcf b/doc/img/ChAnalyzerNG_plugin_ampOffset.xcf new file mode 100644 index 000000000..907eb4ac9 Binary files /dev/null and b/doc/img/ChAnalyzerNG_plugin_ampOffset.xcf differ diff --git a/doc/img/ChAnalyzerNG_plugin_ampScale.png b/doc/img/ChAnalyzerNG_plugin_ampScale.png new file mode 100644 index 000000000..9e5eafb9f Binary files /dev/null and b/doc/img/ChAnalyzerNG_plugin_ampScale.png differ diff --git a/doc/img/ChAnalyzerNG_plugin_ampScale.xcf b/doc/img/ChAnalyzerNG_plugin_ampScale.xcf new file mode 100644 index 000000000..e89889f4f Binary files /dev/null and b/doc/img/ChAnalyzerNG_plugin_ampScale.xcf differ diff --git a/plugins/channelrx/chanalyzer/readme.md b/plugins/channelrx/chanalyzer/readme.md index e7c994994..954f0e15b 100644 --- a/plugins/channelrx/chanalyzer/readme.md +++ b/plugins/channelrx/chanalyzer/readme.md @@ -312,31 +312,74 @@ This is for future use when more than one incoming complex signals can be applie

6. Amplitude adjustment

-This slider lets you adjust the amplitude scale. The full scale value appears on the left of the slider. The unit depends on the projection. +The amplitude range (vertical scale) can be set to any value from 1e-10 to 9.999e+10. Values are entered as mantissa (6.3 and 6.4) and exponent (6.5) values. + +I/Q signal range is +/-1 however values larger than 1 are accomodated for the general usage of the scope in other plugins. + +When displayed signal can be negative (+/- scale) the range is -range to +range. When displayed signal is positive (ex: magnitudes) the range is 0 to 2×range. + +![Channel Analyzer NG plugin amplitude scale control](../../../doc/img/ChAnalyzerNG_plugin_ampScale.png) + +

6.1. Amplitude scale reset

+ +Push this button to reset amplitude scale to 1. + +

6.2. Mantissa display

+ +The amplitude range is M×10E. This displays the M value. + +

6.3 Mantissa fine control

+ +This slider sets the decimal digits of the mantissa from .000 to .999 + +

6.4 Mantissa coarse control

+ +This dial button sets the integer part of the mantissa from 1 to 9. + +

6.5 Exponent control

+ +This slider sets the exponent from -10 to +10. The value is displayed at the left of the slider in exponent notation. + +

6.6 Unit multiplier on vertical scale

+ +This displays the unit multiplier for values on the vertical scale of the display. + + - **p**: pico (×10-12) + - **n**: nano (×10-9) + - **μ**: micro (×10-6) + - **m**: milli (×10-3) + - **-**: none (×1) + - **k**: kilo (×103) + - **M**: mega (×106) + - **G**: giga (×109)

7. Offset adjustment

-This pair of sliders let you offset the trace vertically. The offset value from reference appears on the left of the slider. The reference is either: +The amplitude range can be offset by any value from -5×10-10 to 5×1010. - - central zero value for Real, Imag, Phi and dPhi projections - - bottom zero value for MagLin projection - - bottom -200 dB value for MagDB projection +I/Q signal range is +/-1 however values larger than 1 are accomodated for the general usage of the scope in other plugins. -The top slider is a coarse adjustment. Each step moves the trace by an amount that depends on the projection type: +![Channel Analyzer NG plugin amplitude offset control](../../../doc/img/ChAnalyzerNG_plugin_ampOffset.png) - - Real, Imag: 0.01 - - Mag: 0.005 - - MagSq: 0.005 - - MagDB: 1 dB - - Phi, dPhi: 0.01 +

7.1. Amplitude offset reset

-The bottom slider is a fine adjustment. Each step moves the trace by an amount that depends on the projection type: +Push this button to reset amplitude offset to 0. - - Real, Imag: 50.0E-6 - - Mag: 25.0sE-6 - - MagSq: 25.0sE-6 - - MagDB: 0.01 dB - - Phi, dPhi: 50.0E-6 +

7.2. Mantissa display

+ +The amplitude offset is M×10E. This displays the M value. + +

7.3 Mantissa fine control

+ +This slider sets the decimal digits of the mantissa from .000 to 0.999 and jump to next unit (so 5.000 can be reached) + +

7.4 Mantissa coarse control

+ +This dial button sets the integer part of the mantissa from -5 to 4. + +

7.5 Exponent control

+ +This slider sets the exponent from -10 to +10. The value is displayed at the left of the slider in exponent notation.

8. Trace delay adjustment

diff --git a/sdrgui/gui/glscopegui.cpp b/sdrgui/gui/glscopegui.cpp index 7d518f774..0c4ee0980 100644 --- a/sdrgui/gui/glscopegui.cpp +++ b/sdrgui/gui/glscopegui.cpp @@ -854,6 +854,16 @@ void GLScopeGUI::on_traceMode_currentIndexChanged(int index) changeCurrentTrace(); } +void GLScopeGUI::on_ampReset_clicked(bool checked) +{ + (void) checked; + ui->amp->setValue(0); + ui->ampCoarse->setValue(1); + ui->ampExp->setValue(0); + setAmpScaleDisplay(); + changeCurrentTrace(); +} + void GLScopeGUI::on_amp_valueChanged(int value) { (void) value; @@ -875,6 +885,16 @@ void GLScopeGUI::on_ampExp_valueChanged(int value) changeCurrentTrace(); } +void GLScopeGUI::on_ofsReset_clicked(bool checked) +{ + (void) checked; + ui->ofsFine->setValue(0); + ui->ofsCoarse->setValue(0); + ui->ofsExp->setValue(0); + setAmpOfsDisplay(); + changeCurrentTrace(); +} + void GLScopeGUI::on_ofsCoarse_valueChanged(int value) { (void) value; @@ -1526,12 +1546,12 @@ void GLScopeGUI::setTraceUI(const GLScopeSettings::TraceData& traceData) ui->ampExp->setValue(ampExp); setAmpScaleDisplay(); - double ofsValue = traceData.m_amp; + double ofsValue = traceData.m_ofs; int ofsExp; double ofsMant = CalcDb::frexp10(ofsValue, &ofsExp) * 10.0; int ofsCoarse = (int) ofsMant; int ofsFine = round((ofsMant - ofsCoarse) * 1000.0); - ofsExp -= 1; + ofsExp -= ofsMant == 0 ? 0 : 1; ui->ofsFine->setValue(ofsFine); ui->ofsCoarse->setValue(ofsCoarse); ui->ofsExp->setValue(ofsExp); diff --git a/sdrgui/gui/glscopegui.h b/sdrgui/gui/glscopegui.h index f8494a115..c41f361da 100644 --- a/sdrgui/gui/glscopegui.h +++ b/sdrgui/gui/glscopegui.h @@ -219,9 +219,11 @@ private slots: void on_traceDown_clicked(bool checked); void on_traceStream_currentIndexChanged(int index); void on_traceMode_currentIndexChanged(int index); + void on_ampReset_clicked(bool checked); void on_amp_valueChanged(int value); void on_ampCoarse_valueChanged(int value); void on_ampExp_valueChanged(int value); + void on_ofsReset_clicked(bool checked); void on_ofsCoarse_valueChanged(int value); void on_ofsFine_valueChanged(int value); void on_ofsExp_valueChanged(int value); diff --git a/sdrgui/gui/glscopegui.ui b/sdrgui/gui/glscopegui.ui index ed12f2d8a..23f84497b 100644 --- a/sdrgui/gui/glscopegui.ui +++ b/sdrgui/gui/glscopegui.ui @@ -825,12 +825,18 @@ kS/s - + + + + 22 + 22 + + - Vertical range + Vertical range reset - A: + A @@ -952,7 +958,7 @@ kS/s - Vertical range value + Unit multiplier on vertical scale - @@ -974,12 +980,18 @@ kS/s - + + + + 22 + 22 + + - Vertical offset + Vertical offset reset - O: + O