From be04b5bffa17b41ef7c03ad5bc75c4ad4768a50d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 14 Jan 2006 01:46:20 +0000 Subject: [PATCH] 1. Corrected simulator so that noise and signal levels are correct in FSK441 and JT6M, as well as JT65. (Still no generated pings, however.) 2. Updated README_592.TXT in preparation for open release of version 5.9.2. Updated READ git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@97 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- README_592.TXT | 40 +++++++++++++++++++++++++--------------- fivehz.f90 | 13 ++++++++++--- jtaudio.c | 8 +++++--- wsjt.py | 3 ++- 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/README_592.TXT b/README_592.TXT index ee9577e34..41d5cf45d 100755 --- a/README_592.TXT +++ b/README_592.TXT @@ -8,7 +8,7 @@ Enhancements result is that there will be fewer audio glitches caused by the Windows O/S paying attention to other programs. -2. The JT65 decoder has improved immunity to "garbage data," and +2. The JT65 decoder now has improved immunity to "garbage data," and it exhibits better performance on strong signals. 3. The FSK441 decoder produces less on-screen gibberish when you do @@ -20,21 +20,31 @@ Enhancements 5. On-screen font sizes can be set by using Windows Notepad (or another text editor) to edit the file wsjtrc.win. If your screen has resolution greater than 1024 x 768, or if you have old eyes - like mine, you may want to increase the sizes from 8 and 9 (first - three lines of the file) to 9 and 10, say. + like mine, you may want to increase the sizes from 8 and 9 points + (first three lines of the file) to, say, 9 and 10 points. -6. Dividing lines are now provided on the waterfall display between +6. A simulator mode is now built into WSJT. It is presently most + useful in JT65 mode. By entering, say, "#-22" in the text box for + Tx6, you signify that the program should generate its Tx audio + files with the signal embedded in white gaussian noise, 22 dB + below the noise power in a 2.5 kHz bandwidth. You can direct this + signal into a second computer running WSJT, for eaxmple to test + the decoder or to practice operating in JT65 mode. You can even + have the two computers "work each other", although changing + messages of course requires operator action. + +7. Dividing lines are now provided on the waterfall display between spectra corresponding to wave files read from disk. -7. The PTT line is explicitly set low on program startup. +8. The PTT line is explicitly set low on program startup. -8. The F10 key brings up the SpecJT screen (if it was hidden) and +9. The F10 key brings up the SpecJT screen (if it was hidden) and toggles foreground and focus between the WSJT and SpecJT screens. -9. You can use the Alt-F keyboard shortcut to toggle "Freeze", and +10. You can use the Alt-F keyboard shortcut to toggle "Freeze", and Alt-Z to toggle "Zap". -10. "Accelerated decoding" has been removed from the Setup menu. In +11. "Accelerated decoding" has been removed from the Setup menu. In effect, it is now always ON. @@ -53,12 +63,12 @@ Bug Fixes: Information for Programmers --------------------------- -WSJT is no longer a one-person effort. It has become a full-fledged -Open Source project, with an active working group making contributions -to future development. Source code is now stored in a public -repository under control of a version control system called -Subversion, or SVN. You can learn more at -http://developer.berlios.de/projects/wsjt/. +WSJT is no longer a one-person effort and no longer runs only in +Microsoft Windows. It has become a full-fledged Open Source project, +with an active working group making contributions to future +development. Source code is now stored in a public repository under +control of a version control system called Subversion, or SVN. You +can learn more at http://developer.berlios.de/projects/wsjt/. The first significant result of the group effort has been to create versions of WSJT that run under the Linux and FreeBSD operating @@ -73,7 +83,7 @@ The present WSJT working group consists of: Diane Bruce, VA3DB James Courtier-Dutton Bob McGwier, N4HY - Stewart Nelson, KK7A + Stewart Nelson, KK7KA Joe Taylor, K1JT Kaj Wiik, OH6EH diff --git a/fivehz.f90 b/fivehz.f90 index 5cda28acc..f3f795a39 100644 --- a/fivehz.f90 +++ b/fivehz.f90 @@ -213,13 +213,20 @@ end subroutine fivehztx subroutine addnoise(n) integer*2 n real r(12) + real*8 txsnrdb0 include 'gcom1.f90' + save txsnrdb0 - if(txsnrdb.gt.90.0) return - snr=10.0**(0.05*(txsnrdb-1)) + if(txsnrdb.gt.40.0) return + if(txsnrdb.ne.txsnrdb0) then + snr=10.0**(0.05*(txsnrdb-1)) + fac=3000.0 + if(snr.gt.1.0) fac=3000.0/snr + txsnrdb0=txsnrdb + endif call random_number(r) x=sum(r)-6.0 - i=3000.0*x + n*snr*3000.0/32768.0 + i=fac*(x + n*snr/32768.0) if(i>32767) i=32767; if(i<-32767) i=-32767; n=i diff --git a/jtaudio.c b/jtaudio.c index ac489396e..db8b1f6c8 100644 --- a/jtaudio.c +++ b/jtaudio.c @@ -137,6 +137,7 @@ static int SoundOut( void *inputBuffer, void *outputBuffer, short *in = (short*)inputBuffer; short *wptr = (short*)outputBuffer; unsigned int i,n; + static short int n2; static int n0; static int ia=0; static int ib=0; @@ -167,9 +168,10 @@ static int SoundOut( void *inputBuffer, void *outputBuffer, for(i=0 ; iTxOK) { - addnoise_(&data->iwave[ic]); - *wptr++ = data->iwave[ic]; //left - *wptr++ = data->iwave[ic]; //right + n2=data->iwave[ic]; + addnoise_(&n2); + *wptr++ = n2; //left + *wptr++ = n2; //right ic++; if(ic>=*data->nwave) { ic = ic % *data->nwave; //Wrap buffer pointer if necessary diff --git a/wsjt.py b/wsjt.py index 0b2f5c9bb..4fd987e84 100644 --- a/wsjt.py +++ b/wsjt.py @@ -1342,13 +1342,14 @@ def update(): if tx6.get()[:1]=='#': try: txsnrdb=float(tx6.get()[1:]) - if txsnrdb>-99.0 and txsnrdb<10.0: + if txsnrdb>-99.0 and txsnrdb<40.0: Audio.gcom1.txsnrdb=txsnrdb tx6.configure(bg='orange') except: txsnrdb=99.0 else: txsnrdb=99.0 + Audio.gcom1.txsnrdb=txsnrdb if Audio.gcom2.monitoring and not Audio.gcom1.transmitting: bmonitor.configure(bg='green') else: