mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-25 10:00:23 -04:00 
			
		
		
		
	This merge brings the WSPR feature development into the main line ready for release in a future v1.6 release. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5424 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| subroutine savec2(c2name,ntrseconds,f0m1500)
 | |
| 
 | |
| ! Array c0() has complex samples at 1500 Hz sample rate.
 | |
| ! WSPR-2:  downsample by 1/4 to produce c2, centered at 1500 Hz
 | |
| ! WSPR-15: downsample by 1/32 to produce c2, centered at 1612.5 Hz
 | |
| 
 | |
|   parameter (NDMAX=120*1500)         !Sample intervals at 1500 Hz rate
 | |
|   parameter (MAXFFT=256*1024)
 | |
| 
 | |
|   character*(*) c2name
 | |
|   character*14 outfile
 | |
|   real*8 f0m1500
 | |
|   complex c0
 | |
|   complex c1(0:MAXFFT-1)
 | |
|   complex c2(0:65535)
 | |
|   common/c0com/c0(0:NDMAX-1)
 | |
| 
 | |
|   ntrminutes=ntrseconds/60
 | |
|   npts=114*1500
 | |
|   nfft1=262144
 | |
|   if(ntrminutes.eq.15) then
 | |
|      npts=890*1500
 | |
|      nfft1=MAXFFT
 | |
|   endif
 | |
|   df1=1500.0/nfft1
 | |
|   fac=1.0/nfft1
 | |
|   c1(0:npts-1)=fac*c0(0:npts-1)
 | |
|   c1(npts:nfft1-1)=0.
 | |
| 
 | |
|   call four2a(c1,nfft1,1,1,1)                 !Complex FFT to frequency domain
 | |
| 
 | |
| ! Select the desired frequency range
 | |
|   nfft2=65536
 | |
|   nh2=nfft2/2
 | |
|   if(ntrminutes.eq.2) then
 | |
|      c2(0:nh2)=c1(0:nh2)
 | |
|      c2(nh2+1:nfft2-1)=c1(nfft1-nh2+1:nfft1-1)
 | |
|   else
 | |
|      i0=nint(112.5/df1)
 | |
|      c2(0:nh2)=c1(i0:i0+nh2)
 | |
|      c2(nh2+1:nfft2-1)=c1(i0-nh2+1:i0-1)
 | |
|   endif
 | |
| 
 | |
|   call four2a(c2,nfft2,1,-1,1)      !Shorter complex FFT, back to time domain
 | |
| 
 | |
| ! Write complex time-domain data to disk.
 | |
|   i1=index(c2name,'.c2')
 | |
|   outfile=c2name(i1-11:i1+2)
 | |
|   open(18,file=c2name,status='unknown',access='stream')
 | |
|   write(18) outfile,ntrminutes,f0m1500,c2(0:45000-1)
 | |
|   close(18)
 | |
| 
 | |
|   return
 | |
| end subroutine savec2
 |