mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-05 06:37:53 -04:00
Resize arrays to enable processing up to full 60 seconds of data.
This commit is contained in:
parent
d62cdbaf2b
commit
bf861d9979
@ -7,7 +7,7 @@ extern "C" {
|
|||||||
|
|
||||||
extern struct { //This is "common/datcom/..." in Fortran
|
extern struct { //This is "common/datcom/..." in Fortran
|
||||||
float d4[2*5760000]; //Raw I/Q data from Linrad
|
float d4[2*5760000]; //Raw I/Q data from Linrad
|
||||||
float ss[373*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol
|
float ss[400*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol
|
||||||
float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol
|
float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol
|
||||||
double fcenter; //Center freq from Linrad (MHz)
|
double fcenter; //Center freq from Linrad (MHz)
|
||||||
int nutc; //UTC as integer, HHMM
|
int nutc; //UTC as integer, HHMM
|
||||||
@ -47,7 +47,7 @@ extern struct { //This is "common/datcom/..." in Fortran
|
|||||||
|
|
||||||
extern struct { //This is "common/datcom/..." in Fortran
|
extern struct { //This is "common/datcom/..." in Fortran
|
||||||
float d4[2*5760000]; //Raw I/Q data from Linrad
|
float d4[2*5760000]; //Raw I/Q data from Linrad
|
||||||
float ss[373*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol
|
float ss[400*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol
|
||||||
float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol
|
float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol
|
||||||
double fcenter; //Center freq from Linrad (MHz)
|
double fcenter; //Center freq from Linrad (MHz)
|
||||||
int nutc; //UTC as integer, HHMM
|
int nutc; //UTC as integer, HHMM
|
||||||
|
@ -39,7 +39,6 @@ void getfile(QString fname, bool xpol, int dbDgrd)
|
|||||||
datcom_.d4[j++]=(float)id[i+1];
|
datcom_.d4[j++]=(float)id[i+1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qDebug() << "cc" << j << j/(2.0*96000.0);
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
datcom_.ndiskdat=1;
|
datcom_.ndiskdat=1;
|
||||||
|
@ -3,7 +3,7 @@ subroutine decode0(dd,ss,savg)
|
|||||||
use timer_module, only: timer
|
use timer_module, only: timer
|
||||||
parameter (NSMAX=60*96000)
|
parameter (NSMAX=60*96000)
|
||||||
|
|
||||||
real*4 dd(2,NSMAX),ss(373,NFFT),savg(NFFT)
|
real*4 dd(2,NSMAX),ss(400,NFFT),savg(NFFT)
|
||||||
real*8 fcenter
|
real*8 fcenter
|
||||||
integer offset
|
integer offset
|
||||||
integer hist(0:32768)
|
integer hist(0:32768)
|
||||||
|
@ -13,7 +13,7 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
|||||||
parameter (NFFT=32768) !FFTs done in symspec()
|
parameter (NFFT=32768) !FFTs done in symspec()
|
||||||
parameter (MAX_CANDIDATES=50)
|
parameter (MAX_CANDIDATES=50)
|
||||||
type(candidate) :: cand(MAX_CANDIDATES)
|
type(candidate) :: cand(MAX_CANDIDATES)
|
||||||
real ss(373,NFFT) !Symbol spectra
|
real ss(400,NFFT) !Symbol spectra
|
||||||
real savg0(NFFT),savg(NFFT) !Average spectra over whole Rx sequence
|
real savg0(NFFT),savg(NFFT) !Average spectra over whole Rx sequence
|
||||||
integer ipk1(1) !Peak index of local portion of spectrum
|
integer ipk1(1) !Peak index of local portion of spectrum
|
||||||
logical sync_ok !True if sync pattern is present
|
logical sync_ok !True if sync pattern is present
|
||||||
|
@ -4,7 +4,7 @@ subroutine q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr,xdt)
|
|||||||
|
|
||||||
parameter (NFFT=32768)
|
parameter (NFFT=32768)
|
||||||
parameter (LAGMAX=33)
|
parameter (LAGMAX=33)
|
||||||
real ss(373,NFFT) !Symbol spectra
|
real ss(400,NFFT) !Symbol spectra
|
||||||
real ccf(0:LAGMAX) !The WSJT "blue curve", peak at DT
|
real ccf(0:LAGMAX) !The WSJT "blue curve", peak at DT
|
||||||
logical sync_ok
|
logical sync_ok
|
||||||
integer isync0(22),isync(22),ipk(1)
|
integer isync0(22),isync(22),ipk(1)
|
||||||
|
@ -16,7 +16,7 @@ subroutine q65c(itimer)
|
|||||||
character*6 mygrid,hisgrid
|
character*6 mygrid,hisgrid
|
||||||
character*20 datetime
|
character*20 datetime
|
||||||
|
|
||||||
common/datcom2/dd(2,5760000),ss(373,NFFT),savg(NFFT),nparams0
|
common/datcom2/dd(2,5760000),ss(400,NFFT),savg(NFFT),nparams0
|
||||||
|
|
||||||
!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ###
|
!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ###
|
||||||
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
|
common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, &
|
||||||
|
@ -20,7 +20,7 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
parameter (NSMAX=60*96000)
|
parameter (NSMAX=60*96000)
|
||||||
complex cx(NSMAX/64) !Data at 1378.125 samples/s
|
complex cx(NSMAX/64) !Data at 1378.125 samples/s
|
||||||
real dd(2,NSMAX) !I/Q data from Linrad
|
real dd(2,NSMAX) !I/Q data from Linrad
|
||||||
real ss(373,NFFT) !Symbol spectra
|
real ss(400,NFFT) !Symbol spectra
|
||||||
real savg(NFFT) !Average spectrum
|
real savg(NFFT) !Average spectrum
|
||||||
real*8 fcenter !Center RF frequency, MHz
|
real*8 fcenter !Center RF frequency, MHz
|
||||||
character mycall*12,hiscall*12,hisgrid*6
|
character mycall*12,hiscall*12,hisgrid*6
|
||||||
@ -57,7 +57,6 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
call filbig(dd,NSMAX,f0,newdat,nfsample,cx,n5) !Do the full-length FFT
|
call filbig(dd,NSMAX,f0,newdat,nfsample,cx,n5) !Do the full-length FFT
|
||||||
call timer('filbig ',1)
|
call timer('filbig ',1)
|
||||||
|
|
||||||
|
|
||||||
do icand=1,ncand !Attempt to decode each candidate
|
do icand=1,ncand !Attempt to decode each candidate
|
||||||
f0=cand(icand)%f
|
f0=cand(icand)%f
|
||||||
ntrperiod=cand(icand)%ntrperiod
|
ntrperiod=cand(icand)%ntrperiod
|
||||||
|
@ -11,7 +11,7 @@ subroutine recvpkt(nsam,nblock2,userx_no,k,buf4,buf8)
|
|||||||
integer*2 jd(4),kd(2),nblock2
|
integer*2 jd(4),kd(2),nblock2
|
||||||
real*4 yd(2)
|
real*4 yd(2)
|
||||||
real*8 fcenter
|
real*8 fcenter
|
||||||
common/datcom/dd(2,5760000),ss(373,NFFT),savg(NFFT),fcenter,nutc, &
|
common/datcom/dd(2,5760000),ss(400,NFFT),savg(NFFT),fcenter,nutc, &
|
||||||
junk(NJUNK)
|
junk(NJUNK)
|
||||||
equivalence (kd,d4)
|
equivalence (kd,d4)
|
||||||
equivalence (jd,d8,yd)
|
equivalence (jd,d8,yd)
|
||||||
|
@ -8,7 +8,7 @@ subroutine symspec(k,ndiskdat,nb,nbslider,nfsample, &
|
|||||||
! pxdb power in x channel (0-60 dB)
|
! pxdb power in x channel (0-60 dB)
|
||||||
! ssz5a polarized spectrum, for waterfall display
|
! ssz5a polarized spectrum, for waterfall display
|
||||||
! nkhz integer kHz portion of center frequency, e.g., 125 for 144.125
|
! nkhz integer kHz portion of center frequency, e.g., 125 for 144.125
|
||||||
! ihsym index number of this half-symbol (1-373)
|
! ihsym index number of this half-symbol (1-400)
|
||||||
! nzap number of samples zero'ed by noise blanker
|
! nzap number of samples zero'ed by noise blanker
|
||||||
|
|
||||||
include 'njunk.f90'
|
include 'njunk.f90'
|
||||||
@ -16,7 +16,7 @@ subroutine symspec(k,ndiskdat,nb,nbslider,nfsample, &
|
|||||||
parameter (NFFT=32768) !Length of FFTs
|
parameter (NFFT=32768) !Length of FFTs
|
||||||
real*8 ts,hsym
|
real*8 ts,hsym
|
||||||
real*8 fcenter
|
real*8 fcenter
|
||||||
common/datcom/dd(2,5760000),ss(373,NFFT),savg(NFFT),fcenter,nutc, &
|
common/datcom/dd(2,5760000),ss(400,NFFT),savg(NFFT),fcenter,nutc, &
|
||||||
junk(NJUNK)
|
junk(NJUNK)
|
||||||
real*4 ssz5a(NFFT),w(NFFT)
|
real*4 ssz5a(NFFT),w(NFFT)
|
||||||
complex cx(NFFT)
|
complex cx(NFFT)
|
||||||
@ -105,7 +105,7 @@ subroutine symspec(k,ndiskdat,nb,nbslider,nfsample, &
|
|||||||
ihsym=ihsym+1
|
ihsym=ihsym+1
|
||||||
cx=w*cx00 !Apply window for 2nd forward FFT
|
cx=w*cx00 !Apply window for 2nd forward FFT
|
||||||
call four2a(cx,NFFT,1,1,1) !Second forward FFT (X)
|
call four2a(cx,NFFT,1,1,1) !Second forward FFT (X)
|
||||||
n=min(373,ihsym)
|
n=min(400,ihsym)
|
||||||
do i=1,NFFT
|
do i=1,NFFT
|
||||||
sx=real(cx(i))**2 + aimag(cx(i))**2
|
sx=real(cx(i))**2 + aimag(cx(i))**2
|
||||||
ss(n,i)=sx ! Pol = 0
|
ss(n,i)=sx ! Pol = 0
|
||||||
|
@ -707,9 +707,9 @@ void MainWindow::diskDat() //diskDat()
|
|||||||
m_diskData=true;
|
m_diskData=true;
|
||||||
datcom_.newdat=1;
|
datcom_.newdat=1;
|
||||||
hsym=0.15*96000.0; //Samples per Q65-30x half-symbol or Q65-60x quarter-symbol
|
hsym=0.15*96000.0; //Samples per Q65-30x half-symbol or Q65-60x quarter-symbol
|
||||||
for(int i=0; i<380; i++) { // Do the half-symbol FFTs
|
for(int i=0; i<400; i++) { // Do the half-symbol FFTs
|
||||||
int k = i*hsym + 0.5;
|
int k = i*hsym + 0.5;
|
||||||
if(k > 56*96000) break;
|
if(k > 60*96000) break;
|
||||||
dataSink(k);
|
dataSink(k);
|
||||||
qApp->processEvents(); // Allow the waterfall to update
|
qApp->processEvents(); // Allow the waterfall to update
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ extern "C"
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
double d8[60*96000]; //This is "common/datcom/..." in fortran
|
double d8[60*96000]; //This is "common/datcom/..." in fortran
|
||||||
float ss[373*NFFT];
|
float ss[400*NFFT];
|
||||||
float savg[NFFT];
|
float savg[NFFT];
|
||||||
double fcenter;
|
double fcenter;
|
||||||
int nutc;
|
int nutc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user