mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 12:30:23 -04:00 
			
		
		
		
	
		
			
	
	
		
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
|  | subroutine genwave(itone,nsym,nsps,nwave,fsample,hmod,f0,icmplx,cwave,wave)
 | ||
|  | 
 | ||
|  |   real wave(nwave)
 | ||
|  |   complex cwave(nwave)
 | ||
|  |   integer hmod
 | ||
|  |   integer itone(nsym)
 | ||
|  |   logical ex
 | ||
|  |   real*8 dt,phi,dphi,twopi,freq,baud
 | ||
|  | 
 | ||
|  |   dt=1.d0/fsample
 | ||
|  |   twopi=8.d0*atan(1.d0)
 | ||
|  |   baud=fsample/nsps
 | ||
|  | 
 | ||
|  | ! Calculate the audio waveform
 | ||
|  |   phi=0.d0
 | ||
|  |   if(icmplx.le.0) wave=0.
 | ||
|  |   if(icmplx.eq.1) cwave=0.
 | ||
|  |   k=0
 | ||
|  |   do j=1,nsym
 | ||
|  |      freq=f0 + itone(j)*hmod*baud
 | ||
|  |      dphi=twopi*freq*dt
 | ||
|  |      do i=1,nsps
 | ||
|  |         k=k+1
 | ||
|  |         if(icmplx.eq.1) then
 | ||
|  |            cwave(k)=cmplx(cos(phi),sin(phi))
 | ||
|  |         else
 | ||
|  |            wave(k)=sin(phi)
 | ||
|  |         endif
 | ||
|  |         phi=phi+dphi
 | ||
|  |         if(phi.gt.twopi) phi=phi-twopi
 | ||
|  |      enddo
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  | !### TEMPORARY code to allow transmitting both A and B submodes
 | ||
|  |   inquire(file='Q65_Tx2',exist=ex)
 | ||
|  |   if(ex) then
 | ||
|  |      k=0
 | ||
|  |      do j=1,nsym
 | ||
|  |         freq=f0 + itone(j)*2.d0*hmod*baud + 500.d0
 | ||
|  |         dphi=twopi*freq*dt
 | ||
|  |         do i=1,nsps
 | ||
|  |            k=k+1
 | ||
|  |            wave(k)=0.5*(wave(k)+sin(phi))
 | ||
|  |            phi=phi+dphi
 | ||
|  |            if(phi.gt.twopi) phi=phi-twopi
 | ||
|  |         enddo
 | ||
|  |      enddo
 | ||
|  |   endif
 | ||
|  | !###
 | ||
|  | 
 | ||
|  |   return
 | ||
|  | end subroutine genwave
 |