mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| 
								 | 
							
								subroutine ccf2(ss,nz,nflip,ccfbest,lagpk)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  parameter (LAGMAX=60)
							 | 
						||
| 
								 | 
							
								!  parameter (LAGMAX=200)
							 | 
						||
| 
								 | 
							
								  real ss(nz)
							 | 
						||
| 
								 | 
							
								  real ccf(-LAGMAX:LAGMAX)
							 | 
						||
| 
								 | 
							
								  integer npr(126)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								! The JT65 pseudo-random sync pattern:
							 | 
						||
| 
								 | 
							
								  data npr/                                    &
							 | 
						||
| 
								 | 
							
								      1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0, &
							 | 
						||
| 
								 | 
							
								      0,1,0,1,1,0,0,1,0,0,0,1,1,1,0,0,1,1,1,1, &
							 | 
						||
| 
								 | 
							
								      0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1, &
							 | 
						||
| 
								 | 
							
								      0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,1, &
							 | 
						||
| 
								 | 
							
								      1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1, &
							 | 
						||
| 
								 | 
							
								      0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1, &
							 | 
						||
| 
								 | 
							
								      1,1,1,1,1,1/
							 | 
						||
| 
								 | 
							
								  save
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  ccfbest=0.
							 | 
						||
| 
								 | 
							
								  lag1=-LAGMAX
							 | 
						||
| 
								 | 
							
								  lag2=LAGMAX
							 | 
						||
| 
								 | 
							
								  do lag=lag1,lag2
							 | 
						||
| 
								 | 
							
								     s0=0.
							 | 
						||
| 
								 | 
							
								     s1=0.
							 | 
						||
| 
								 | 
							
								     do i=1,126
							 | 
						||
| 
								 | 
							
								        j=2*(8*i + 43) + lag
							 | 
						||
| 
								 | 
							
								        if(j.ge.1 .and. j.le.nz-8) then
							 | 
						||
| 
								 | 
							
								           x=ss(j)+ss(j+8)             !Add two half-symbol contributions
							 | 
						||
| 
								 | 
							
								           if(npr(i).eq.0) then
							 | 
						||
| 
								 | 
							
								              s0=s0 + x
							 | 
						||
| 
								 | 
							
								           else
							 | 
						||
| 
								 | 
							
								              s1=s1 + x
							 | 
						||
| 
								 | 
							
								           endif
							 | 
						||
| 
								 | 
							
								        endif
							 | 
						||
| 
								 | 
							
								     enddo
							 | 
						||
| 
								 | 
							
								     ccf(lag)=nflip*(s1-s0)
							 | 
						||
| 
								 | 
							
								     if(ccf(lag).gt.ccfbest) then
							 | 
						||
| 
								 | 
							
								        ccfbest=ccf(lag)
							 | 
						||
| 
								 | 
							
								        lagpk=lag
							 | 
						||
| 
								 | 
							
								     endif
							 | 
						||
| 
								 | 
							
								  enddo
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								end subroutine ccf2
							 |