Fix a time delay introduced in refspectrum.f90.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7778 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-07-03 15:21:38 +00:00
parent e662ef83d5
commit e1b2bdef06
2 changed files with 8 additions and 6 deletions

View File

@ -1,11 +1,11 @@
subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
subroutine refspectrum(id2,id2b,kk,bclear,brefspec,buseref,fname)
! Input:
! id2 i*2 Raw 16-bit integer data, 12000 Hz sample rate
! brefspec logical True when accumulating a reference spectrum
parameter (NFFT=6912,NH=NFFT/2,NPOLYLOW=400,NPOLYHIGH=2600)
integer*2 id2(NFFT)
integer*2 id2(NFFT),id2b(120*12000)
logical*1 bclear,brefspec,buseref,blastuse
real x0(0:NH-1) !Input samples
@ -146,9 +146,11 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
cx=fil*cx
call four2a(cx,NFFT,1,1,-1) !c2r FFT (back to time domain)
x1=x1s + x(0:NH-1) !Add previous segment's 2nd half
id2(1:NH)=nint(x1)
! id2(1:NH)=nint(x1)
if(kk.ge.6912) id2b(kk-6192+1:kk-6192+NH)=nint(x1)
x1s=x(NH:NFFT-1) !Save the new 2nd half
endif
blastuse=buseref
return
end subroutine refspectrum

View File

@ -124,8 +124,8 @@ extern "C" {
void wav12_(short d2[], short d1[], int* nbytes, short* nbitsam2);
void refspectrum_(short int d2[], bool* bclearrefspec, bool* brefspec,
bool* buseref, const char* c_fname, int len);
void refspectrum_(short int d2[], short int d2b[], int* k, bool* bclearrefspec,
bool* brefspec, bool* buseref, const char* c_fname, int len);
void freqcal_(short d2[], int* k, int* nkhz,int* noffset, int* ntol,
char line[], int len);
@ -1148,7 +1148,7 @@ void MainWindow::dataSink(qint64 frames)
}
m_bUseRef=m_wideGraph->useRef();
refspectrum_(&dec_data.d2[k-m_nsps/2],&m_bClearRefSpec,&m_bRefSpec,
refspectrum_(&dec_data.d2[k-m_nsps/2],&dec_data.d2[0],&k,&m_bClearRefSpec,&m_bRefSpec,
&m_bUseRef,c_fname,len);
m_bClearRefSpec=false;