Change Doppler spread to Lorentzian shape with cutoff at x=3. Several

tweaks to output format from fer65.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6534 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-03-15 20:44:03 +00:00
parent 0224e76c44
commit 8d21cdf1c7
2 changed files with 12 additions and 8 deletions

View File

@ -50,10 +50,11 @@ program fer65
open(20,file='fer65.20',status='unknown') open(20,file='fer65.20',status='unknown')
open(21,file='fer65.21',status='unknown') open(21,file='fer65.21',status='unknown')
write(20,1000) iters,ntrials,naggressive,d write(20,1000) submode,iters,ntrials,naggressive,d
1000 format('Iters:',i6,' T:',i7,' Aggressive:',i3,' Doppler:',f6.1) 1000 format('JT65',a1,' Iters:',i6,' T:',i7,' Aggressive:',i3, &
' Doppler:',f6.1)
write(20,1002) write(20,1002)
1002 format(' dB nsync ngood nbad sync snr ', & 1002 format(/' dB nsync ngood nbad sync dsnr ', &
'DT Freq Drift'/77('-')) 'DT Freq Drift'/77('-'))
do isnr=0,20 do isnr=0,20
@ -138,6 +139,7 @@ program fer65
endif endif
dsnr=xsnr-snr dsnr=xsnr-snr
if(ngood.eq.0) dsnr=0.
write(20,1100) snr,nsync,ngood,nbad,xsync,esync,dsnr,esnr, & write(20,1100) snr,nsync,ngood,nbad,xsync,esync,dsnr,esnr, &
xdt,edt,xfreq,efreq,xdrift,edrift xdt,edt,xfreq,efreq,xdrift,edrift
1100 format(f5.1,2i6i4,2f6.1,f6.1,f5.1,f6.2,f5.2,f7.1,3f5.1) 1100 format(f5.1,2i6i4,2f6.1,f6.1,f5.1,f6.2,f5.2,f7.1,3f5.1)

View File

@ -200,18 +200,20 @@ program jt65sim
cspread(0)=1.0 cspread(0)=1.0
cspread(NH)=0. cspread(NH)=0.
! The following statement was added 3/15/2016 to make the half-power tone ! The following options were added 3/15/2016 to make the half-power tone
! widths equal to the requested Doppler spread. (Previously we effectively ! widths equal to the requested Doppler spread. (Previously we effectively
! used b=1.0, which made the tones 1.665 times wider.) ! used b=1.0 and Gaussian shape, which made the tones 1.665 times wider.)
b=2.0*sqrt(log(2.0)) ! b=2.0*sqrt(log(2.0)) !Gaussian
b=2.0 !Lorenzian
do i=1,NH do i=1,NH
f=i*df f=i*df
x=b*f/fspread x=b*f/fspread
z=0. z=0.
a=0. a=0.
if(x.lt.50.0) then if(x.lt.3.0) then !Cutoff beyond x=3
a=sqrt(exp(-x*x)) ! a=sqrt(exp(-x*x)) !Gaussian
a=sqrt(1.0/(1.0+x*x)) !Lorentzian
call random_number(r1) call random_number(r1)
phi1=twopi*r1 phi1=twopi*r1
z=a*cmplx(cos(phi1),sin(phi1)) z=a*cmplx(cos(phi1),sin(phi1))