mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	In mainwindow.cpp, return after executing call to fastSink(). ###???### git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6464 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
subroutine rectify_msk(c,msg0,imsg,freq2)
 | 
						|
 | 
						|
  parameter (NSPM=1404)
 | 
						|
  complex c(0:NSPM-1)                         !Received data
 | 
						|
  complex cmsg(0:NSPM-1)                      !Message waveform
 | 
						|
  complex c1(0:NSPM-1)                        !Rectified signal
 | 
						|
  complex c2(0:NSPM-1)                        !Integral of rectified signal
 | 
						|
  complex c3(0:2*NSPM-1)                      !FFT of rectified signal
 | 
						|
  complex cfac
 | 
						|
  character*22 msg0,msg,msgsent
 | 
						|
  integer i4tone(234)
 | 
						|
 | 
						|
  ichk=0
 | 
						|
  msg=msg0
 | 
						|
  nsym=234
 | 
						|
  if(imsg.ge.0) then
 | 
						|
     ichk=10000+imsg
 | 
						|
     msg="<C1ALL C2ALL> 73"
 | 
						|
     nsym=35
 | 
						|
  endif
 | 
						|
  call genmsk(msg,ichk,msgsent,i4tone,itype)  !Get tone sequence for msg
 | 
						|
 | 
						|
  twopi=8.0*atan(1.0)
 | 
						|
  dt=1.0/12000.0
 | 
						|
  f0=1000.0
 | 
						|
  f1=2000.0
 | 
						|
  phi=0.
 | 
						|
  dphi=0.
 | 
						|
  k=-1
 | 
						|
  c2=0.
 | 
						|
  do j=1,nsym                                  !Generate Tx waveform for msg
 | 
						|
     if(i4tone(j).eq.0) dphi=twopi*f0*dt
 | 
						|
     if(i4tone(j).eq.1) dphi=twopi*f1*dt
 | 
						|
     do i=1,6
 | 
						|
        k=k+1
 | 
						|
        phi=phi+dphi
 | 
						|
        cmsg(k)=cmplx(cos(phi),sin(phi))
 | 
						|
        c1(k)=conjg(cmsg(k))*c(k)
 | 
						|
        if(k.ge.1) c2(k)=c2(k-1) + c1(k)
 | 
						|
     enddo
 | 
						|
  enddo
 | 
						|
  c2(0)=c2(1)
 | 
						|
  pha=atan2(aimag(c2(NSPM-1)),real(c2(NSPM-1)))
 | 
						|
  cfac=cmplx(cos(pha),-sin(pha))
 | 
						|
  c1=cfac*c1
 | 
						|
  c2=cfac*c2
 | 
						|
  nfft=2*NSPM
 | 
						|
  c3(0:NSPM-1)=c2
 | 
						|
  c3(NSPM:nfft-1)=0.
 | 
						|
  df=12000.0/nfft
 | 
						|
  call four2a(c3,nfft,1,-1,1)
 | 
						|
  smax=0.
 | 
						|
  do i=0,nfft-1
 | 
						|
     f=i*df
 | 
						|
     if(i.gt.nfft/2) f=f-12000.0
 | 
						|
     s=1.e-10*(real(c3(i))**2 + aimag(c3(i))**2)
 | 
						|
     if(s.gt.smax) then
 | 
						|
        smax=s
 | 
						|
        freq2=1500.0 + f
 | 
						|
     endif
 | 
						|
  enddo
 | 
						|
 | 
						|
  return
 | 
						|
end subroutine rectify_msk
 |