mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-04 08:21:17 -05:00
More work on a simulator for dpsk with root-raised-cosine pulses.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8632 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
6445485399
commit
bd0d414365
@ -14,7 +14,7 @@ subroutine genwsprdpsk(msg,msgsent,imessage)
|
||||
logical first
|
||||
integer ipreamble(16) !Freq estimation preamble
|
||||
integer isync(32) !Long sync vector
|
||||
integer imessage(NN)
|
||||
integer imessage(NN)
|
||||
data ipreamble/1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1/
|
||||
data first/.true./
|
||||
data iuniqueword0/z'30C9E8AD'/
|
||||
@ -47,11 +47,13 @@ write(*,'(50i1,1x,14i1,1x,4i1)') msgbits
|
||||
|
||||
call encode204(msgbits,codeword) !Encode the test message
|
||||
|
||||
! Message structure:
|
||||
! d100 p16 d100
|
||||
imessage(1:100)=codeword(1:100)
|
||||
imessage(101:132)=isync
|
||||
imessage(1)=1 !reference bit
|
||||
imessage(2:101)=codeword(1:100)
|
||||
imessage(102:132)=isync(1:31) !only use 31 of the sync bits
|
||||
imessage(133:232)=codeword(101:200)
|
||||
do i=2,232
|
||||
imessage(i)=mod(imessage(i-1)+imessage(i),2)
|
||||
enddo
|
||||
|
||||
return
|
||||
end subroutine genwsprdpsk
|
||||
|
@ -15,7 +15,6 @@ program wsprdpsksim
|
||||
complex cwav(0:NMAX-1)
|
||||
real*8 fMHz
|
||||
integer imessage(NN)
|
||||
integer idemess(NN) !Differentially encoded message
|
||||
integer*2 iwave(NMAX) !Generated full-length waveform
|
||||
|
||||
! Get command-line argument(s)
|
||||
@ -54,17 +53,12 @@ program wsprdpsksim
|
||||
txt=NN*NSPS0/12000.0
|
||||
|
||||
call genwsprdpsk(msg,msgsent,imessage) !Encode the message, get itone
|
||||
imessage=2*imessage-1
|
||||
write(*,1000) f0,xdt,txt,snrdb,fspread,delay,nfiles,msgsent
|
||||
1000 format('f0:',f9.3,' DT:',f6.2,' txt:',f6.1,' SNR:',f6.1, &
|
||||
' fspread:',f6.1,' delay:',f6.1,' nfiles:',i3,2x,a22)
|
||||
|
||||
! Assume 0'th message bit is 0
|
||||
imessage=2*imessage-1
|
||||
idemess(1)=-1*imessage(1)
|
||||
do i=2,NN
|
||||
idemess(i)=imessage(i-1)*imessage(i)
|
||||
enddo
|
||||
|
||||
|
||||
beta=1.0 ! excess bandwidth
|
||||
if(nwav.eq.0) then
|
||||
df=fs/(NMAX/NDOWN) !
|
||||
@ -84,7 +78,7 @@ program wsprdpsksim
|
||||
istart=xdt/dt
|
||||
c0=0.0
|
||||
do i=1,NN
|
||||
c0(istart+(i-1)*200)=idemess(i)
|
||||
c0(istart+(i-1)*200)=imessage(i)
|
||||
enddo
|
||||
call four2a(c0,NMAX/NDOWN,1,1,1)
|
||||
c0=c0*conjg(c)
|
||||
@ -141,7 +135,7 @@ write(*,*) 'sample SNR: ',10*log10(snrtest)+10*log10(0.4/2.5)
|
||||
istart=xdt/dt
|
||||
c0wav=0.0
|
||||
do i=1,NN
|
||||
c0wav(istart+(i-1)*200*NDOWN)=idemess(i)
|
||||
c0wav(istart+(i-1)*200*NDOWN)=imessage(i)
|
||||
enddo
|
||||
call four2a(c0wav,NMAX,1,1,1)
|
||||
c0wav=c0wav*conjg(cwav)
|
||||
|
Loading…
Reference in New Issue
Block a user