mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-25 10:00:23 -04:00 
			
		
		
		
	git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6521 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| subroutine wav12(d2,d1,npts,nbitsam2)
 | |
| 
 | |
| ! Convert i*2 or i*1 data at 11025 Hz (from WSJT *.wav files)
 | |
| ! to i*2 data at 12000 Hz.
 | |
| 
 | |
| ! Input:  i*2 d2(npts) or i*1 d1(npts)
 | |
| !         i*2 nbitsam2 = 8 or 16 (bits per sample)
 | |
| 
 | |
| ! Output: npts = (12000*npts)/11025
 | |
| !         i*2 d2(npts)
 | |
| 
 | |
|   parameter (NZ11=60*11025,NZ12=60*12000)
 | |
|   parameter (NFFT1=64*11025,NFFT2=64*12000)
 | |
|   integer*1 d1(NZ11)
 | |
|   integer*1 d1a(NZ11)
 | |
|   integer*1 i1
 | |
|   integer*2 i2
 | |
|   integer*2 d2(NZ12)
 | |
|   real x(NFFT2)
 | |
|   complex cx(0:NFFT2/2)
 | |
|   integer*2 nbitsam2
 | |
|   equivalence (x,cx),(i1,i2)
 | |
| 
 | |
|   jz=min(NZ11,npts)
 | |
|   if(nbitsam2.eq.8) then
 | |
|      jz=min(NZ11,npts)
 | |
|      d1a(1:jz)=d1(1:jz)            !d1 and d2 may be same array in calling prog 
 | |
|      do i=1,jz                     !Move data from d1a into d2
 | |
|         i2=0
 | |
|         i1=d1a(i)
 | |
|         d2(i)=10*(i2-128)
 | |
|      enddo
 | |
|   endif
 | |
| 
 | |
|   x(1:jz)=d2(1:jz)
 | |
|   x(jz+1:)=0.0
 | |
|   call four2a(x,nfft1,1,-1,0)                    !Forwarxd FFT, r2c
 | |
|   cx(nfft1/2:)=0.0
 | |
|   call four2a(cx,nfft2,1,1,-1)                   !Inverse FFT, c2r
 | |
| 
 | |
|   npts=jz*12000.0/11025.0
 | |
|   fac=1.e-6
 | |
| !  if(nbitsam2.eq.16) fac=3.e-6
 | |
|   x=fac*x
 | |
|   d2(1:npts)=nint(x(1:npts))
 | |
|   if(npts.lt.NZ12) d2(npts+1:NZ12)=0
 | |
| 
 | |
|   return
 | |
| end subroutine wav12
 |