From ce12f40d737d440de7985f3be74a6591fce20147 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 5 May 2019 18:43:33 +0200 Subject: [PATCH] Frequency Tracker: updated documentation --- debian/changelog | 6 ++ doc/img/FreqTracker_07.png | Bin 0 -> 6242 bytes doc/img/FreqTracker_07.xcf | Bin 0 -> 27885 bytes doc/img/FreqTracker_plugin.png | Bin 0 -> 24269 bytes doc/img/FreqTracker_plugin.xcf | Bin 0 -> 85946 bytes plugins/channelrx/freqtracker/readme.md | 90 +++++++++++++++++------- 6 files changed, 72 insertions(+), 24 deletions(-) create mode 100644 doc/img/FreqTracker_07.png create mode 100644 doc/img/FreqTracker_07.xcf create mode 100644 doc/img/FreqTracker_plugin.png create mode 100644 doc/img/FreqTracker_plugin.xcf diff --git a/debian/changelog b/debian/changelog index d749ce3ba..a5e87e61e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +sdrangel (4.7.0-1) unstable; urgency=medium + + * New Frequency Tracker Rx channel plugin + + -- Edouard Griffiths, F4EXB Sun, 05 May 2019 16:14:18 +0100 + sdrangel (4.6.0-1) unstable; urgency=medium * New LocalSink and LocalInput plugin pair to use sub basebands internally diff --git a/doc/img/FreqTracker_07.png b/doc/img/FreqTracker_07.png new file mode 100644 index 0000000000000000000000000000000000000000..0058d34a0230944dcaacf03d17d06221dac84e6c GIT binary patch literal 6242 zcmcI|cQjnz7q1dTC(7t8YD7seM6@J&v_#ZkjNXT+qb5WPLcS6bZ3NMK8;qJ!f+$g< zj9y|8Mz4c+eb;-x^?U2R_vgE7&76DpJ@=fm_u2ciKWE1p=xI<>uu%{Y5KwDrsy-(m zAWQ=8U*9AJ{sp*{mw|@V=Bb7%&;r-#6I2+`kb7#Hc@q#&GF<-%3DPoH03n%=maZDv zG6@L$?jwF6 zl9(Injy^?xYwhJ6^NLo+r11k-((|n!9&*+F{)w`}l%xscezgBI8NAjU_EAr@F`>B| zI^v&*JRzGEQ1R;!jSD#rFa(|ZAV@m>XczuxH@;%ZXRkGp(EA+&xr-=6>lGt95OHL| zV%fz`y4#P3tUS~Se@PO9sg6u1&mK+&%-e^^EAlM{OOYKSKu-{{f$r~!_$4O;+Y8r| z;6nUX)VzzHg0x49w3tv@BM`pcd4f7}B6NPok@&d+a-9Ks;C3P>L2$I_e@Rd`9w_D? zwIjOlnKlHgQ6Um4zvzczY==!hUubA@5!pI) z4E9`9I|tEr$TCagrxq1V8~UV(VkwUILqMS z;+V23)HLv|BJ-^zzr{|Ek9#NAUcP4_DCdO5Pv>DVL?s{Ax|!k z_VPz}ZHM+bVEKn8GD~Epu{QE#OE?{e&v+@h5UM##ZqI=@9Qke1M=|62>~zc|HHf!s z+lL(V{!$*uwVBaL+>^vAI$5sPOT!6-=AX{}W6TgZa0 z#>5a-QzS!;1xV!`{J9Q!b1kvQxsC5`*eM#r|2;jxFBhZr7j0 z#Tn{mY@UYV^_yl5uY>__^7<88nOVY_RWT7C&1AR`?f031*!2?QZQ#54_-3Lp;wu4t z`@TahqLt+0{-Uf|QW%dXnVI0wfl=N7EuvXq42C?HxlrgY&`&+-NEQ>>2@Y`=39g*l z&r0mOHJMC}LXf%&=jE5oW8+gBz;6(-TV%A&iz4qdS}6(=NmXk?LnJ;Lx0i%P%siI- zDJjhKXDEDSF3UgfJaY-3FEN&yw#XXk6XBn8wZ}E&1lz}CeaI4H?9NBS+E^If;TYQb z{i@@I?jZBlL`+%h6T(|7&o#bZghlo}KN)9{^XIcpW1eRS1!EZaA;#u}#}X6UII5PQ z@0Ny8Ertu++>^>ZxUy5{o3;QKo4uihv4WjlJ;}RCN=)6MLsDJ73K|bz0z-Pdym2Hq z`#v{aND{cq*?9=Z?u`1kaH9UvT4BBoe~fb_vCBMz1w_9tLrxlpoFz&FyA*?6Wd< zeanh7x)j6=A=k4U7arf!IV)P*QzAfw+TwH*jiQvnFV%UQ!95 z>}|UB%j)|I2#2-)o=s*_d$>~ekJQA1EpZAu^4dY{^Y|@s1ax~p1YG|ztjSWv?UF7#|A_}2J( zn2@dYgLUG5!V{B8Cq0KyWv6#JeC2cjMlBK2x7_N6)82+iv-7aM@pfTQ(WOxKxFc-zPHyPbboooX09u z&BHJ+zGP^@Z2}8$1u6AkZzSqb()kNnDUM55M}q3dwM|V~w6wG)-C9wk4d}&e;QGY7 zNti=H?0u_2;a={uo`c0Irz1p0%zy*hZZGlET@NICG`gdQJB(@tyn)YAzDkN6ya>hQ zTVM|^#-_nk2j)(&OkovyCuE|2v3(s>3^nB@C?Z0RmXr%RDjmA4pY;$D5s96dnPDd4 zkM2B1Q2YRCLm4;?D<-X2NLptHEjv7r-s46lZ&16ff0;0pxx-}umHUyE-?1{%go2rB(k5I3ycavL#n!A*p6jd_xguv+oYn&=(W~?oNha1DS zpP?+1ZeZM)xvnnt>gwv)@85w>hPchdjQjff@Z0dzPoI9(I1ULG_~2W0LF~w0n<@kI z4NS?el#~=OiaMf>EBx7T+4uWjbS&VjpMnodAOccS45-<`M(?$NwM_rX8b?|oy^Qv) zTv|kx>0Jx2E+#5Y`HznxNPiXRb5o%gW*WUYltVLUl}=vg0Yd3eTz-9~2|pdAT7r)AOH1P^LE7&tv0e`$F z%3f;N+3`n^(K_rbbO7%P(C7m!)@i$8nFjVonu*I-HX8j1H`mg*KlpH}!Rxk=epaX5 zeHl6JeIb423+WFZJ|xK3)VWT)!VdFt1^vC}FqpAE3x-^_m6%ir3KayE&9O>a6Vx~i z@ZGxy%-OM7(KeVO_7X2_W=;!2OEw%$yEZOHu?q_eFLZ$*Zim5;mqaC@ieqDAo+mrd zdbg>i%*W+LMda9PD-)%%mp9h9UgeLw2mr&OB?GQ5j$0O=6*M}=hw-l$-q#S9CjEovA#9;wr67^>q79Pm-zCP``u8SfV+CP6rexq07CS4Az{#cqA%n{Jc} z;DixJvJ)b{T{pAKMis&736Yeby}va>)!u7*&kYUDs_n=%61gsHSY54kpaMcdQXywP zfd|+QnF$MY0U~sI1N9A4jo8>AdAP45Qu5)l)#?+7Q^svt{HS@{Q?-}OEF zQ3RWBjF>KTe73l_7z?=Sv1UnqeZ8fIC35B!<>v3Q{ip@*s}l{Yz;%I?yJjN`*rK{~ zbv3nTR@)HV-7HBc5iuE!+n&G1dk*ON(H3Xu-@Uz8bAg*;xZ`{G?&am>`J7?V1@12P z6ry~5;g=WZwpFIhx!WHHQr)@KLn zb05xDOQV6wes;Z*mkW0$dNUWEeot&=q3Jz8P76;^lTOd#m{&at;+Md$P%q;KQ zw`XQ%@Ttv30C*2CQI11dGoj~Of9G1*v!?>F9&782Jeh7kl6V29A&>+jf*F^dmeyAZ zMNf0`e0GxLN1B((anNLi9GR&na_O3zr^%{rfS%4un*hnj%gZZ60shbQ^t5_zYRaTr zy}D3-NpbN_N=ny>5dBQ~u7|j0^x5I&gOD?6zy=Pdd#is<@vqVo-MHZ^^hY>Yuvq$_ z0$H`!vU=-r3l2bM8Wnqc0d`prw=hka(frVhvwLBe!I$_o<^4bDFuz{c-;VAs&NLV| zhxXTmK$1AqnqUQSe0t;)P zXi@-hhA^|`EHQuKe9^L}+>ieL+=hlpAt4U{{kyulSfbuc zxpi;()j0j)Q#!-mHZC*oY7IFDG~8#_xUeY_t!EI@^TDpPpckDCIDicr9v)VYBQZw- zKpkXO@5Tzi1F$F6@O=jg3JOgf9k(hpj%H2ecd6O3CAh_5AdLngda@T%(Y&Y4eAl$S z*r;R@&?7Z#bVn+vMzR3Vd3t)Pa5!f8dEk%3Ca;u~Av)2THc2-fd~Hjv&=V-aV&iL5QyLy0 z3?wl>RHlg)oTOx28^}JuL)lBD4NH`NjMdf3*Djl{&CSi|ekN~k@AZiaNN(;$Q{91k z3rt&^qPMq~I=YCNvfMls@^^H+#H1$h&;_ArrKx#y|IdIekXnJL9EM@WUaY~u>00{w z1z}g0y6?Gw*a2Lj+ojGA`!+;PEfP?LD5t53tzcBk*SGH2F%`unsGFv0VZpIr2Cehk zGAE^CQ30%(UPd-#)F@C$oVQ&q09;Cqmme^zf7;&=o0b`CKYhyj(C_Z}_&AW{pIKSy z1qL=9=PjlJGbaGtj8y3FwD;=RgjG-ikoxJ^*`GQ&2`l3lY2o_=vPI?P-I7%KI$y$P zJz$5ewmt7xt9rO@i;L6LO#O66&Z@h)-HnWl92hJ^`roJyy$A%mPp`BLWGQ0KQ9zOb zpUhU<_c!@;jih3vgHJpIkGBVM)ZzjbBSFnb)OJ%p%or+DhXBwSu$azg$*)r)lF7ZD zG4!`tz;32B=XC;gb#(xewdo)|S z+P7(GgT+NfU#qLDpY_cD3M>q2DdA$|2^9g(C%`s=QQr%11D1}08WtHXjTS$0CS2d#=yLeAxaT*Sbf{lr+)A zsM$Gd`|*))PbJo2m@PjJ8jbWdn=<1P|H-hk181B;%eL+_UCyFY%m-sFEpokrnqR1I zC=|dh-*Z0fZjd%?uj`e5Ws&;U<|!{nDL~72tE${jsJtQGjTVfIj7c9qs#aLF1Rpg3 zcp4ra&TNwXQOH3W-bAKAYZE=V)EF?YBbmwb|0q)@f{UWeO2z04alXkHN3f~BTh z9?`M0GMWm2j5o;zpGX2EH*`FIc-R2v^UUOW#+m10H?$RN3-lOyIIY>>aJCn+{%Psy zn8l}((z4Y>Wo7QW_xc$|Mf7!O(?CN%YANG&P;>_F#X7xt4Y7I+s1oc_HcaGgL>03% z5jg=XasSt;WiH4SC%NjI$z2kg;W(nswGpzExV*a~S{r`~syPWHi_kWgrl5j<~mJ`y+dv!&9UFz3T M(^D;fY#shT02}HRLjV8( literal 0 HcmV?d00001 diff --git a/doc/img/FreqTracker_07.xcf b/doc/img/FreqTracker_07.xcf new file mode 100644 index 0000000000000000000000000000000000000000..7d4b40c9fb108e407ae7539ae0b65822d884fe54 GIT binary patch literal 27885 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 bfWv@eR0c+tdjH#C?SQA{LmEV{+JpZKRin#f literal 0 HcmV?d00001 diff --git a/doc/img/FreqTracker_plugin.png b/doc/img/FreqTracker_plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..a3304a78acc9bb434ae0fccdf677ebe19d6ecf6f GIT binary patch literal 24269 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 OSCMDk4zc#GJmP;W(q2md literal 0 HcmV?d00001 diff --git a/plugins/channelrx/freqtracker/readme.md b/plugins/channelrx/freqtracker/readme.md index 418dcce9b..f2c5110a3 100644 --- a/plugins/channelrx/freqtracker/readme.md +++ b/plugins/channelrx/freqtracker/readme.md @@ -1,55 +1,97 @@ -

AM demodulator plugin

+

Frequency tracker plugin

Introduction

-This plugin can be used to listen to a narrowband amplitude modulated signal. "Narrowband" means that the bandwidth can vary from 1 to 40 kHz. +This plugin can be used to track the center frequency of a carrier. It will try to adjust its center frequency on the carrier center frequency. It is normally used in conjunction with a utility program that monitors the plugin center frequency via reverse API. This utility can then make use of this information to control other plugins or any other purpose.

Interface

-![AM Demodulator plugin GUI](../../../doc/img/AMDemod_plugin.png) +![Frequency Tracker plugin GUI](../../../doc/img/FreqTracker_plugin.png)

1: Frequency shift from center frequency of reception

-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. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2. +When the tracking is active (7.1) with a FLL or PLL tracker (7.3) and the squelch is open (8) the tracking system will change the frequency shift automatically to try lock on the carrier center frequency. -

2: PLL and synchronous AM

+Both manual and automatic controls are active at the same time and the user can force the center frequency at any one time but the tracker will try to lock it to the carrier again. -Use this toggle button to turn on or off the PLL locking and synchronous AM detection. When on the input signal is mixed with the NCO of the PLL that locks to the carrier of the AM transmission. Then the signal is processed as a DSB or SSB (see control 3) modulated signal. The main advantage compared to enveloppe detection is a better resilience to carrier selective fading. This does not prevents all selective fading distorsion but addresses the most annoying. +To change the frequency manually 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. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2. -When the PLL is locked the icon lights up in green. The frequency shift from carrier appears in the tooltip. Locking indicator is pretty sharp with about +/- 100 Hz range. +

2: Instantateous tracker error

-

3: DSB/SSB selection

+This is the instantaneous frequency error in Hz. It is activated as soon as the FLL or PLL tracker is selected (7.3) regardless of the tracking activation (7.1) -Use the left mouse button to toggle DSB/SSB operation. Soemtimes one of the two sidebands is affected by interference. Selecting SSB may help by using only the sideband without interference. Right click to open a dialog to select which sideband is used (LSB or USB). - -

4: Channel power

+

3: Channel power

Average total power in dB relative to a +/- 1.0 amplitude signal received in the pass band. -

5: Audio mute and audio output select

- -Left click on this button to toggle audio mute for this channel. The button will light up in green if the squelch is open. This helps identifying which channels are active in a multi-channel configuration. - -If you right click on it it will open a dialog to select the audio output device. See [audio management documentation](../../../sdrgui/audio.md) for details. - -

6: Level meter in dB

+

4: Level meter in dB

- top bar (green): average value - bottom bar (blue green): instantaneous peak value - tip vertical bar (bright green): peak hold value -

7:Bandpass boxcar filter toggle

+

5: Decimation factor

-Use this button to enable or disable the bandpass boxcar (sharp) filter with low cutoff at 300 Hz and high cutoff at half the RF bandwidth. This may help readability of low signals on air traffic communications but degrades audio on comfortable AM broadcast transmissions. +The baseband sample rate can be decimated by a power of 2 between 1 (no decimation) and 64 the resulting sample rate in kS/s is displayed on the right. The FLL and PLL will run at this sample rate.

8: RF bandwidth

-This is the bandwidth in kHz of the channel signal before demodulation. It can be set continuously in 1 kHz steps from 1 to 40 kHz. +This is the bandwidth in kHz of the channel signal before demodulation. Steps are in 0.1 kHz between 1 kHz and the limit set by the sample rate (equal in kHz to the sample rate in kS/s) -

9: Volume

+

7: Tracker controls

-This is the volume of the audio signal from 0.0 (mute) to 10.0 (maximum). It can be varied continuously in 0.1 steps using the dial button. +![Frequency Tracker tracker controls](../../../doc/img/FreqTracker_07.png) -

10: Squelch threshold

+

7.1 Tracking toggle

+ +Use this button to enable or disable tracking. When enable the locker is closed and when disabled it is opened. + +It is also used to signal PLL lock with a green background. Note that the lock status cannot be determined for FLL. + +

7.2 Alpha factor of frequency error EMA

+ +The frequency error is passed throug an Exponential Moving Average (EMA) stage to smooth it out. This is the decrease factor or alpha in the formula: + +Si = α xi + Si-1 + +Alpha can be set between 0.01 and 1.0 + +The lower alpha the lesser new values influence the average and thus the smoother the variations but also the slower the system reacts and the longer the acquisition. So you may want to start with values from 0.5 to 1.0 and reduce the value as the tracking achieves the correct frequency to reduce jitter. You may also let the system take the time to reach the correct value progressively with alpha values from 0.01 to 0.1. + +

7.3 Tracker type selection

+ +You may select the type of tracker with this combo box: + + - **No**: No tracking + - **FLL**: Frequency Locked Loop suitable for CW and FM type signals covering also any kind of digital m-ary FSK modulation. Note that for FM digital modulations the PLL may work also and sometimes with better stability. + - **PLL**: Phase Locked Loop suitable for digital phase modulations i.e. m-ary PSK in power of two orders. The order can be selected with the combo on the right (7.4) + +

7.4 Order of PSK modulation

+ +This is the order of m-ary PSK modulation for the PLL. It can be selected in powers of 2: + + - **1**: Continous Wave (no modulation) + - **2**: BPSK + - **4**: QPSK + - **8**: 8-PSK + - **16**: 16-PSK + - **32**: 32-PSK + +

7.5 Toggle root raised cosine filter

+ +Use this toggle button to activate or de-activate the root raised cosine (RRC) filter. When active the bnadpass boxcar filter is replaced by a RRC filter. This takes effect only in normal (DSB) mode (see control 14). + +

7.6 Tune RRC filter rolloff factor

+ +This button tunes the rolloff factor (a.k.a alpha) of the RRC filter in 0.01 steps between 0.1 and 0.7. Default is 0.35. +

8: Squelch open indicator

+ +This indicator lights in green when the squelch is open. When the squelch is closed the tracking (if active) is suspended. + +

9: Squelch threshold

This is the squelch threshold in dB. The average total power received in the signal bandwidth before demodulation is compared to this value and the squelch input is open above this value. It can be varied continuously in 0.1 dB steps from 0.0 to -100.0 dB using the dial button. + +

10: Squelch time gate

+ +Number of milliseconds following squelch gate opening after which the signal is declared open. 0 means squelch is declared open with no delay and is suitable for burst signals. The value can be varied in steps of 10 ms from 0 to 990 ms. \ No newline at end of file