mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2026-07-17 08:14:10 -04:00
Transmit FT8 using a gaussian-filtered waveform.
This commit is contained in:
@@ -66,7 +66,7 @@ program ft8sim_gfsk
|
||||
n3=-1
|
||||
call pack77(msg37,i3,n3,c77)
|
||||
call genft8(msg37,i3,n3,msgsent37,msgbits,itone)
|
||||
call gen_ft8wave(itone,NN,NSPS,fs,f0,cwave,NWAVE)
|
||||
call gen_ft8wave(itone,NN,NSPS,fs,f0,cwave,xjunk,1,NWAVE) !Generate complex cwave
|
||||
|
||||
write(*,*)
|
||||
write(*,'(a23,a37,3x,a7,i1,a1,i1)') 'New Style FT8 Message: ',msgsent37,'i3.n3: ',i3,'.',n3
|
||||
|
||||
+20
-9
@@ -1,4 +1,4 @@
|
||||
subroutine gen_ft8wave(itone,nsym,nsps,fsample,f0,cwave,nwave)
|
||||
subroutine gen_ft8wave(itone,nsym,nsps,fsample,f0,cwave,wave,icmplx,nwave)
|
||||
!
|
||||
! generate ft8 waveform using Gaussian-filtered frequency pulses.
|
||||
!
|
||||
@@ -6,7 +6,7 @@ subroutine gen_ft8wave(itone,nsym,nsps,fsample,f0,cwave,nwave)
|
||||
parameter(MAX_SECONDS=20)
|
||||
real wave(nwave)
|
||||
complex cwave(nwave)
|
||||
real pulse(5760)
|
||||
real pulse(23040)
|
||||
real dphi(0:(nsym+2)*nsps-1)
|
||||
integer itone(nsym)
|
||||
logical first
|
||||
@@ -43,17 +43,28 @@ subroutine gen_ft8wave(itone,nsym,nsps,fsample,f0,cwave,nwave)
|
||||
k=0
|
||||
do j=0,nwave-1
|
||||
k=k+1
|
||||
wave(k)=sin(phi)
|
||||
cwave(k)=cmplx(cos(phi),sin(phi))
|
||||
if(icmplx.eq.0) then
|
||||
wave(k)=sin(phi)
|
||||
else
|
||||
cwave(k)=cmplx(cos(phi),sin(phi))
|
||||
endif
|
||||
phi=mod(phi+dphi(j),twopi)
|
||||
enddo
|
||||
|
||||
! Compute the ramp-up and ramp-down symbols
|
||||
cwave(1:nsps)=cwave(1:nsps) * &
|
||||
(1.0-cos(twopi*(/(i,i=0,nsps-1)/)/(2.0*nsps)))/2.0
|
||||
k1=(nsym+1)*nsps+1
|
||||
cwave(k1:k1+nsps-1)=cwave(k1:k1+nsps-1) * &
|
||||
(1.0+cos(twopi*(/(i,i=0,nsps-1)/)/(2.0*nsps)))/2.0
|
||||
if(icmplx.eq.0) then
|
||||
wave(1:nsps)=wave(1:nsps) * &
|
||||
(1.0-cos(twopi*(/(i,i=0,nsps-1)/)/(2.0*nsps)))/2.0
|
||||
k1=(nsym+1)*nsps+1
|
||||
wave(k1:k1+nsps-1)=wave(k1:k1+nsps-1) * &
|
||||
(1.0+cos(twopi*(/(i,i=0,nsps-1)/)/(2.0*nsps)))/2.0
|
||||
else
|
||||
cwave(1:nsps)=cwave(1:nsps) * &
|
||||
(1.0-cos(twopi*(/(i,i=0,nsps-1)/)/(2.0*nsps)))/2.0
|
||||
k1=(nsym+1)*nsps+1
|
||||
cwave(k1:k1+nsps-1)=cwave(k1:k1+nsps-1) * &
|
||||
(1.0+cos(twopi*(/(i,i=0,nsps-1)/)/(2.0*nsps)))/2.0
|
||||
endif
|
||||
|
||||
return
|
||||
end subroutine gen_ft8wave
|
||||
|
||||
Reference in New Issue
Block a user