mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-02-22 05:28:34 -05:00
JT9 decoder (jt9.exe) now basically working.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2632 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
31f01dfff5
commit
247452dfab
@ -138,7 +138,6 @@ program jt9sim
|
|||||||
j=j+1
|
j=j+1
|
||||||
i4DataSymNoGray(j)=igray(itone(i)-1,-1)
|
i4DataSymNoGray(j)=igray(itone(i)-1,-1)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
call unpackbits(i4DataSymNoGray,69,3,i1ScrambledBits)
|
call unpackbits(i4DataSymNoGray,69,3,i1ScrambledBits)
|
||||||
call interleave9(i1ScrambledBits,-1,i1Bits)
|
call interleave9(i1ScrambledBits,-1,i1Bits)
|
||||||
|
|
||||||
|
@ -3,9 +3,11 @@ subroutine spec9(c0,npts8,nsps,f0a,lagpk,fpk)
|
|||||||
parameter (MAXFFT=31500)
|
parameter (MAXFFT=31500)
|
||||||
complex c0(0:npts8-1)
|
complex c0(0:npts8-1)
|
||||||
real s(0:MAXFFT-1)
|
real s(0:MAXFFT-1)
|
||||||
real ssym(0:9,184)
|
real ssym(0:8,184)
|
||||||
|
real ssymg(0:8,184)
|
||||||
complex c(0:MAXFFT-1)
|
complex c(0:MAXFFT-1)
|
||||||
integer*1 softbit(207)
|
integer*1 i1SoftSymbolsScrambled(207)
|
||||||
|
integer*1 i1SoftSymbols(207)
|
||||||
integer ibit(207)
|
integer ibit(207)
|
||||||
|
|
||||||
integer*1 t1(13) !72 bits and zero tail as 8-bit bytes
|
integer*1 t1(13) !72 bits and zero tail as 8-bit bytes
|
||||||
@ -17,6 +19,9 @@ subroutine spec9(c0,npts8,nsps,f0a,lagpk,fpk)
|
|||||||
integer isync(85)
|
integer isync(85)
|
||||||
integer ii(16) !Locations of sync symbols
|
integer ii(16) !Locations of sync symbols
|
||||||
data ii/1,6,11,16,21,26,31,39,45,51,57,63,69,75,81,85/
|
data ii/1,6,11,16,21,26,31,39,45,51,57,63,69,75,81,85/
|
||||||
|
integer ig(0:7)
|
||||||
|
data ig/0,1,3,2,7,6,4,5/
|
||||||
|
! data ig/0,1,3,2,6,7,5,4/
|
||||||
|
|
||||||
isync=0
|
isync=0
|
||||||
do i=1,16
|
do i=1,16
|
||||||
@ -34,7 +39,6 @@ subroutine spec9(c0,npts8,nsps,f0a,lagpk,fpk)
|
|||||||
s=0.
|
s=0.
|
||||||
istart=lagpk*nsps8 + idt
|
istart=lagpk*nsps8 + idt
|
||||||
nsym=min((npts8-istart)/nsps8,85)
|
nsym=min((npts8-istart)/nsps8,85)
|
||||||
print*,f0a,lagpk,fpk,fshift,nsym
|
|
||||||
|
|
||||||
do j=0,nsym-1
|
do j=0,nsym-1
|
||||||
ia=j*nsps8 + istart
|
ia=j*nsps8 + istart
|
||||||
@ -55,35 +59,24 @@ subroutine spec9(c0,npts8,nsps,f0a,lagpk,fpk)
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
! sync=0.
|
ssymg=ssym
|
||||||
! do i=1,16
|
|
||||||
! sync=sync + ssym(0,ii(i))
|
|
||||||
! enddo
|
|
||||||
|
|
||||||
do i=0,nfft-1
|
|
||||||
freq = f0a + i*df
|
|
||||||
write(71,3001) i,i*df,freq,s(i)
|
|
||||||
3001 format(i8,3f12.3)
|
|
||||||
enddo
|
|
||||||
|
|
||||||
do j=1,nsym
|
do j=1,nsym
|
||||||
write(72,3002) j,(ssym(i,j),i=0,8)
|
ssym(0,j)=ssymg(0,j)
|
||||||
3002 format(i3,9f7.2)
|
do i=0,7
|
||||||
|
ssym(ig(i)+1,j)=ssymg(i+1,j)
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
m0=3
|
m0=3
|
||||||
ntones=8
|
ntones=8
|
||||||
k=0
|
k=0
|
||||||
do j=1,nsym
|
do j=1,nsym
|
||||||
! print*,j,k,nsym
|
|
||||||
if(isync(j).eq.1) cycle
|
if(isync(j).eq.1) cycle
|
||||||
do m=m0-1,0,-1 !Get bit-wise soft symbols
|
do m=m0-1,0,-1 !Get bit-wise soft symbols
|
||||||
n=2**m
|
n=2**m
|
||||||
r1=0.
|
r1=0.
|
||||||
r2=0.
|
r2=0.
|
||||||
do ig=0,ntones-1
|
do i=0,ntones-1
|
||||||
! i=igray(ig,-1)
|
|
||||||
i=ig
|
|
||||||
if(iand(i,n).ne.0) then
|
if(iand(i,n).ne.0) then
|
||||||
r1=max(r1,ssym(i+1,j))
|
r1=max(r1,ssym(i+1,j))
|
||||||
else
|
else
|
||||||
@ -91,15 +84,14 @@ subroutine spec9(c0,npts8,nsps,f0a,lagpk,fpk)
|
|||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
k=k+1
|
k=k+1
|
||||||
softbit(k)=min(127,max(-127,nint(10.0*(r1-r2)))) + 128
|
i1SoftSymbolsScrambled(k)=min(127,max(-127,nint(10.0*(r1-r2)))) + 128
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
ibit=0
|
ibit=0
|
||||||
do i=1,207
|
do i=1,207
|
||||||
if(softbit(i).lt.0) ibit(i)=1
|
if(i1SoftSymbolsScrambled(i).lt.0) ibit(i)=1
|
||||||
enddo
|
enddo
|
||||||
print*,ibit
|
|
||||||
|
|
||||||
! Get the metric table
|
! Get the metric table
|
||||||
bias=0.37 !To be optimized, in decoder program
|
bias=0.37 !To be optimized, in decoder program
|
||||||
@ -116,10 +108,9 @@ subroutine spec9(c0,npts8,nsps,f0a,lagpk,fpk)
|
|||||||
ndelta=17
|
ndelta=17
|
||||||
limit=1000
|
limit=1000
|
||||||
|
|
||||||
print*,softbit
|
call interleave9(i1SoftSymbolsScrambled,-1,i1SoftSymbols)
|
||||||
call fano232(softbit,nbits+31,mettab,ndelta,limit,t1,ncycles,metric,ierr, &
|
call fano232(i1SoftSymbols,nbits+31,mettab,ndelta,limit,t1,ncycles, &
|
||||||
maxmetric,maxnp)
|
metric,ierr,maxmetric,maxnp)
|
||||||
print*,ncycles
|
|
||||||
|
|
||||||
nbytes=(nbits+7)/8
|
nbytes=(nbits+7)/8
|
||||||
do i=1,nbytes
|
do i=1,nbytes
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//--------------------------------------------------------------- MainWindow
|
//-------------------------------------------------------------- MainWindow
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
#include "devsetup.h"
|
#include "devsetup.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user