From e04cc10ae64b2f59a9bf1c85494510958272a0bc Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 13 Feb 2021 10:01:55 +0100 Subject: [PATCH] Spectrum: final adjustments and updated documentation --- doc/img/MainWindow_spectrum_gui.png | Bin 20472 -> 17064 bytes doc/img/MainWindow_spectrum_gui.xcf | Bin 103477 -> 46285 bytes doc/img/MainWindow_spectrum_gui_A.png | Bin 0 -> 5974 bytes doc/img/MainWindow_spectrum_gui_A.xcf | Bin 0 -> 25836 bytes doc/img/MainWindow_spectrum_gui_B.png | Bin 0 -> 6259 bytes doc/img/MainWindow_spectrum_gui_B.xcf | Bin 0 -> 26583 bytes doc/img/MainWindow_spectrum_gui_C.png | Bin 0 -> 10883 bytes doc/img/MainWindow_spectrum_gui_C.xcf | Bin 0 -> 67066 bytes sdrgui/gui/glspectrumgui.cpp | 6 +- sdrgui/gui/glspectrumgui.ui | 131 ++++++++++++------------ sdrgui/readme.md | 139 +++++++++++++++++--------- 11 files changed, 160 insertions(+), 116 deletions(-) create mode 100644 doc/img/MainWindow_spectrum_gui_A.png create mode 100644 doc/img/MainWindow_spectrum_gui_A.xcf create mode 100644 doc/img/MainWindow_spectrum_gui_B.png create mode 100644 doc/img/MainWindow_spectrum_gui_B.xcf create mode 100644 doc/img/MainWindow_spectrum_gui_C.png create mode 100644 doc/img/MainWindow_spectrum_gui_C.xcf diff --git a/doc/img/MainWindow_spectrum_gui.png b/doc/img/MainWindow_spectrum_gui.png index aa2e13d749030f07fe84cd9b7ade4c7a7cb0095b..85390ab81badeb88ffc69ce827cf55666c4e3eaa 100644 GIT binary patch literal 17064 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 PoCq07`6mV9`u_h5$;nSP literal 20472 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 diff --git a/doc/img/MainWindow_spectrum_gui.xcf b/doc/img/MainWindow_spectrum_gui.xcf index 8eb84edaeb7a892b22ab1bae88a970855aca3ef4..98f58ff23bbaec69e0dbdbc862d1acb3190e947f 100644 GIT binary patch literal 46285 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 YfR=EC`=mT>w4xDfdD(ycRHN?y04W!cWdHyG literal 103477 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

n$m}gDQ`*TXAdWH=Yt(kIA|m^B$TEUqUX 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 diff --git a/doc/img/MainWindow_spectrum_gui_A.png b/doc/img/MainWindow_spectrum_gui_A.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3ed9bfe1c86be469e0ecfb4810c18427005df4 GIT binary patch literal 5974 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 VbfaI}0oto1x|&Zk%G7Ma{tIO2;m!a6 literal 0 HcmV?d00001 diff --git a/doc/img/MainWindow_spectrum_gui_A.xcf b/doc/img/MainWindow_spectrum_gui_A.xcf new file mode 100644 index 0000000000000000000000000000000000000000..6740c18adcdaf4120fb3077d4b3d9a59533b1b1a GIT binary patch literal 25836 zcmeHP3v?7!nyz$r9weOyAwW<<8qhWo14(!Va3Ct=}b?LX)n$|9>CV)gdfB zP0Qx&rgComk9+^RRk!~7?^l1_PNltewW-lsVOp1-ks(P^NE_^)go4|PP=-SZ34z@R zC=m~V3JYurPz+FFp^V}@wi^lM3Y6$dICPqIRc)nV6XR|ce%1!I-4OOP^ zJ+d$dYvO2Ad#$C?mR4D3FGn4=el?}Op{d4Zs$W%OFHen3si?HBs##TMN}(jJuCmNx zN~eDrsZd=uKy`+R{$X`v{c4NVzOvGkkq%OmkHm$vwJYrnCi_Zjm8~8vR#jBg+Zs%? zy@qG3Z(}@X%@*euvTV_cMC;Ax0;?#c29{jLvw3(b+AG zX76CM)XJ#XTgM3w=x8W-Yj7;}rWvr8bhv{p3<};o0%bh%^IBmKcNhxl(PS9sfk+cH z{8$Yiso_l;K1#zIHGH&&N6&%&Le>DC4ket|;qmY0JP_$FJyR;>gfzrnJy+)`IAG->tr4K`Co z7H>dBcE?xS8*Me{9+s62c1w-jQg3Ra?owk}S-BQ`*fhbmGHq==9;wVyZ%Zq;*V(KM z_EjrQH4Sy3?C-?r!INiXW=)@&KFhnAs83g~t#7bbG?{8_6%Ba2RgG!2tIBPr@}`xR zTDz62sN1UNRb_`013#x{g%_>a^lptH`~wFLHUs*K*hC%3hRH(N65^JoIN~KeEn$+f zr(Nez+IJg36DpA%p$^iv>i$jvFS0QhU)aoCO(8 zNJo5YUk4$r@ls!_mxM`Ihd+C!=fh1g2Br^{l;pGE{f(;Jdzd)ykGNxlooj&1C4Y$< z#@ZVs&t|eQQV6}jB=`T|iymi5sL*(ROMV8&Yf-Jgd7XSI$HZHDug2@uMn549FwEP? ze6Om6s~%ES-^6`&S&klV>FtT*IvD@5P(teY!NVlC-05<47VzGEua!wK4y0o=JlpEj zgRv({UT3R=r?w=WhOI#quEettaJY(5k3gC5=e)8y1pJ8%?_hOC48O1$`IBgz&1BrG zHo!+@qXsCQR)LmMQHog2X)C8&7>!KlG@Day7g@?>ZWr0gWo~DTXR;)<#C;3JxJXKN zB>NP-V>CS8$xwnxhf6Kk7lFPsMNgm)kb_HEUnD!Jm1HMNq%{d1dN0Ko&@q}tgk<&< zj%H*qNpKC|l0GH2RcZ-xi4O8z_VuJ>M+>+w^bzE{to5K|!up_*eGuJ8uZQ*bKjxQs z)-B^(KUK(jW@jA!azAF;D`My`jym|}tl5U|_X;ZP;}6#GFInBFA94CqPJcdt4XEN*Fn#~z0j`RDB*Uq}xln!-=r737a)e)=;pVrvaOZkZod{ zZ$dLd>U-JYXagkYh@d%3IAym5B?${|LgVej*;gGzd z((cen9^O_jk$;Qe2}|JH1V2n|F%Sm`kY`@CNz4cc32Ws!6Y0}M<64`Z89 zpn}KbW(d~!nDV&=hnS*Y~Gd%zQ&E3gbEQOR|OINs#{iyeh%4=3FUMMHt!P z7i`nC@~$@}uMFe+$Y1Z!C}4Zm& z0z?O0L=yfU=<6?j=Fx0pv%NxpAUd{z)s0W&^e#@*2e1Lv*sqyBi9fVS30&rOyw4d>yxLk_Q~@(Enw7yul%r?dKn#$pSI{0P|ng=>XVPe{G{FildxaqP5@(IugNhY zfAh&)O!Ca0WRIg6!*O6sT5(T-=bfMoBJhO1IPe?kNR_G0)RAO+9P zO=~-)X6Wly5GYO;0U^-LL4rVUV=6T5eHbjU36#m_#I$Zv0aVlhJ6X-__@+W3C)lQk zrJZ{Lc)@x~TvbVS0g?m0r`^$pOFJEO!6v{PV6i4r3gL@5VJYHXhhr})A?XKf8y+QG zB71d?FyO)<&)VkL6%H)qBq0+D*-JP?AFSov#g>WE{@Pf7UVh*dsCSvbz<^nN{%31C zwW(4B(X7C!&=e`AQK479{?qq(ex*DiEg4t!*2V5q8;oA)`4Zr}ccWB%*YnRWW+z53 zI8Um%3dXRQJm(c2CFNXzk<=glM0|mV!PM{mTRJ~*xYRf7SC^;4V8Yt5Rv;sfUbqjG zC_$5nXFj_d3{ZlDO}}(zoVr4kycR~tE4&N1xmqz0usP_Wj_~zB!6rsf&6Y96E2zMc zKUf)j0sahJu@2h|{1pXKzOWy8)du*C&rt*P3Zt1^p8776rwWqM~0oa&5$&P8A z0_mn0I0oCJvvx#*l6q~RpB#Pdpf3*Y#yeoLR|{T;zl8(LTLh?s23!gs5Y!K_ImPeM z^7X0~Siu6eH~nhOJVWbEu>j}LHh8W;Jxl9u=z!P>!+!p`gVu$RZ!wNT%<0z!LVF(< zVz$A!!2c0?j=M4Byb&A?1{9@na4Y zf=nnR>^SG%>pXtaNd@TtmMHWOht|U~Q%3zxafV9QQlD^=KXbeXr)SU;jp)|D|J1aP zMRkOve5*YC?B@t9I)zK2(X5{s2&5cz(L?xVpwWXnzc|dCO@h0(Z+7{y%K8qKmq zw&cveIS?oMNM^4tOJqyWZl1RRTbkPedkX2+Kz=eB7A2C_Xjmr6_UL~dk)RC5w91hr zo^Q64NsOAp0E>UuY-ILMuvd$?7Jn$%)9cNaG9Z^^lrrFzPV6Ut3;9XjpMZyf(0-6I z-A{xxr=M3LIs@CAX7t!7dKbE~1&j>Y1=AI%XKCFH9S~1)vY!{Ibs^+ijL~T8*9B_b z2YIwb=sGzlzHXGbD+$lyUPiN*tfL!dE^h=QwfcY{WylH3T%;e!%IwVPW+ijBLGGJ9%UUzFwy(xIYnER2WR_J-U+k$U%hbz? zdBx1d$_g{%iaA$3vq-6?I{VB*#ZI{@U4de8=?fHh$$bS%)eUu(x_qV7rO)qnFSow) z?k7La-+1bcw@)vP&nM4>9)gmuR8rdtT^_c}>vk_&|4iP}uk#zbm*jQ)%ZNO(S$~LZ z4$D(2XgixOS1D2Sm%7Q)lHZ;DgQsZy`?^!>eJz0i&St+M|SZ6L$to^vMnG2ONs60PYnQ5@o$z*N}2D}sucpzml34@-Hs#7rV3CW&P0G zTDp=j0BZH`wq38U)aSdFHl5DTf3hoo-Py7zZ2%Ou6^6W?#`p5_n!Bq0R28iaeWHcU zklTyTO7ofXEwP%Ir>XCu^;cd$krykXowqip2ZP+klR2F)-+^&X)IhBJ+WP6m-cR>D zaZ-N#!kRG{GixJah|(p2GjFr;rBIRyj3GnL8g)%Ir*|Iq4CS71``ryWqPz zh8?47lOSG3uJEjHctA%1q;WB7qNrg=lcr6ps}vfU4O8%^I*NMQfZ>i?a_rg`SQNQ zAMB9j$F6LZSNCj?PwkZp-`^7^U(2efs5_|dbRVp%sA#0kVN&&2$iD(uy;!0v(8;|G z@=35<_JU6C`QSzQt43MgdpJz)%d**?3Eg(>8Jlgru$)$t$#U-5ojHXa2Wk51V z95{|cR$5wfK!3!2pr*96o_CkyTK;KHj`fR6kMI6U!^~oQ6g+g^e1@rwrRg}8 z7|ktGE6gK9-m5DZ^4=lu9g4j}vG+E|UXC8d@%OOVnWN1~;thCo{|k;32U%nZ0)@=IX?vWcJpjnC*#$$?Q!_p)bpoZrypZZi-g5`oj?g${%;e z`o3H#W_*usdS^twr}#o`tnYi3VutzHz3I;YVY$lIw_%5) zzdLvKKz^*8%wDM!vo%ZQ5*H=2mnp?umbfsPy-LCCm$+aYe~-eMZ}g+%=t~sLgOE-d zT?%8J&hkm4)%kB|{D;P0WLNR=`hVsB5QCQBi%UEPA-$Z)2#r2*A{LDnj3?7t8UL84 z(weE06M1BU5R|}@LSq;~1&dB&M3AaZU?FOZ8mSCLuHuq1OL0-LrL3gbz^m2ZWhiu2 zA2@cTrm*J7u>;ixrXQmQFGGQA<0a*4YeDN(<?IvF~^Xh&%B)H9n zeAh;7mXFOg8Zf!8la1E}JVT!A324@m*8{P-JH|xCYLrCP(M};hVX{ebctMTmYc7VOHJ@rg9)cGA{drK zbt4SOMtLI)NMrwMt6`C={Eef(uUJ&^`=f7^8<^P`HGCQtx)v2LS-fcBqQy&!7a5p- zjEJaZ2~3eF(o<$j0;@|Dp%nscJg)@@O2_Xc5N+dW^#pv`0PjklHCG<;v>{I$^0c9t z2C)kO-v5o5))K1Vm-n4e_!nkr5%Bm`9=Cg-@U`pe`gi<{AN8Qcx}vgf)!N!}Y&Mua z;^X?+>BcJuvz1ojC<7v_%d7tf%INZXLI^} zPM2_6&FKbCpXGErr+Yd54X4LA{fN^`jKX37-*rDE=(6t`A<}PkN$_Rg6)5PsT~PQU z3aJwKWPa^afyOdky$7-Rwi^Cl{1;m4S70r_m8uK3fNnhM`7!Y)%h(3J-k;ywnRt63 zQVi$O7H))ilFY!uawDG&{~wO%MpI$^SmQx>7}(13P)Lt*`W~m}7{$GM#lV+uVfykP zbNUjeJ2-W4x|`EiIDM7V*ErqB=>blE%V`IvM;N7Ehn{wQ3GYCU7`TLQB4B^hyZPVl C^UX5= literal 0 HcmV?d00001 diff --git a/doc/img/MainWindow_spectrum_gui_B.png b/doc/img/MainWindow_spectrum_gui_B.png new file mode 100644 index 0000000000000000000000000000000000000000..218b927a5057e0704753976202dcbdb9c29c0d4c GIT binary patch literal 6259 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 literal 0 HcmV?d00001 diff --git a/doc/img/MainWindow_spectrum_gui_C.png b/doc/img/MainWindow_spectrum_gui_C.png new file mode 100644 index 0000000000000000000000000000000000000000..dac7b80a0470d544a8dabb264566f83a3533527c GIT binary patch literal 10883 zcmbt)WmFqL*CtMIDXzr|#T|-EDJ@QM5AIehK(OFWX>q5;9f~^?DDLj=1d2m|O~3d1 zvAbt~?4Hdz$ymnk-22>_CsIvC9tV>G69EAM=hMgcpAirc%i(c<02=%k^odCfo)Kaz zE35WNR`#{a7iTM52TKG5mal$a#Xt5+QT3T<$bBV27mX0MDBc1}YtE>bsfA$XY1_

