2012-08-28 09:48:46 -04:00
|
|
|
program mapsim
|
|
|
|
|
|
|
|
parameter (NMAX=96000*60)
|
|
|
|
integer*2 id2(2,NMAX)
|
|
|
|
integer*2 id4(4,NMAX)
|
|
|
|
real*4 d4(4,NMAX)
|
|
|
|
complex cwave(NMAX)
|
|
|
|
complex z,zx,zy
|
|
|
|
real*8 fcenter,fsample,samfac,f,dt,twopi,phi,dphi
|
|
|
|
character message*22,msgsent*22,arg*8
|
|
|
|
|
|
|
|
nargs=iargc()
|
|
|
|
if(nargs.ne.2) then
|
|
|
|
print*,'Usage: mapsim "message" pol'
|
|
|
|
go to 999
|
|
|
|
endif
|
|
|
|
call getarg(1,message)
|
|
|
|
call getarg(2,arg)
|
|
|
|
read(arg,*) pol
|
|
|
|
|
|
|
|
open(10,file='000000_0000.iq',access='stream',status='unknown')
|
|
|
|
open(11,file='000000_0000.tf2',access='stream',status='unknown')
|
|
|
|
|
|
|
|
call noisegen(d4,NMAX)
|
|
|
|
mode65=2
|
|
|
|
samfac=1.d0
|
|
|
|
call cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave)
|
|
|
|
|
|
|
|
fcenter=144.125d0
|
|
|
|
fsample=96000.d0
|
|
|
|
twopi=8.d0*atan(1.d0)
|
|
|
|
rad=360.0/twopi
|
|
|
|
a=cos(pol/rad)
|
|
|
|
b=sin(pol/rad)
|
|
|
|
dt=1.d0/fsample
|
|
|
|
|
2012-08-28 10:36:29 -04:00
|
|
|
do isig=1,20
|
|
|
|
f=-23000 + 3000*(isig-1)
|
|
|
|
dphi=twopi*f*dt + 0.5*twopi
|
|
|
|
|
2012-08-28 09:48:46 -04:00
|
|
|
! snrdb=-(19.0 + (isig-1)/2.0)
|
|
|
|
snrdb=-20.0
|
2012-08-28 10:36:29 -04:00
|
|
|
sig=sqrt(2.0*2500.0/96000.0) * 10.0**(0.05*snrdb)
|
|
|
|
|
2012-08-28 09:48:46 -04:00
|
|
|
phi=0.
|
2012-08-28 10:36:29 -04:00
|
|
|
i0=fsample*(3.5d0+0.05d0*(isig-1))
|
2012-08-28 09:48:46 -04:00
|
|
|
|
|
|
|
do i=1,nwave
|
|
|
|
phi=phi + dphi
|
2012-08-28 10:36:29 -04:00
|
|
|
if(phi.lt.-twopi) phi=phi+twopi
|
|
|
|
if(phi.gt.twopi) phi=phi-twopi
|
|
|
|
xphi=phi
|
|
|
|
z=sig*cwave(i)*cmplx(cos(xphi),-sin(xphi))
|
2012-08-28 09:48:46 -04:00
|
|
|
zx=a*z
|
|
|
|
zy=b*z
|
|
|
|
j=i+i0
|
|
|
|
d4(1,j)=d4(1,j) + real(zx)
|
|
|
|
d4(2,j)=d4(2,j) + aimag(zx)
|
|
|
|
d4(3,j)=d4(3,j) + real(zy)
|
|
|
|
d4(4,j)=d4(4,j) + aimag(zy)
|
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
|
|
|
|
s=31.6
|
|
|
|
do i=1,NMAX
|
|
|
|
id4(1,i)=nint(s*d4(1,i))
|
|
|
|
id4(2,i)=nint(s*d4(2,i))
|
|
|
|
id4(3,i)=nint(s*d4(3,i))
|
|
|
|
id4(4,i)=nint(s*d4(4,i))
|
|
|
|
id2(1,i)=id4(1,i)
|
|
|
|
id2(2,i)=id4(2,i)
|
|
|
|
enddo
|
|
|
|
|
|
|
|
write(10) fcenter,id2
|
|
|
|
write(11) fcenter,id4
|
|
|
|
|
|
|
|
999 end program mapsim
|