mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-03 06:32:26 -04:00
Cleanup
This commit is contained in:
parent
01d555c898
commit
8da98fee1e
@ -2,43 +2,43 @@ subroutine decode174_74(llr,Keff,ndeep,apmask,maxsuper,message74,cw,nharderror,i
|
|||||||
!
|
!
|
||||||
! A hybrid bp/osd decoder for the (174,74) code.
|
! A hybrid bp/osd decoder for the (174,74) code.
|
||||||
!
|
!
|
||||||
integer, parameter:: N=174, K=74, M=N-K
|
integer, parameter:: N=174, K=74, M=N-K
|
||||||
integer*1 cw(N),apmask(N)
|
integer*1 cw(N),apmask(N)
|
||||||
integer*1 decoded(K)
|
integer*1 decoded(K)
|
||||||
integer*1 message74(74)
|
integer*1 message74(74)
|
||||||
integer nrw(M),ncw
|
integer nrw(M),ncw
|
||||||
integer Nm(6,M)
|
integer Nm(6,M)
|
||||||
integer Mn(3,N) ! 3 checks per bit
|
integer Mn(3,N) ! 3 checks per bit
|
||||||
integer synd(M)
|
integer synd(M)
|
||||||
real tov(3,N)
|
real tov(3,N)
|
||||||
real toc(6,M)
|
real toc(6,M)
|
||||||
real tanhtoc(6,M)
|
real tanhtoc(6,M)
|
||||||
real zn(N),zsum(N)
|
real zn(N),zsum(N)
|
||||||
real llr(N)
|
real llr(N)
|
||||||
real Tmn
|
real Tmn
|
||||||
|
|
||||||
include "ldpc_174_74_parity.f90"
|
include "ldpc_174_74_parity.f90"
|
||||||
|
|
||||||
decoded=0
|
decoded=0
|
||||||
toc=0
|
toc=0
|
||||||
tov=0
|
tov=0
|
||||||
tanhtoc=0
|
tanhtoc=0
|
||||||
! initialize messages to checks
|
! initialize messages to checks
|
||||||
do j=1,M
|
do j=1,M
|
||||||
do i=1,nrw(j)
|
do i=1,nrw(j)
|
||||||
toc(i,j)=llr((Nm(i,j)))
|
toc(i,j)=llr((Nm(i,j)))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
ncnt=0
|
ncnt=0
|
||||||
nclast=0
|
nclast=0
|
||||||
|
|
||||||
maxiterations=1
|
maxiterations=1
|
||||||
|
|
||||||
zsum=0.0
|
zsum=0.0
|
||||||
do isuper=1,maxsuper
|
do isuper=1,maxsuper
|
||||||
|
|
||||||
do iter=0,maxiterations
|
do iter=0,maxiterations
|
||||||
! Update bit log likelihood ratios (tov=0 in iteration 0).
|
! Update bit log likelihood ratios (tov=0 in iteration 0).
|
||||||
do i=1,N
|
do i=1,N
|
||||||
if( apmask(i) .ne. 1 ) then
|
if( apmask(i) .ne. 1 ) then
|
||||||
@ -47,7 +47,7 @@ do iter=0,maxiterations
|
|||||||
zn(i)=llr(i)
|
zn(i)=llr(i)
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
zsum=zsum+zn
|
zsum=zsum+zn
|
||||||
! Check to see if we have a codeword (check before we do any iteration).
|
! Check to see if we have a codeword (check before we do any iteration).
|
||||||
cw=0
|
cw=0
|
||||||
where( zn .gt. 0. ) cw=1
|
where( zn .gt. 0. ) cw=1
|
||||||
@ -64,7 +64,7 @@ zsum=zsum+zn
|
|||||||
nharderror=count( (2*cw-1)*llr .lt. 0.0 )
|
nharderror=count( (2*cw-1)*llr .lt. 0.0 )
|
||||||
if(nbadcrc.eq.0) then
|
if(nbadcrc.eq.0) then
|
||||||
message74=decoded(1:74)
|
message74=decoded(1:74)
|
||||||
dmin=0.0
|
dmin=0.0
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -114,15 +114,15 @@ dmin=0.0
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
enddo ! bp iterations
|
enddo ! bp iterations
|
||||||
llr=zsum
|
llr=zsum
|
||||||
call osd174_74(llr,Keff,apmask,ndeep,message74,cw,nharderror,dmin)
|
call osd174_74(llr,Keff,apmask,ndeep,message74,cw,nharderror,dmin)
|
||||||
if(nharderror.gt.0) then
|
if(nharderror.gt.0) then
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
enddo ! super iterations
|
enddo ! super iterations
|
||||||
|
|
||||||
nharderror=-1
|
nharderror=-1
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine decode174_74
|
end subroutine decode174_74
|
||||||
|
Loading…
x
Reference in New Issue
Block a user