WSJT-X/lib/superfox/qpc_likelihoods2.f90

29 lines
668 B
Fortran

subroutine qpc_likelihoods2(py,s3,EsNo,No)
integer QQ,QN
parameter(QQ=128,QN=128)
real py(0:QQ-1,0:QN-1)
real s3(0:QQ-1,0:QN-1)
real No,norm,normpwr,normpwrmax
norm=(EsNo/(EsNo+1.0))/No
! Compute likelihoods for symbol values, from the symbol power spectra
do k=0,QN-1
normpwrmax=0.
do j=0,QQ-1
normpwr=norm*s3(j,k)
py(j,k)=normpwr
normpwrmax=max(normpwr,normpwrmax)
enddo
pynorm=0.
do j=0,QQ-1
py(j,k)=exp(py(j,k)-normpwrmax)
pynorm=pynorm + py(j,k)
enddo
py(0:QQ-1,k)=py(0:QQ-1,k)/pynorm !Normalize to probabilities
enddo
return
end subroutine qpc_likelihoods2