| 
									
										
										
										
											2012-07-03 19:43:26 +00:00
										 |  |  | subroutine encode232(dat,nsym,symbol)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ! Convolutional encoder for a K=32, r=1/2 code.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   integer*1 dat(13)                 !User data, packed 8 bits per byte
 | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  |   integer*1 symbol(206)             !Channel symbols, one bit per byte
 | 
					
						
							| 
									
										
										
										
											2012-07-03 19:43:26 +00:00
										 |  |  |   integer*1 i1
 | 
					
						
							|  |  |  |   include 'conv232.f90'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nstate=0
 | 
					
						
							|  |  |  |   k=0
 | 
					
						
							|  |  |  |   do j=1,nsym
 | 
					
						
							|  |  |  |      do i=7,0,-1
 | 
					
						
							|  |  |  |         i1=dat(j)
 | 
					
						
							|  |  |  |         i4=i1
 | 
					
						
							|  |  |  |         if (i4.lt.0) i4=i4+256
 | 
					
						
							|  |  |  |         nstate=ior(ishft(nstate,1),iand(ishft(i4,-i),1))
 | 
					
						
							|  |  |  |         n=iand(nstate,npoly1)
 | 
					
						
							|  |  |  |         n=ieor(n,ishft(n,-16))
 | 
					
						
							|  |  |  |         k=k+1
 | 
					
						
							|  |  |  |         symbol(k)=partab(iand(ieor(n,ishft(n,-8)),255))
 | 
					
						
							|  |  |  |         n=iand(nstate,npoly2)
 | 
					
						
							|  |  |  |         n=ieor(n,ishft(n,-16))
 | 
					
						
							|  |  |  |         k=k+1
 | 
					
						
							|  |  |  |         symbol(k)=partab(iand(ieor(n,ishft(n,-8)),255))
 | 
					
						
							|  |  |  |         if(k.ge.nsym) go to 100
 | 
					
						
							|  |  |  |      enddo
 | 
					
						
							|  |  |  |   enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 100 continue
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return
 | 
					
						
							|  |  |  | end subroutine encode232
 |