mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-21 03:28:59 -04:00
Allow entry and decoding of WSPR-format message in ldpcsim174_74.
This commit is contained in:
parent
5e391c7ff8
commit
e82b9ffa38
@ -603,7 +603,7 @@ set (wsjt_FSRCS
|
||||
lib/fsk4hf/osd204.f90
|
||||
lib/fsk4hf/genwsprcpm.f90
|
||||
lib/fsk4hf/encode204.f90
|
||||
lib/ft8/decode174_91.f90
|
||||
# lib/ft8/decode174_91.f90
|
||||
lib/fsk4hf/ldpcsim174_91.f90
|
||||
lib/fsk4hf/ldpcsim174_74.f90
|
||||
lib/fsk4hf/get_crc24.f90
|
||||
|
@ -3,10 +3,12 @@ program ldpcsim174_74
|
||||
! End-to-end test of the (174,74)/crc24 encoder and decoders.
|
||||
|
||||
use crc
|
||||
use packjt
|
||||
use packjt77
|
||||
|
||||
parameter(N=174, K=74, M=N-K)
|
||||
character*8 arg
|
||||
character*37 msg0,msg
|
||||
character*77 c77
|
||||
character*50 cmsg
|
||||
character*24 c24
|
||||
integer*1 msgbits(74)
|
||||
@ -17,21 +19,22 @@ program ldpcsim174_74
|
||||
integer nerrtot(174),nerrdec(174),nmpcbad(74)
|
||||
real rxdata(N),llr(N)
|
||||
real dllr(174),llrd(174)
|
||||
|
||||
data cmsg/'11111111000000001111111100000000111111110000000011'/
|
||||
logical first,unpk77_success
|
||||
data first/.true./
|
||||
|
||||
nerrtot=0
|
||||
nerrdec=0
|
||||
nmpcbad=0 ! Used to collect the number of errors in the message+crc part of the codeword
|
||||
|
||||
nargs=iargc()
|
||||
if(nargs.ne.5) then
|
||||
print*,'Usage: ldpcsim niter ndeep #trials s K'
|
||||
print*,'e.g. ldpcsim174_74 20 5 1000 0.85 64'
|
||||
if(nargs.ne.5 .and. nargs.ne.6) then
|
||||
print*,'Usage: ldpcsim niter ndeep #trials s K [msg]'
|
||||
print*,'e.g. ldpcsim174_74 20 5 1000 0.85 64 "K9AN EN50 37"'
|
||||
print*,'s : if negative, then value is ignored and sigma is calculated from SNR.'
|
||||
print*,'niter: is the number of BP iterations.'
|
||||
print*,'ndeep: -1 is BP only, ndeep>=0 is OSD order'
|
||||
print*,'K :is the number of message+CRC bits and must be in the range [50,74]'
|
||||
print*,'WSPR-format message is optional'
|
||||
return
|
||||
endif
|
||||
call getarg(1,arg)
|
||||
@ -44,6 +47,10 @@ program ldpcsim174_74
|
||||
read(arg,*) s
|
||||
call getarg(5,arg)
|
||||
read(arg,*) Keff
|
||||
msg0='K9AN EN50 37 '
|
||||
if(nargs.eq.6) call getarg(6,msg0)
|
||||
call pack77(msg0,i3,n3,c77)
|
||||
cmsg=c77(1:50)
|
||||
|
||||
rate=real(Keff)/real(N)
|
||||
|
||||
@ -128,6 +135,18 @@ program ldpcsim174_74
|
||||
pberr=real(nberr)/(real(ntrials*N))
|
||||
write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr
|
||||
|
||||
if(first) then
|
||||
write(c77,'(50i1)') message
|
||||
c77(51:77)='000000000000000000000110000'
|
||||
call unpack77(c77,0,msg,unpk77_success)
|
||||
if(unpk77_success) then
|
||||
write(*,1100) msg(1:14)
|
||||
1100 format('Decoded message: ',a14)
|
||||
else
|
||||
print*,'Error unpacking message'
|
||||
endif
|
||||
first=.false.
|
||||
endif
|
||||
enddo
|
||||
|
||||
open(unit=23,file='nerrhisto.dat',status='unknown')
|
||||
|
Loading…
Reference in New Issue
Block a user