28 lines
		
	
	
		
			675 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			675 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								subroutine wspr_fsk8_downsample(iwave,c)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								! Input: i*2 data in iwave() at sample rate 12000 Hz
							 | 
						||
| 
								 | 
							
								! Output: Complex data in c(), sampled at 12000/24=500 Hz
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  include 'wspr_fsk8_params.f90'
							 | 
						||
| 
								 | 
							
								  integer*2 iwave(NMAX)
							 | 
						||
| 
								 | 
							
								  complex c(0:NMAXD-1)
							 | 
						||
| 
								 | 
							
								  complex c1(0:NMAXD-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,NMAXD/2
							 | 
						||
| 
								 | 
							
								     c1(i)=cx(i0+i)
							 | 
						||
| 
								 | 
							
								     c1(NMAXD-i)=cx(i0-i)
							 | 
						||
| 
								 | 
							
								  enddo
							 | 
						||
| 
								 | 
							
								  c=c1/NMAXD
							 | 
						||
| 
								 | 
							
								  call four2a(c,NMAXD,1,1,1)            !c2c FFT back to time domain
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								end subroutine wspr_fsk8_downsample
							 |