(69l+7#_LBiJ}Lim|@Wd2|bz&Fl*d{3tez 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 literal 0 HcmV?d00001 diff --git a/doc/img/MainWindow_spectrum_gui_C.xcf b/doc/img/MainWindow_spectrum_gui_C.xcf new file mode 100644 index 0000000000000000000000000000000000000000..a622dbe4798bbf62bcf32e66502fea02a5c8b76b GIT binary patch literal 67066 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 + getAveragingValue(averagingIndex, m_settings.m_averagingMode))) / (float) m_glSpectrum->getSampleRate(); setNumberStr(averagingTime*overlapFactor, 2, s); ui->averaging->setToolTip(QString("Number of averaging samples (avg time: %1s)").arg(s)); } diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui index 05595d61c..02a9c49bb 100644 --- a/sdrgui/gui/glspectrumgui.ui +++ b/sdrgui/gui/glspectrumgui.ui @@ -558,6 +558,49 @@ 3 + + + + Clear spectrum histogram + + + + + + + :/clear.png:/clear.png + + + + 16 + 16 + + + + + + + + Display phosphor effect spectrum + + + Histogram + + + + :/histogram.png:/histogram.png + + + + 16 + 16 + + + + true + + + @@ -621,71 +664,6 @@ - - - - - 24 - 24 - - - - Trace intensity - - - 100 - - - 1 - - - 50 - - - - - - - Clear spectrum histogram - - - - - - - :/clear.png:/clear.png - - - - 16 - 16 - - - - - - - - Display phosphor effect spectrum - - - Histogram - - - - :/histogram.png:/histogram.png - - - - 16 - 16 - - - - true - - - @@ -732,6 +710,28 @@ + + + + + 24 + 24 + + + + Trace intensity + + + 100 + + + 1 + + + 50 + + + @@ -854,7 +854,6 @@ - histogram maxHold invertWaterfall grid diff --git a/sdrgui/readme.md b/sdrgui/readme.md index 3709cd157..424955b5e 100644 --- a/sdrgui/readme.md +++ b/sdrgui/readme.md @@ -334,11 +334,19 @@ Most devices will also present an interface to control automatic DC removal and These are the controls of the main spectrum display in (7). The same controls are found in the plugins that feature a spectrum display: - Channel Analyzer - Broadcast FM demodulator - - SSB demodulator - - UDP source - - UDP sink + - ChirpChat (LoRa) demodulator + - File sink + - FreeDV demodulator and modulator + - Frequency tracker + - SigMF file sink + - SSB demodulator and modulator + - UDP source and sink -

3.1. FFT window selector

+

3A. Spectrum display control line 1

+ +![Spectrum GUI A](../doc/img/MainWindow_spectrum_gui_A.png) + +

3A.1. FFT window selector

Use this combo box to select which window is applied to the FFT: - **Bart**: Bartlett @@ -349,7 +357,7 @@ Use this combo box to select which window is applied to the FFT: - **Rec**: Rectangular (no window) - **Kai**: Kaiser with alpha = 2.15 (beta = 6.76) gives sidelobes < -70dB -

3.2. FFT size

+

3A.2. FFT size

Select the size of the FFT window among these values: - 128 @@ -359,15 +367,13 @@ Select the size of the FFT window among these values: - 2k = 2048 - 4k = 4096 -

3.3. Reference level

+

3A.3. FFT Overlap

-This is the level in dB at the top of the display range. You can select values between 0 and -110 in 1 dB steps +FFT Overlap in number of samples over half of the FFT size. The percentage of overlap appears in the tooltip. Ranges from 0 (no overlap) to half the FFT size minus one (maximum overlap). -

3.4. Range

+Example with a FFT of 1k (1024) and an overlap of 128 the overlap percentage is 128 ÷ 512 = 25% -This is the range of display in dB. You can select values between 1 and 100 in 1 dB steps - -

3.5. Averaging mode

+

3A.4. Averaging mode

Use this combo to select which averaging mode is applied: - **No**: no averaging. Disables averaging regardless of the number of averaged samples (4.6). This is the default option @@ -375,68 +381,53 @@ Use this combo to select which averaging mode is applied: - **Fix**: fixed average. Average is done over the amount of samples specified next (4.6) and a result is produced at the end of the corresponding period then the next block of averaged samples is processed. There is one complete FFT line produced every FFT sampling period multiplied by the number of averaged samples (4.6). The time scale on the waterfall display is updated accordingly. - **Max**: this is not an averaging but a max hold. It will retain the maximum value over the amount of samples specified next (4.6). Similarly to the fixed average a result is produced at the end of the corresponding period which results in slowing down the waterfall display. The point of this mode is to make outlying short bursts within the "averaging" period stand out. With averaging they would only cause a modest increase and could be missed out. -

3.6. Number of averaged samples

+

3A.5. Number of averaged samples

-Each FFT bin (squared magnitude) is averaged or max'ed over a number of samples. This combo allows selecting the number of samples between these values: 1 (no averaging), 2, 5, 10, 20, 50, 100, 200, 500, 1k (1000) for all modes and in addition 2k, 5k, 10k, 20k, 50k, 1e5 (100000), 2e5, 5e5, 1M (1000000) for "fixed" and "max" modes. The tooltip mentions the resulting averaging period considering the baseband sample rate and FFT size. -Averaging reduces the noise variance and can be used to better detect weak continuous signals. The fixed averaging mode allows long time monitoring on the waterfall. The max mode helps showing short bursts that may appear during the "averaging" period. +Each FFT bin (squared magnitude) is averaged or max'ed over a number of samples. This combo allows selecting the number of samples between these values: 1 (no averaging), 2, 5, 10, 20, 50, 100, 200, 500, 1k (1000) for all modes and in addition 2k, 5k, 10k, 20k, 50k, 1e5 (100000), 2e5, 5e5, 1M (1000000) for "fixed" and "max" modes. Averaging reduces the noise variance and can be used to better detect weak continuous signals. The fixed averaging mode allows long time monitoring on the waterfall. The max mode helps showing short bursts that may appear during the "averaging" period. -☞ Note: The spectrum display is refreshed every 50ms (20 FPS). Setting an averaging time above this value will make sure that a short burst is not missed particularly when using the max mode. +The resulting spectrum refresh period appears in the tooltip taking sample rate, FFT size (3A.2), average size (3A.5) and overlap (3A.3) into consideration. Averaging size adjustment is valid for fixed average and max modes only: -

3.7. Phosphor display stroke decay

+Period = ((((FFT_size ÷ 2) - overlap) × 2) ÷ sample_rate) × averaging_size -This controls the decay rate of the stroke when phosphor display is engaged (4.C). The histogram pixel value is diminished by this value each time a new FFT is produced. A value of zero means no decay and thus phosphor history and max hold (red line) will be kept until the clear button (4.B) is pressed. +

3A.6. Play/Pause spectrum

-

3.8. Phosphor display stroke decay divisor

+Use this button to freeze the spectrum update. Useful when making measurements (Paragraph 6). -When phosphor display is engaged (4.C) and stroke decay is 1 (4.7) this divides the unit decay by this value by diminishing histogram pixel value by one each time a number of FFTs equal to this number have been produced. Thus the actual decay rate is 1 over this value. This allow setting a slower decay rate than one unit for each new FFT. +

3B. Spectrum display control line 2

-

3.9. Phosphor display stroke strength

+![Spectrum GUI B](../doc/img/MainWindow_spectrum_gui_B.png) -This controls the stroke strength when phosphor display is engaged (4.C). The histogram value is incremented by this value at each new FFT until the maximum (red) is reached. +

3B.1. Autoscale

-

3.A. Trace intensity

+Scales spectrum by setting reference level and range automatically based on maximum and minimum levels. Takes the average of FFT size ÷ 32 minima for the minimum and 10 dB over maximum for the maximum. -This controls the intensity of the maximum (4.D) and current (4.E) spectrum trace +

3B.2. Reference level

-

3.B. Clear spectrum

+This is the level in dB at the top of the display range. You can select values between 0 and -110 in 1 dB steps -This resets the maximum spectrum trace and phosphor remanence +

3B.3. Range

-

3.C. Phosphor display

+This is the range of display in dB. You can select values between 1 and 100 in 1 dB steps -Toggles the phosphor display on the spectrum +

3B.4. FPS capping

-

3.D. Maximum trace

+The refresh rate of the spectrum is capped by this value in FPS i.e the refresh period in seconds is 1 ÷ FPS. The default value is 20 and corresponds to general usage. You may use a lower value to limit GPU usage and power consumption. You may also use a higher value for an even more reactive display. "NL" corresponds to "No Limit". With "No Limit" the spectrum update will be triggered immediately when a new FFT is calculated. Note that actual refresh rate will be limited by other factors related to hardware and graphics drivers. -Toggles the maximum trace display (red trace) on the spectrum +The refresh period is limited anyway by the FFT period which is the FFT size divided by the baseband sampling rate and multiplied by the fixed average or max size (3A.5) in case these features are engaged (3A.4). Setting a resulting FFT refresh time above the refresh rate will make sure that a short burst is not missed particularly when using the max mode. -

3.E. Current trace

+Example with a FFT size of 1k (1024) and no overlap, a baseband rate of 48 kS/s and an averaging size of 5 the refresh period is: -Toggles the current trace display (yellow trace) on the spectrum +(1024 ÷ 48000) × 5 ≈ 107 ms -

3.F. Waterfall/spectrum placement

+Thus if the FPS capping is 20 (50 ms) the refresh period will be in fact 107 ms (≈ 9 FPS) anyway. -Toggles the spectrum on top or on bottom versus waterfall - -

3.G. Waterfall

- -Toggles the waterfall display - -

3.H.Grid

- -Toggles the grid display - -

3.I.Grid intensity

- -Controls the intensity of the grid display - -

3.J. Logarithmic/linear scale

+

3B.5. Logarithmic/linear scale

Use this toggle button to switch between spectrum logarithmic and linear scale display. The face of the button will change to represent either a logaritmic or linear curve. When in linear mode the range control (4.4) has no effect because the actual range is between 0 and the reference level. The reference level in dB (4.3) still applies but is translated to a linear value e.g -40 dB is 1e-4. In linear mode the scale numbers are formatted using scientific notation so that they always occupy the same space. -

4.K. Spectrum server control

+

3B.6. Spectrum server control

A websockets based server can be used to send spectrum data to clients. An example of such client can be found in the [SDRangelSpectrum](https://github.com/f4exb/sdrangelspectrum) project. @@ -496,6 +487,58 @@ The server only sends data. Control including FFT details is done via the REST A +

3C. Spectrum display control line 3

+ +![Spectrum GUI C](../doc/img/MainWindow_spectrum_gui_C.png) + +

3C.1. Clear spectrum

+ +This resets the maximum spectrum trace and phosphor remanence + +

3C.2. Phosphor display

+ +Toggles the phosphor display on the spectrum + +

3C.3. Phosphor display stroke and max hold decay

+ +This controls the decay rate of the stroke when phosphor display is engaged (4.C). The histogram pixel value is diminished by this value each time a new FFT is produced. A value of zero means no decay and thus phosphor history and max hold (red line) will be kept until the clear button (4.B) is pressed. + +

3C.4. Phosphor display stroke and max hold decay divisor

+ +When phosphor display is engaged (4.C) and stroke decay is 1 (4.7) this divides the unit decay by this value by diminishing histogram pixel value by one each time a number of FFTs equal to this number have been produced. Thus the actual decay rate is 1 over this value. This allow setting a slower decay rate than one unit for each new FFT. + +

3C.5. Phosphor display stroke strength

+ +This controls the stroke strength when phosphor display is engaged (4.C). The histogram value is incremented by this value at each new FFT until the maximum (red) is reached. + +

3C.6. Maximum hold trace

+ +Toggles the maximum hold trace display (red trace) on the spectrum + +

3C.7. Current trace

+ +Toggles the current trace display (yellow trace) on the spectrum + +

3C.8. Trace intensity

+ +This controls the intensity of the maximum (4.D) and current (4.E) spectrum trace + +

3C.9. Waterfall/spectrum placement

+ +Toggles the spectrum on top or on bottom versus waterfall + +

3C.10. Waterfall

+ +Toggles the waterfall display + +

3C.11.Grid

+ +Toggles the grid display + +

3C.12.Grid intensity

+ +Controls the intensity of the grid display +

5. Presets and commands

The presets and commands tree view are by default stacked in tabs. The following sections describe the presets section 5A) and commands (section 5B) views successively