mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	Minor corrections to cgen65.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@2537 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									978fe1a81b
								
							
						
					
					
						commit
						3c6ba78445
					
				| @ -1,4 +1,4 @@ | ||||
| subroutine cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
| subroutine cgen65(message,mode65,nfast,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
| 
 | ||||
| ! Encodes a JT65 message into a wavefile.   | ||||
| ! Executes in 17 ms on opti-745. | ||||
| @ -7,7 +7,7 @@ subroutine cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|   character*22 message          !Message to be generated | ||||
|   character*22 msgsent          !Message as it will be received | ||||
|   character*3 cok               !'   ' or 'OOO' | ||||
|   real*8 dt,phi,f,f0,dfgen,dphi,twopi,samfac | ||||
|   real*8 t,dt,phi,f,f0,dfgen,dphi,twopi,samfac,tsymbol | ||||
|   complex cwave(NMAX)           !Generated complex wave file | ||||
|   integer dgen(12) | ||||
|   integer sent(63) | ||||
| @ -31,7 +31,7 @@ subroutine cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|      first=.false. | ||||
|   endif | ||||
| 
 | ||||
|   call chkmsg(message,cok,nspecial,flip) | ||||
|   call chkmsg(message,cok,nspecial,flip) !See if it's a shorthand | ||||
|   if(nspecial.eq.0) then | ||||
|      call packmsg(message,dgen)          !Pack message into 72 bits | ||||
|      nsendingsh=0 | ||||
| @ -41,43 +41,44 @@ subroutine cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|      call interleave63(sent,1)           !Apply interleaving | ||||
|      call graycode(sent,63,1)            !Apply Gray code | ||||
|      nsym=126                            !Symbols per transmission | ||||
|      nsps=4096 | ||||
|      tsymbol=4096.d0/(nfast*11025.d0)    !Time per symbol | ||||
|   else | ||||
|      nsendingsh=1                        !Flag for shorthand message | ||||
|      nsym=32 | ||||
|      nsps=16384 | ||||
|      nsendingsh=1                         !Flag for shorthand message | ||||
|      tsymbol=16384.d0/11025.d0 | ||||
|   endif | ||||
|   if(mode65.eq.0) go to 900 | ||||
| 
 | ||||
|   nsps=nint(nsps*96000.d0/11025.d0) | ||||
| 
 | ||||
| ! Set up necessary constants | ||||
|   dt=1.d0/(samfac*96000.d0) | ||||
|   f0=118*11025.d0/1024 | ||||
|   dfgen=mode65*11025.d0/4096.d0 | ||||
|   t=0.d0 | ||||
|   phi=0.d0 | ||||
|   i=0 | ||||
|   k=0 | ||||
|   do j=1,nsym | ||||
|      f=f0 | ||||
|      if(nspecial.ne.0 .and. mod(j,2).eq.0) f=f0+10*nspecial*dfgen | ||||
|      if(nspecial.eq.0 .and. flip*pr(j).lt.0.0) then | ||||
|         k=k+1 | ||||
|         f=f0+(sent(k)+2)*dfgen | ||||
|   j0=0 | ||||
|   ndata=nsym*96000.d0*samfac*tsymbol | ||||
| 
 | ||||
|   do i=1,ndata | ||||
|      t=t+dt | ||||
|      j=int(t/tsymbol) + 1                    !Symbol number, 1-126 | ||||
|      if(j.ne.j0) then | ||||
|         f=f0 | ||||
|         if(nspecial.ne.0 .and. mod(j,2).eq.0) f=f0+10*nspecial*dfgen | ||||
|         if(nspecial.eq.0 .and. flip*pr(j).lt.0.0) then | ||||
|            k=k+1 | ||||
|            f=f0+(sent(k)+2)*dfgen | ||||
|         endif | ||||
|         dphi=twopi*dt*f | ||||
|         j0=j | ||||
|      endif | ||||
|      dphi=twopi*dt*f | ||||
|      do ii=1,nsps | ||||
|         phi=phi+dphi | ||||
|         if(phi.gt.twopi) phi=phi-twopi | ||||
|         xphi=phi | ||||
|         i=i+1 | ||||
| !        iwave(i)=32767.0*sin(xphi) | ||||
|         cwave(i)=cmplx(cos(xphi),-sin(xphi)) | ||||
|      enddo | ||||
|      phi=phi+dphi | ||||
|      if(phi.gt.twopi) phi=phi-twopi | ||||
|      xphi=phi | ||||
|      cwave(i)=cmplx(cos(xphi),-sin(xphi)) | ||||
|   enddo | ||||
| 
 | ||||
|   cwave(nsym*nsps+1:)=0 | ||||
|   nwave=nsym*nsps + 5512 | ||||
|   cwave(ndata+1:)=0 | ||||
|   nwave=ndata + 48000 | ||||
|   call unpackmsg(dgen,msgsent) | ||||
|   if(flip.lt.0.0) then | ||||
|      do i=22,1,-1 | ||||
| @ -92,5 +93,5 @@ subroutine cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|      if(nspecial.eq.4) msgsent='73' | ||||
|   endif | ||||
| 
 | ||||
| 900 return | ||||
|   return | ||||
| end subroutine cgen65 | ||||
|  | ||||
| @ -9,7 +9,7 @@ program mapsim | ||||
|   complex cwave(NMAX)                 !Generated complex waveform (no noise) | ||||
|   complex z,zx,zy | ||||
|   real*8 fcenter,fsample,samfac,f,dt,twopi,phi,dphi | ||||
|   character msg0*22,message*22,msgsent*22,arg*8,fname*14,mode*2 | ||||
|   character msg0*22,message*22,msgsent*22,arg*8,fname*13,mode*2 | ||||
| 
 | ||||
|   nargs=iargc() | ||||
|   if(nargs.ne.9) then | ||||
| @ -51,6 +51,8 @@ program mapsim | ||||
|   mode65=1 | ||||
|   if(mode(1:1).eq.'B') mode65=2 | ||||
|   if(mode(1:1).eq.'C') mode65=4 | ||||
|   nfast=1 | ||||
|   if(mode(2:2).eq.'2') nfast=2 | ||||
|   open(12,file='msgs.txt',status='old') | ||||
| 
 | ||||
|   write(*,1000) | ||||
| @ -68,7 +70,7 @@ program mapsim | ||||
|      call noisegen(d4,NMAX)                      !Generate Gaussuian noise | ||||
| 
 | ||||
|      if(msg0.ne.'                      ') then | ||||
|         call cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|         call cgen65(message,mode65,nfast,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|      endif | ||||
| 
 | ||||
|      rewind 12 | ||||
| @ -77,7 +79,8 @@ program mapsim | ||||
|         if(msg0.eq.'                      ') then | ||||
|            read(12,1004) message | ||||
| 1004       format(a22) | ||||
|            call cgen65(message,mode65,samfac,nsendingsh,msgsent,cwave,nwave) | ||||
|            call cgen65(message,mode65,nfast,samfac,nsendingsh,msgsent,    & | ||||
|                 cwave,nwave) | ||||
|         endif | ||||
|             | ||||
|         if(npol.lt.0) pol=(isig-1)*180.0/nsigs | ||||
| @ -89,7 +92,7 @@ program mapsim | ||||
|         snrdbx=snrdb | ||||
|         if(snrdb.ge.-1.0) snrdbx=-15.0 - 15.0*(isig-1.0)/nsigs | ||||
|         sig=sqrt(2.2*2500.0/96000.0) * 10.0**(0.05*snrdbx) | ||||
|         write(*,1020) isig,0.001*f,snrdbx,nint(pol),message | ||||
|         write(*,1020) isig,0.001*f,snrdbx,nint(pol),msgsent | ||||
| 1020    format(i3,f8.3,f7.1,i5,2x,a22) | ||||
| 
 | ||||
|         phi=0. | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| //-------------------------------------------------------------- MainWindow
 | ||||
| //--------------------------------------------------------------- MainWindow
 | ||||
| #include "mainwindow.h" | ||||
| #include "ui_mainwindow.h" | ||||
| #include "devsetup.h" | ||||
| @ -981,6 +981,8 @@ void MainWindow::on_actionOpen_next_in_directory_triggered()   //Open Next | ||||
|   } | ||||
|   for (i = 0; i < list.size()-1; ++i) { | ||||
|     if(i==list.size()-2) m_loopall=false; | ||||
|     qDebug() << len << m_path; | ||||
| 
 | ||||
|     if(list.at(i)==m_path.right(len)) { | ||||
|       int n=m_path.length(); | ||||
|       QString fname=m_path.replace(n-len,len,list.at(i+1)); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user