mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
WIP on RS utilities.
This commit is contained in:
parent
2535a24481
commit
3bfbe4deb4
@ -15,17 +15,18 @@ CFLAGS= -O9 -Wall
|
|||||||
%.o: %.F90
|
%.o: %.F90
|
||||||
${FC} ${FFLAGS} -c $<
|
${FC} ${FFLAGS} -c $<
|
||||||
|
|
||||||
all: rstest rs_125_49
|
all: rs_sf.a rstest rs_125_49
|
||||||
|
|
||||||
OBJS1 = rstest.o init_rs_sf.o encode_rs_sf.o decode_rs_sf.o \
|
OBJS1 = rstest.o ran1.o
|
||||||
rs_sf.o ran1.o
|
|
||||||
rstest: $(OBJS1)
|
rstest: $(OBJS1)
|
||||||
$(FC) -o rstest $(OBJS1)
|
$(FC) -o rstest $(OBJS1) rs_sf.a
|
||||||
|
|
||||||
OBJS2 = rs_125_49.o init_rs_sf.o encode_rs_sf.o decode_rs_sf.o \
|
OBJS2 = rs_125_49.o ran1.o get_crc14.o
|
||||||
rs_sf.o ran1.o get_crc14.o
|
|
||||||
rs_125_49: $(OBJS2)
|
rs_125_49: $(OBJS2)
|
||||||
$(FC) -o rs_125_49 $(OBJS2)
|
$(FC) -o rs_125_49 $(OBJS2) rs_sf.a
|
||||||
|
|
||||||
|
rs_sf.a: init_rs_sf.o encode_rs_sf.o decode_rs_sf.o rs_sf.o
|
||||||
|
ar -crs rs_sf.a init_rs_sf.o encode_rs_sf.o decode_rs_sf.o rs_sf.o
|
||||||
|
|
||||||
init_rs_sf.o: init_rs.c
|
init_rs_sf.o: init_rs.c
|
||||||
gcc -DBIGSYM=1 $(CFLAGS) -c -o $@ $^
|
gcc -DBIGSYM=1 $(CFLAGS) -c -o $@ $^
|
||||||
@ -36,4 +37,4 @@ decode_rs_sf.o: decode_rs.c
|
|||||||
|
|
||||||
.PHONY : clean
|
.PHONY : clean
|
||||||
clean:
|
clean:
|
||||||
-rm -f *.o rstest.exe
|
-rm -f *.o *.a *.exe
|
||||||
|
@ -10,7 +10,7 @@ program rs_125_49
|
|||||||
! integer dat(KK) !Decoded data, i*4
|
! integer dat(KK) !Decoded data, i*4
|
||||||
integer dat(256) !Decoded data, i*4
|
integer dat(256) !Decoded data, i*4
|
||||||
integer era(NN)
|
integer era(NN)
|
||||||
character c357*357,c14*14
|
character c357*357,c14*14,chkmsg*15
|
||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
if(nargs.ne.1) then
|
if(nargs.ne.1) then
|
||||||
@ -60,18 +60,16 @@ program rs_125_49
|
|||||||
nera=0
|
nera=0
|
||||||
|
|
||||||
call rs_decode_sf(gsym,era,nera,dat,nfixed)
|
call rs_decode_sf(gsym,era,nera,dat,nfixed)
|
||||||
write(*,1008)
|
|
||||||
1008 format(/'Decoded result:')
|
|
||||||
write(*,1002) dat(1:KK)
|
|
||||||
if(nfixed.ge.0) write(*,1100) nerr,nfixed
|
|
||||||
1100 format(/'nerr:',i3,' nfixed:',i3)
|
|
||||||
if(nfixed.lt.0) write(*,1102) nerr,nfixed
|
|
||||||
1102 format(/'nerr:',i3,' nfixed:',i3,', decode failed.')
|
|
||||||
|
|
||||||
write(c357,'(51b7.7)') dat(1:KK)
|
write(c357,'(51b7.7)') dat(1:KK)
|
||||||
read(c357,'(357i1)') dgen1
|
read(c357,'(357i1)') dgen1
|
||||||
call get_crc14(dgen1,7*KK,ncrc)
|
call get_crc14(dgen1,7*KK,ncrc)
|
||||||
if(ncrc.ne.0) print*,'CRC check failed'
|
|
||||||
if(ncrc.eq.0) print*,'CRC check is OK'
|
write(*,1008)
|
||||||
|
1008 format(/'Decoded result:')
|
||||||
|
chkmsg='Decode failed'
|
||||||
|
if(nfixed.ge.0 .and. ncrc.eq.0) chkmsg='CRC check OK'
|
||||||
|
write(*,1002) dat(1:KK)
|
||||||
|
write(*,1100) nerr,nfixed,trim(chkmsg)
|
||||||
|
1100 format(/'nerr:',i3,' nfixed:',i3,', ',a)
|
||||||
|
|
||||||
999 end program rs_125_49
|
999 end program rs_125_49
|
||||||
|
@ -5,6 +5,7 @@ program rstest
|
|||||||
integer gsym0(255) !Encoded data, Karn
|
integer gsym0(255) !Encoded data, Karn
|
||||||
integer gsym(255) !Encoded data with errors
|
integer gsym(255) !Encoded data with errors
|
||||||
integer dat(235) !Decoded data, i*4
|
integer dat(235) !Decoded data, i*4
|
||||||
|
integer iera(0:200) !Positions of erasures
|
||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
if(nargs.ne.4) then
|
if(nargs.ne.4) then
|
||||||
@ -21,7 +22,7 @@ program rstest
|
|||||||
read(arg,*) kk
|
read(arg,*) kk
|
||||||
call getarg(4,arg)
|
call getarg(4,arg)
|
||||||
read(arg,*) nerr
|
read(arg,*) nerr
|
||||||
|
|
||||||
! Initialize the Karn codec
|
! Initialize the Karn codec
|
||||||
nq=2**mm
|
nq=2**mm
|
||||||
nfz=3
|
nfz=3
|
||||||
@ -29,7 +30,7 @@ program rstest
|
|||||||
|
|
||||||
! Generate and random symbols with values 0 to nq-1
|
! Generate and random symbols with values 0 to nq-1
|
||||||
do i=1,kk
|
do i=1,kk
|
||||||
dgen(i)=(nq-0.0001)*ran1(idum)
|
dgen(i)=int(nq*ran1(idum))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
write(*,1000)
|
write(*,1000)
|
||||||
@ -50,16 +51,15 @@ program rstest
|
|||||||
1006 format(/'Recovered channel symbols, with errors:')
|
1006 format(/'Recovered channel symbols, with errors:')
|
||||||
write(*,1002) gsym(1:nn)
|
write(*,1002) gsym(1:nn)
|
||||||
|
|
||||||
call rs_decode_sf(gsym,era,0,dat,nfixed)
|
nera=0
|
||||||
ibad=0
|
iera=0
|
||||||
do i=1,kk
|
call rs_decode_sf(gsym,iera,nera,dat,nfixed)
|
||||||
if(dat(i).ne.dgen(i)) ibad=ibad+1
|
ibad=count(dat(1:kk).ne.dgen(1:kk))
|
||||||
enddo
|
|
||||||
write(*,1008)
|
write(*,1008)
|
||||||
1008 format(/'Decoded result:')
|
1008 format(/'Decoded result:')
|
||||||
write(*,1002) dat(1:kk)
|
write(*,1002) dat(1:kk)
|
||||||
write(*,1100) nerr,nfixed,ibad
|
write(*,1100) nerr,nfixed
|
||||||
1100 format(/'nerr:',i3,' nfixed:',i3,' ibad:',i3)
|
1100 format(/'nerr:',i3,' nfixed:',i3)
|
||||||
|
|
||||||
999 end program rstest
|
999 end program rstest
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user