mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-26 06:08:42 -05:00
Merge branch 'feat-fst280' of bitbucket.org:k1jt/wsjtx into feat-fst280
This commit is contained in:
commit
bb5041da98
@ -73,26 +73,38 @@ contains
|
|||||||
nmax=15*12000
|
nmax=15*12000
|
||||||
ndown=20/hmod !nss=40,80,160,400
|
ndown=20/hmod !nss=40,80,160,400
|
||||||
if(hmod.eq.8) ndown=2
|
if(hmod.eq.8) ndown=2
|
||||||
|
nfft1=int(nmax/ndown)*ndown
|
||||||
else if(ntrperiod.eq.30) then
|
else if(ntrperiod.eq.30) then
|
||||||
nsps=1680
|
nsps=1680
|
||||||
nmax=30*12000
|
nmax=30*12000
|
||||||
ndown=42/hmod !nss=40,80,168,336
|
ndown=42/hmod !nss=40,80,168,336
|
||||||
if(hmod.eq.4) ndown=10
|
nfft1=359856
|
||||||
if(hmod.eq.8) ndown=5
|
if(hmod.eq.4) then
|
||||||
|
ndown=10
|
||||||
|
nfft1=nmax
|
||||||
|
endif
|
||||||
|
if(hmod.eq.8) then
|
||||||
|
ndown=5
|
||||||
|
nfft1=nmax
|
||||||
|
endif
|
||||||
|
nfft1=int(nmax/ndown)*ndown
|
||||||
else if(ntrperiod.eq.60) then
|
else if(ntrperiod.eq.60) then
|
||||||
nsps=3888
|
nsps=3888
|
||||||
nmax=60*12000
|
nmax=60*12000
|
||||||
ndown=96/hmod !nss=36,81,162,324
|
ndown=96/hmod !nss=36,81,162,324
|
||||||
if(hmod.eq.1) ndown=108
|
if(hmod.eq.1) ndown=108
|
||||||
|
nfft1=int(719808/ndown)*ndown
|
||||||
else if(ntrperiod.eq.120) then
|
else if(ntrperiod.eq.120) then
|
||||||
nsps=8200
|
nsps=8200
|
||||||
nmax=120*12000
|
nmax=120*12000
|
||||||
ndown=200/hmod !nss=40,82,164,328
|
ndown=200/hmod !nss=40,82,164,328
|
||||||
if(hmod.eq.1) ndown=205
|
if(hmod.eq.1) ndown=205
|
||||||
|
nfft1=int(nmax/ndown)*ndown
|
||||||
else if(ntrperiod.eq.300) then
|
else if(ntrperiod.eq.300) then
|
||||||
nsps=21504
|
nsps=21504
|
||||||
nmax=300*12000
|
nmax=300*12000
|
||||||
ndown=512/hmod !nss=42,84,168,336
|
ndown=512/hmod !nss=42,84,168,336
|
||||||
|
nfft1=int((nmax-200)/ndown)*ndown
|
||||||
end if
|
end if
|
||||||
nss=nsps/ndown
|
nss=nsps/ndown
|
||||||
fs=12000.0 !Sample rate
|
fs=12000.0 !Sample rate
|
||||||
@ -102,16 +114,17 @@ contains
|
|||||||
dt2=1.0/fs2
|
dt2=1.0/fs2
|
||||||
tt=nsps*dt !Duration of "itone" symbols (s)
|
tt=nsps*dt !Duration of "itone" symbols (s)
|
||||||
baud=1.0/tt
|
baud=1.0/tt
|
||||||
nfft1=2*int(nmax/2)
|
sigbw=4.0*hmod*baud
|
||||||
|
nfft2=nfft1/ndown !make sure that nfft1 is exactly nfft2*ndown
|
||||||
|
nfft1=nfft2*ndown
|
||||||
nh1=nfft1/2
|
nh1=nfft1/2
|
||||||
|
|
||||||
allocate( r_data(1:nfft1+2) )
|
allocate( r_data(1:nfft1+2) )
|
||||||
allocate( c_bigfft(0:nfft1/2) )
|
allocate( c_bigfft(0:nfft1/2) )
|
||||||
|
|
||||||
nfft2=nfft1/ndown
|
|
||||||
allocate( c2(0:nfft2-1) )
|
allocate( c2(0:nfft2-1) )
|
||||||
allocate( cframe(0:164*nss-1) )
|
allocate( cframe(0:160*nss-1) )
|
||||||
|
|
||||||
npts=nmax
|
|
||||||
if(single_decode) then
|
if(single_decode) then
|
||||||
fa=max(100,nint(nfqso+1.5*hmod*baud-ntol))
|
fa=max(100,nint(nfqso+1.5*hmod*baud-ntol))
|
||||||
fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol))
|
fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol))
|
||||||
@ -161,7 +174,7 @@ contains
|
|||||||
! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec.
|
! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec.
|
||||||
! The size of the downsampled c2 array is nfft2=nfft1/ndown
|
! The size of the downsampled c2 array is nfft2=nfft1/ndown
|
||||||
|
|
||||||
call fst240_downsample(c_bigfft,nfft1,ndown,fc0,c2)
|
call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2)
|
||||||
|
|
||||||
call timer('sync240 ',0)
|
call timer('sync240 ',0)
|
||||||
do isync=0,1
|
do isync=0,1
|
||||||
@ -254,7 +267,7 @@ contains
|
|||||||
fc_synced=candidates(icand,3)
|
fc_synced=candidates(icand,3)
|
||||||
isbest=nint(candidates(icand,4))
|
isbest=nint(candidates(icand,4))
|
||||||
xdt=(isbest-nspsec)/fs2
|
xdt=(isbest-nspsec)/fs2
|
||||||
call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,c2)
|
call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2)
|
||||||
|
|
||||||
do ijitter=0,jittermax
|
do ijitter=0,jittermax
|
||||||
if(ijitter.eq.0) ioffset=0
|
if(ijitter.eq.0) ioffset=0
|
||||||
@ -459,7 +472,7 @@ contains
|
|||||||
return
|
return
|
||||||
end subroutine sync_fst240
|
end subroutine sync_fst240
|
||||||
|
|
||||||
subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,c1)
|
subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,sigbw,c1)
|
||||||
|
|
||||||
! Output: Complex data in c(), sampled at 12000/ndown Hz
|
! Output: Complex data in c(), sampled at 12000/ndown Hz
|
||||||
|
|
||||||
@ -468,9 +481,12 @@ contains
|
|||||||
|
|
||||||
df=12000.0/nfft1
|
df=12000.0/nfft1
|
||||||
i0=nint(f0/df)
|
i0=nint(f0/df)
|
||||||
|
ih=nint( ( f0 + 1.2*sigbw/2.0 )/df)
|
||||||
|
nbw=ih-i0+1
|
||||||
|
c1=0.
|
||||||
c1(0)=c_bigfft(i0)
|
c1(0)=c_bigfft(i0)
|
||||||
nfft2=nfft1/ndown
|
nfft2=nfft1/ndown
|
||||||
do i=1,nfft2/2
|
do i=1,nbw
|
||||||
if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i)
|
if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i)
|
||||||
if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i)
|
if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i)
|
||||||
enddo
|
enddo
|
||||||
|
Loading…
Reference in New Issue
Block a user