mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-01 05:32:31 -04:00
Input syncwidth on command line; more options for verbose output.
This commit is contained in:
parent
c24a0d3c72
commit
060fdf6763
@ -13,7 +13,6 @@ program sfoxtest
|
|||||||
complex cnoise(NMAX) !Complex noise
|
complex cnoise(NMAX) !Complex noise
|
||||||
complex crcvd(NMAX) !Signal as received
|
complex crcvd(NMAX) !Signal as received
|
||||||
real a(3)
|
real a(3)
|
||||||
logical verbose
|
|
||||||
|
|
||||||
integer, allocatable :: msg0(:) !Information symbols
|
integer, allocatable :: msg0(:) !Information symbols
|
||||||
integer, allocatable :: parsym(:) !Parity symbols
|
integer, allocatable :: parsym(:) !Parity symbols
|
||||||
@ -23,9 +22,9 @@ program sfoxtest
|
|||||||
character fname*17,arg*12,itu*2
|
character fname*17,arg*12,itu*2
|
||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
if(nargs.ne.9) then
|
if(nargs.ne.10) then
|
||||||
print*,'Usage: sfoxtest f0 DT ITU M N K v nfiles snr'
|
print*,'Usage: sfoxtest f0 DT ITU M N K sw nv nfiles snr'
|
||||||
print*,'Example: sfoxtest 1500 0.15 MM 8 74 44 0 10 -10'
|
print*,'Example: sfoxtest 1500 0.15 MM 8 74 44 100 0 10 -10'
|
||||||
print*,' LQ: Low Latitude Quiet'
|
print*,' LQ: Low Latitude Quiet'
|
||||||
print*,' MD: Mid Latitude Disturbed'
|
print*,' MD: Mid Latitude Disturbed'
|
||||||
print*,' HM: High Latitude Moderate'
|
print*,' HM: High Latitude Moderate'
|
||||||
@ -44,15 +43,15 @@ program sfoxtest
|
|||||||
call getarg(6,arg)
|
call getarg(6,arg)
|
||||||
read(arg,*) kk0
|
read(arg,*) kk0
|
||||||
call getarg(7,arg)
|
call getarg(7,arg)
|
||||||
read(arg,*) n
|
read(arg,*) syncwidth
|
||||||
verbose=n.ne.0
|
|
||||||
call getarg(8,arg)
|
call getarg(8,arg)
|
||||||
read(arg,*) nfiles
|
read(arg,*) nv
|
||||||
call getarg(9,arg)
|
call getarg(9,arg)
|
||||||
|
read(arg,*) nfiles
|
||||||
|
call getarg(10,arg)
|
||||||
read(arg,*) snrdb
|
read(arg,*) snrdb
|
||||||
|
|
||||||
call sfox_init(mm0,nn0,kk0,itu,fspread,delay)
|
call sfox_init(mm0,nn0,kk0,itu,fspread,delay)
|
||||||
syncwidth=100.0
|
|
||||||
baud=12000.0/NSPS
|
baud=12000.0/NSPS
|
||||||
tsym=1.0/baud
|
tsym=1.0/baud
|
||||||
bw=NQ*baud
|
bw=NQ*baud
|
||||||
@ -146,7 +145,7 @@ program sfoxtest
|
|||||||
delay,fspread)
|
delay,fspread)
|
||||||
|
|
||||||
! Find signal freq and DT
|
! Find signal freq and DT
|
||||||
call sync_sf(crcvd,clo,verbose,f,t)
|
call sync_sf(crcvd,clo,nv,f,t)
|
||||||
ferr=f-f1
|
ferr=f-f1
|
||||||
terr=t-xdt
|
terr=t-xdt
|
||||||
if(abs(ferr).lt.baud/2.0 .and. abs(terr).lt.tsym/8.0) then
|
if(abs(ferr).lt.baud/2.0 .and. abs(terr).lt.tsym/8.0) then
|
||||||
@ -168,20 +167,20 @@ program sfoxtest
|
|||||||
nworst=max(nworst,nharderr)
|
nworst=max(nworst,nharderr)
|
||||||
call rs_decode_sf(chansym,iera,nera,nfixed) !Call the decoder
|
call rs_decode_sf(chansym,iera,nera,nfixed) !Call the decoder
|
||||||
|
|
||||||
if(verbose) then
|
if(iand(nv,1).ne.0) then
|
||||||
fname='000000_000001.wav'
|
fname='000000_000001.wav'
|
||||||
write(fname(8:13),'(i6.6)') ifile
|
write(fname(8:13),'(i6.6)') ifile
|
||||||
open(10,file=trim(fname),access='stream',status='unknown')
|
open(10,file=trim(fname),access='stream',status='unknown')
|
||||||
write(10) h,iwave(1:NMAX) !Save the .wav file
|
write(10) h,iwave(1:NMAX) !Save the .wav file
|
||||||
close(10)
|
close(10)
|
||||||
write(*,1100) f1,xdt
|
! write(*,1100) f1,xdt
|
||||||
1100 format(/'f0:',f7.1,' xdt:',f6.2)
|
!1100 format(/'f0:',f7.1,' xdt:',f6.2)
|
||||||
write(*,1112) f,t
|
! write(*,1112) f,t
|
||||||
1112 format('f: ',f7.1,' DT:',f6.2)
|
!1112 format('f: ',f7.1,' DT:',f6.2)
|
||||||
write(*,1110) ferr,terr
|
! write(*,1110) ferr,terr
|
||||||
1110 format('err:',f6.1,f12.2)
|
!1110 format('err:',f6.1,f12.2)
|
||||||
write(*,1120) nharderr
|
! write(*,1120) nharderr
|
||||||
1120 format('Hard errors:',i4)
|
!1120 format('Hard errors:',i4)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if(nharderr.le.maxerr) ngood=ngood+1
|
if(nharderr.le.maxerr) ngood=ngood+1
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine sync_sf(crcvd,clo,verbose,f,t)
|
subroutine sync_sf(crcvd,clo,nv,f,t)
|
||||||
|
|
||||||
use sfox_mod
|
use sfox_mod
|
||||||
parameter (MMAX=150,JMAX=300)
|
parameter (MMAX=150,JMAX=300)
|
||||||
@ -6,7 +6,6 @@ subroutine sync_sf(crcvd,clo,verbose,f,t)
|
|||||||
complex clo(NMAX) !Complex Local Oscillator
|
complex clo(NMAX) !Complex Local Oscillator
|
||||||
complex crcvd(NMAX) !Signal as received
|
complex crcvd(NMAX) !Signal as received
|
||||||
complex c(0:NFFT-1) !Work array
|
complex c(0:NFFT-1) !Work array
|
||||||
logical verbose
|
|
||||||
integer ipk(2)
|
integer ipk(2)
|
||||||
character*1 line(-30:30),mark(0:5)
|
character*1 line(-30:30),mark(0:5)
|
||||||
data mark/' ','.','-','+','X','$'/
|
data mark/' ','.','-','+','X','$'/
|
||||||
@ -30,7 +29,7 @@ subroutine sync_sf(crcvd,clo,verbose,f,t)
|
|||||||
ipk=maxloc(s)
|
ipk=maxloc(s)
|
||||||
ipk(1)=ipk(1)-MMAX-1
|
ipk(1)=ipk(1)-MMAX-1
|
||||||
ipk(2)=ipk(2)-JMAX-1
|
ipk(2)=ipk(2)-JMAX-1
|
||||||
if(verbose) then
|
if(iand(nv,2).ne.0) then
|
||||||
ma=max(-MMAX,ipk(1)-10)
|
ma=max(-MMAX,ipk(1)-10)
|
||||||
mb=min(MMAX,ipk(1)+10)
|
mb=min(MMAX,ipk(1)+10)
|
||||||
ja=max(-JMAX,ipk(2)-30)
|
ja=max(-JMAX,ipk(2)-30)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user