Another step toward a jt9 decoder.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2624 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2012-10-01 19:40:23 +00:00
parent e72a766337
commit e2a62aa0c4
6 changed files with 22 additions and 37 deletions

View File

@ -44,12 +44,12 @@ Receiving
---------
1. Apply noise blanking with the timf2 method
2. Filter to 1000 Hz bandwidth and downsample (1/8) to 1500 Hz, saving
complex data to array c0(1350000).
complex data to array c0(1350000). (FIR? FFT2?)
3. Compute symbol-length spectra at half-symbol steps. Use for
waterfall display s(15750) and save in ss(184,15750) and
savg(15750) for detecting sync vectors.
waterfall display s(22000) and save in ss(184,22000) and
savg(22000), for detecting sync vectors.
4. At time Tdec, find sync vectors in ss(); get estimates of DF, DT
5. Do full-length FFT, NFFT1=96*nsps2, zero-pad as required.
5. Do full-length FFT, NFFT1=96*nsps2, zero-padded as required.
6. For each candidate signal, do inverse FFT of length 1536. This
yields 16 complex samples per symbol, and sync tone should be
close to zero frequency.

View File

@ -17,7 +17,8 @@ CFLAGS = -I. -fbounds-check -mno-stack-arg-probe
%.o: %.F90
${FC} ${FFLAGS} -c $<
all: libm65.a jt9sim.exe
all: libm65.a jt9sim.exe jt9.exe
#all: libm65.a jt9.exe
OBJS1 = trimlist.o display.o getdphi.o pctile.o ccf65.o \
decode1a.o sort.o filbig.o fil6521.o afc65b.o \
@ -35,19 +36,20 @@ OBJS1 = trimlist.o display.o getdphi.o pctile.o ccf65.o \
db.o specjtms.o genmsk.o mskdf.o tweak1.o syncmsk.o \
lenmsk.o decodemsk.o ping.o makepings.o alignmsg.o match.o \
rtping.o jtmsk.o hipass.o setupmsk.o foldmsk.o genjt9.o \
packbits.o unpackbits.o vit216.o tab.o
packbits.o unpackbits.o encode232.o interleave9.o entail.o \
fano232.o
libm65.a: $(OBJS1)
ar cr libm65.a $(OBJS1)
ranlib libm65.a
OBJS3 = jt9sim.o noisegen.o gran.o tab.o
OBJS3 = jt9sim.o gran.o
jt9sim.exe: $(OBJS3) libm65.a
$(FC) -o jt9sim.exe $(OBJS3) libm65.a
OBJS2 = JT65code.o
JT65code.exe: $(OBJS2) libm65.a
$(FC) -o JT65code.exe $(OBJS2) libm65.a
OBJS2 = jt9.o symspec.o timf2x.o timer.o
jt9.exe: $(OBJS2) libm65.a
$(FC) -o jt9.exe $(OBJS2) libm65.a ../libfftw3f_win.a
INCPATH = -I'c:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtCore' \
-I'c:/QtSDK/Desktop/Qt/4.7.4/mingw/include' \
@ -56,36 +58,17 @@ INCPATH = -I'c:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtCore' \
ipcomm.o: ipcomm.cpp
g++ -c $(INCPATH) ipcomm.cpp
#m65a.o: m65a.f90
# $(FC) -c -fno-second-underscore -cpp m65a.f90
sec_midn.o: sec_midn.f90
$(FC) -c -fno-second-underscore sec_midn.f90
#symspec.o: ../symspec.f90
# $(FC) -c $(FFLAGS) -o symspec.o ../symspec.f90
OBJS4 = tastro.o astro0.o libm65.a
tastro.exe: $(OBJS4)
$(FC) $(FFLAGS) -o tastro.exe $(OBJS4) libm65.a
OBJS5 = t1.o genms.o libm65.a
t1.exe: $(OBJS5)
$(FC) $(FFLAGS) -o t1.exe $(OBJS5) libm65.a ../libfftw3f_win.a \
#astro0.o: ../astro0.f90
# $(FC) -c $(FFLAGS) -o astro0.o ../astro0.f90
init_rs.o: init_rs.c
$(CC) -c -DBIGSYM=1 -o init_rs.o init_rs.c
encode_rs.o: encode_rs.c
$(CC) -c -DBIGSYM=1 -o encode_rs.o encode_rs.c
decode_rs.o: decode_rs.c
$(CC) -c -DBIGSYM=1 -o decode_rs.o decode_rs.c
OBJS5 = t1.o
t1.exe: $(OBJS5) libm65.a
$(FC) -o t1.exe $(OBJS5) libm65.a ../libfftw3f_win.a
.PHONY : clean
clean:
rm -f *.o libm65.a m65.exe jt65code.exe
rm -f *.o libm65.a wsjtx.exe jt9sim.exe jt9.exe

View File

@ -32,7 +32,7 @@ program jt9
endif
read(arg,*) ntrperiod
ifile1=2
limtrace=10000
limtrace=0
lu=12
call timer('jt9 ',0) !###

View File

@ -95,7 +95,9 @@ program jt9sim
open(10,file=fname//'.wav',access='stream',status='unknown')
if(snrdb.lt.90) then
call noisegen(dat,npts) !Generate Gaussian noise
do i=1,npts
dat(i)=gran()
enddo
else
dat(1:npts)=0.
endif

View File

@ -139,7 +139,7 @@ subroutine symspecx(k,ntrperiod,nsps,ndiskdat,nb,nbslider,pxdb,s,ihsym, &
s(i)=sx
enddo
if(ihsym.eq.175) then
if(ihsym.eq.168) then
do i=1,iz
write(71,3001) i*df3,savg(i),10.0*log10(savg(i))
3001 format(f12.6,e12.3,f12.3)

View File

@ -1,4 +1,4 @@
//-------------------------------------------------------------- MainWindow
//------------------------------------------------------------- MainWindow
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "devsetup.h"