mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 02:12:37 -04:00
Waterfall AGC based on 40th percentile of avg spectrum.
Double-click in zoomed spectrum sets Tol=100. Lower threshold for quick decode (nqd=1), if TOL.le.100. Fixed display of shorthand S/N in main text window. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@560 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
ebbdb6c0ab
commit
a2affc3ad3
5
map65.py
5
map65.py
@ -1007,9 +1007,14 @@ def update():
|
|||||||
astrotext.insert(END,"Dgrd:%6.1f\n" % g.Dgrd)
|
astrotext.insert(END,"Dgrd:%6.1f\n" % g.Dgrd)
|
||||||
|
|
||||||
if g.freeze_decode and mode.get()[:4]=='JT65':
|
if g.freeze_decode and mode.get()[:4]=='JT65':
|
||||||
|
if g.freeze_decode==1:
|
||||||
itol=5
|
itol=5
|
||||||
ltol.configure(text='Tol '+str(500))
|
ltol.configure(text='Tol '+str(500))
|
||||||
Audio.gcom2.dftolerance=500
|
Audio.gcom2.dftolerance=500
|
||||||
|
else:
|
||||||
|
itol=3
|
||||||
|
ltol.configure(text='Tol '+str(100))
|
||||||
|
Audio.gcom2.dftolerance=100
|
||||||
nfreeze.set(1)
|
nfreeze.set(1)
|
||||||
Audio.gcom2.nfreeze=1
|
Audio.gcom2.nfreeze=1
|
||||||
if Audio.gcom2.monitoring:
|
if Audio.gcom2.monitoring:
|
||||||
|
11
map65a.F90
11
map65a.F90
@ -60,12 +60,12 @@ subroutine map65a(newdat)
|
|||||||
iloop=0
|
iloop=0
|
||||||
2 if(ndphi.eq.1) dphi=30*iloop/57.2957795
|
2 if(ndphi.eq.1) dphi=30*iloop/57.2957795
|
||||||
do nqd=1,0,-1
|
do nqd=1,0,-1
|
||||||
if(nqd.eq.1) then
|
if(nqd.eq.1) then !Quick decode, at fQSO
|
||||||
fa=1000.0*(fselect+0.001*mousedf-100.0) - dftolerance
|
fa=1000.0*(fselect+0.001*mousedf-100.0) - dftolerance
|
||||||
fb=1000.0*(fselect+0.001*mousedf-100.0) + dftolerance
|
fb=1000.0*(fselect+0.001*mousedf-100.0) + dftolerance
|
||||||
ia=nint((fa+23000.0)/df + 1.0) ! 23000 = 48000 - 25000
|
ia=nint((fa+23000.0)/df + 1.0) ! 23000 = 48000 - 25000
|
||||||
ib=nint((fb+23000.0)/df + 1.0)
|
ib=nint((fb+23000.0)/df + 1.0)
|
||||||
else
|
else !Wideband decode at all freqs
|
||||||
fa=1000*(nfa-100)
|
fa=1000*(nfa-100)
|
||||||
fb=1000*(nfb-100)
|
fb=1000*(nfb-100)
|
||||||
ia=nint((fa+23000.0)/df + 1.0) ! 23000 = 48000 - 25000
|
ia=nint((fa+23000.0)/df + 1.0) ! 23000 = 48000 - 25000
|
||||||
@ -168,7 +168,9 @@ subroutine map65a(newdat)
|
|||||||
|
|
||||||
! ########################### Search for Normal Messages ###########
|
! ########################### Search for Normal Messages ###########
|
||||||
! Is sync1 above threshold?
|
! Is sync1 above threshold?
|
||||||
if(sync1.gt.1.0) then
|
thresh1=1.0
|
||||||
|
if(nqd.eq.1 .and. dftolerance.le.100) thresh1=0. !Lower threshold at fQSO
|
||||||
|
if(sync1.gt.thresh1) then
|
||||||
|
|
||||||
! Keep only the best candidate within ftol.
|
! Keep only the best candidate within ftol.
|
||||||
! (Am I deleting any good decodes by doing this?)
|
! (Am I deleting any good decodes by doing this?)
|
||||||
@ -186,7 +188,6 @@ subroutine map65a(newdat)
|
|||||||
if(i1.ge.5 .or. i2.ge.9) then
|
if(i1.ge.5 .or. i2.ge.9) then
|
||||||
nhispol=nint(57.2957795*pol)
|
nhispol=nint(57.2957795*pol)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
km=km+1
|
km=km+1
|
||||||
sig(km,1)=nfile
|
sig(km,1)=nfile
|
||||||
sig(km,2)=nutc
|
sig(km,2)=nutc
|
||||||
@ -244,6 +245,8 @@ subroutine map65a(newdat)
|
|||||||
! ndf2=nint(a(3))
|
! ndf2=nint(a(3))
|
||||||
nsync1=sync1
|
nsync1=sync1
|
||||||
nsync2=nint(10.0*log10(sync2)) - 40 !### empirical ###
|
nsync2=nint(10.0*log10(sync2)) - 40 !### empirical ###
|
||||||
|
if(decoded(1:4).eq.'RO ' .or. decoded(1:4).eq.'RRR ' .or. &
|
||||||
|
decoded(1:4).eq.'73 ') nsync2=nsync2-6
|
||||||
nw=0 !### Fix this! ###
|
nw=0 !### Fix this! ###
|
||||||
nwrite=nwrite+1
|
nwrite=nwrite+1
|
||||||
if(ndphi.eq.0) then
|
if(ndphi.eq.0) then
|
||||||
|
13
spec.f90
13
spec.f90
@ -17,7 +17,7 @@ subroutine spec(brightness,contrast,ngain,nspeed,a,a2)
|
|||||||
|
|
||||||
! Could save memory by doing the averaging-by-7 (or 10?) of ss5 in symspec.
|
! Could save memory by doing the averaging-by-7 (or 10?) of ss5 in symspec.
|
||||||
include 'spcom.f90'
|
include 'spcom.f90'
|
||||||
real s(NFFT,NY)
|
real s(NFFT,NY),savg2(NFFT),tmp(NFFT)
|
||||||
include 'gcom1.f90'
|
include 'gcom1.f90'
|
||||||
include 'gcom2.f90'
|
include 'gcom2.f90'
|
||||||
include 'gcom3.f90'
|
include 'gcom3.f90'
|
||||||
@ -45,6 +45,15 @@ subroutine spec(brightness,contrast,ngain,nspeed,a,a2)
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
call zero(savg2,NFFT)
|
||||||
|
do j=1,nlines
|
||||||
|
call add(savg2,s(1,j),savg2,NFFT)
|
||||||
|
enddo
|
||||||
|
|
||||||
|
ia=0.03*NFFT
|
||||||
|
nn=0.94*NFFT
|
||||||
|
call pctile(savg2(ia),tmp,nn,40,base)
|
||||||
|
base=base/(nadd*nlines)
|
||||||
|
|
||||||
newpts=NX*nlines
|
newpts=NX*nlines
|
||||||
do i=newpts+1,NX*NY
|
do i=newpts+1,NX*NY
|
||||||
@ -56,6 +65,7 @@ subroutine spec(brightness,contrast,ngain,nspeed,a,a2)
|
|||||||
gamma=1.3 + 0.01*contrast
|
gamma=1.3 + 0.01*contrast
|
||||||
offset=(brightness+64.0)/2
|
offset=(brightness+64.0)/2
|
||||||
fac=20.0/nadd
|
fac=20.0/nadd
|
||||||
|
fac=fac*(0.1537/base)
|
||||||
foffset=0.001*(1270+nfcal)
|
foffset=0.001*(1270+nfcal)
|
||||||
nbpp=(nfb-nfa)*NFFT/(96.0*NX) !Bins per pixel in wideband (upper) waterfall
|
nbpp=(nfb-nfa)*NFFT/(96.0*NX) !Bins per pixel in wideband (upper) waterfall
|
||||||
fselect=mousefqso + foffset
|
fselect=mousefqso + foffset
|
||||||
@ -73,7 +83,6 @@ subroutine spec(brightness,contrast,ngain,nspeed,a,a2)
|
|||||||
do j=nlines,1,-1 !Reverse order so last will be on top
|
do j=nlines,1,-1 !Reverse order so last will be on top
|
||||||
do i=1,NX
|
do i=1,NX
|
||||||
k=k+1
|
k=k+1
|
||||||
|
|
||||||
n=0
|
n=0
|
||||||
x=0.
|
x=0.
|
||||||
iia=(i-1)*nbpp + ii0 + 1
|
iia=(i-1)*nbpp + ii0 + 1
|
||||||
|
@ -245,7 +245,7 @@ def freeze_decode2(event):
|
|||||||
# If decoder is busy or we are not monitoring, ignore request
|
# If decoder is busy or we are not monitoring, ignore request
|
||||||
if Audio.gcom2.ndecoding==0 or Audio.gcom2.monitoring==0:
|
if Audio.gcom2.ndecoding==0 or Audio.gcom2.monitoring==0:
|
||||||
set_freezedf(event)
|
set_freezedf(event)
|
||||||
g.freeze_decode=1
|
g.freeze_decode=2
|
||||||
|
|
||||||
#---------------------------------------------------- update
|
#---------------------------------------------------- update
|
||||||
def update():
|
def update():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user