File: encode232.f90

package info (click to toggle)
wsjtx 1.1.r3496-3
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,988 kB
  • ctags: 1,377
  • sloc: cpp: 6,647; f90: 5,319; ansic: 1,266; fortran: 108; makefile: 17; sh: 10
file content (33 lines) | stat: -rw-r--r-- 800 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
  integer*1 symbol(500)             !Channel symbols, one bit per byte
  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