31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| subroutine genwspr(message,msgsent,itone)
 | |
| ! Encode a WSPR message and generate the array of channel symbols.
 | |
| 
 | |
|   character*22 message,msgsent
 | |
|   parameter (MAXSYM=176)
 | |
|   integer*1 symbol(MAXSYM)
 | |
|   integer*1 data0(11)
 | |
|   integer*4 itone(162)
 | |
|   integer npr3(162)
 | |
|   data npr3/                                      &
 | |
|       1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,    &
 | |
|       0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,    &
 | |
|       0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1,    &
 | |
|       1,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,    &
 | |
|       0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,    &
 | |
|       0,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,0,0,1,1,    &
 | |
|       0,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,1,1,    &
 | |
|       0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,1,0,    &
 | |
|       0,0/
 | |
| 
 | |
|   call wqencode(message,ntype,data0)          !Source encoding
 | |
|   call encode232(data0,162,symbol)            !Convolutional encoding
 | |
|   call inter_wspr(symbol,1)                   !Interleaving
 | |
|   do i=1,162
 | |
|      itone(i)=npr3(i) + 2*symbol(i)
 | |
|   enddo
 | |
|   msgsent=message                             !### To be fixed... ?? ###
 | |
| 
 | |
|   return
 | |
| end subroutine genwspr
 | 
