30 lines
		
	
	
		
			714 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			714 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
subroutine wspr5_downsample(iwave,c)
 | 
						|
 | 
						|
! Input: i*2 data in iwave() at sample rate 12000 Hz
 | 
						|
! Output: Complex data in c(), sampled at 400 Hz
 | 
						|
 | 
						|
  include 'wsprlf_params.f90'
 | 
						|
  parameter (NMAX=300*12000,NFFT2=NMAX/30)
 | 
						|
  integer*2 iwave(NMAX)
 | 
						|
  complex c(0:NZ-1)
 | 
						|
  complex c1(0:NFFT2-1)
 | 
						|
  complex cx(0:NMAX/2)
 | 
						|
  real x(NMAX)
 | 
						|
  equivalence (x,cx)
 | 
						|
 | 
						|
  df=12000.0/NMAX
 | 
						|
  x=iwave
 | 
						|
  call four2a(x,NMAX,1,-1,0)             !r2c FFT to freq domain
 | 
						|
  i0=nint(1500.0/df)
 | 
						|
  c1(0)=cx(i0)
 | 
						|
  do i=1,NFFT2/2
 | 
						|
     c1(i)=cx(i0+i)
 | 
						|
     c1(NFFT2-i)=cx(i0-i)
 | 
						|
  enddo
 | 
						|
  c1=c1/NFFT2
 | 
						|
  call four2a(c1,NFFT2,1,1,1)            !c2c FFT back to time domain
 | 
						|
  c=c1(0:NZ-1)
 | 
						|
  
 | 
						|
  return
 | 
						|
end subroutine wspr5_downsample
 |