Add a decent calculation of snrdb for a synced signal.

Bring jt9.f90 up to date.
Bump version number to 0.3.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2717 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2012-11-06 21:28:59 +00:00
parent 161cadca49
commit 508009db5e
4 changed files with 17 additions and 11 deletions

View File

@ -79,7 +79,7 @@ subroutine decoder(ntrSeconds,ndepth,nRxLog,c00)
do i=ia,ib
f=(i-1)*df3
if((i.eq.ipk .or. ccfred(i).ge.3.0) .and. f.gt.fgood+10.0*df8) then
call spec9(c0,npts8,nsps,f,fpk,xdt,i1SoftSymbols)
call spec9(c0,npts8,nsps,f,fpk,xdt,snrdb,i1SoftSymbols)
call decode9(i1SoftSymbols,limit,nlim,msg)
snr=10.0*log10(ccfred(i)) - 10.0*log10(2500.0/df3) + 2.0
sync=ccfred(i) - 2.0

View File

@ -101,10 +101,11 @@ program jt9
do i=ia,ib
f=(i-1)*df3
if((i.eq.ipk .or. ccfred(i).ge.3.0) .and. f.gt.fgood+10.0*df8) then
call spec9(c0,npts8,nsps,f,fpk,xdt,i1SoftSymbols)
call spec9(c0,npts8,nsps,f,fpk,xdt,snrdb,i1SoftSymbols)
call decode9(i1SoftSymbols,limit,nlim,msg)
print*,msg
snr=10.0*log10(ccfred(i)) - 10.0*log10(2500.0/df3) + 2.0
! print*,msg
! snr=10.0*log10(ccfred(i)) - 10.0*log10(2500.0/df3) + 2.0
snr=snrdb
sync=ccfred(i) - 2.0
if(sync.lt.0.0) sync=0.0
nsync=sync
@ -119,9 +120,8 @@ program jt9
endif
if(msg.ne.' ') then
write(13,1010) nutc,nsync,nsnr,xdt,1000.0+fpk,width,msg
write(*,1010) nutc,nsync,nsnr,xdt,1000.0+fpk,width,msg
1010 format(i4.4,i4,i5,f6.1,f8.2,f6.2,3x,a22)
write(14,1010) nutc,nsync,nsnr,xdt,1000.0+fpk,width,msg
fgood=f
nsynced=1
ndecoded=1
@ -130,8 +130,7 @@ program jt9
enddo
if(fgood.eq.0.0) then
write(13,1020) line
write(14,1020) line
write(*,1020) line
1020 format(a33)
endif

View File

@ -1,4 +1,4 @@
subroutine spec9(c0,npts8,nsps,fpk0,fpk,xdt,i1SoftSymbols)
subroutine spec9(c0,npts8,nsps,fpk0,fpk,xdt,snrdb,i1SoftSymbols)
parameter (MAXFFT=31500)
complex c0(0:npts8-1)
@ -71,16 +71,23 @@ subroutine spec9(c0,npts8,nsps,fpk0,fpk,xdt,i1SoftSymbols)
enddo
sum=0.
sig=0.
do j=1,69
smax=0.
do i=0,7
smax=max(smax,ssym(i,j))
sum=sum+ssym(i,j)
enddo
sig=sig+smax
sum=sum-smax
enddo
ave=sum/(69*7)
ssym=ssym/ave
sig=sig/69.
snr=sig/ave
df8=1500.0/nsps8
snrdb=db(snr) - db(2500.0/df8)
! print*,ave,sig,snr,df8,snrdb
m0=3
ntones=8

View File

@ -1,4 +1,4 @@
//-------------------------------------------------------------- MainWindow
//--------------------------------------------------------------- MainWindow
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "devsetup.h"
@ -17,7 +17,7 @@ float c0[2*1800*1500];
WideGraph* g_pWideGraph = NULL;
QString rev="$Rev$";
QString Program_Title_Version=" WSJT-X v0.2, r" + rev.mid(6,4) +
QString Program_Title_Version=" WSJT-X v0.3, r" + rev.mid(6,4) +
" by K1JT";
//-------------------------------------------------- MainWindow constructor