36 lines
		
	
	
		
			998 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			998 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| subroutine spec4(c,s,savg)
 | |
| 
 | |
|   parameter (KK=84)                     !Information bits (72 + CRC12)
 | |
|   parameter (ND=84)                     !Data symbols: LDPC (168,84), r=1/2
 | |
|   parameter (NS=12)                     !Sync symbols (3 @ 4x4 Costas arrays)
 | |
|   parameter (NR=2)                      !Ramp up/down
 | |
|   parameter (NN=NR+NS+ND)               !Total symbols (98)
 | |
|   parameter (NSPS=2688/84)              !Samples per symbol (32)
 | |
|   parameter (NZ=NSPS*NN)                !Samples in baseband waveform (3760)
 | |
|   parameter (NFFT=2*NSPS,NH=NSPS)
 | |
| 
 | |
|   complex c(0:NZ-1)
 | |
|   complex c1(0:NFFT-1)
 | |
|   real s(0:NH,NN)
 | |
|   real savg(0:NH)
 | |
| 
 | |
|   fs=12000.0/84.0
 | |
|   df=fs/NFFT
 | |
|   savg=0.
 | |
|   do j=1,NN
 | |
|      ia=(j-1)*NSPS
 | |
|      ib=ia + NSPS-1
 | |
|      c1(0:NSPS-1)=c(ia:ib)
 | |
|      c1(NSPS:)=0.
 | |
|      call four2a(c1,NFFT,1,-1,1)
 | |
|      do k=1,NSPS
 | |
|         s(k,j)=real(c1(k))**2 + aimag(c1(k))**2
 | |
|      enddo
 | |
|      savg=savg+s(0:NH,j)
 | |
|   enddo
 | |
|   s=s/NZ
 | |
|   savg=savg/(NN*NZ)
 | |
| 
 | |
|   return
 | |
| end subroutine spec4
 | 
