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
This commit is contained in:
Joe Taylor 2006-01-14 01:46:20 +00:00
parent 51a2218bdb
commit be04b5bffa
4 changed files with 42 additions and 22 deletions

View File

@ -8,7 +8,7 @@ Enhancements
result is that there will be fewer audio glitches caused by the result is that there will be fewer audio glitches caused by the
Windows O/S paying attention to other programs. 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. it exhibits better performance on strong signals.
3. The FSK441 decoder produces less on-screen gibberish when you do 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 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 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 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 like mine, you may want to increase the sizes from 8 and 9 points
three lines of the file) to 9 and 10, say. (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. 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. 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". 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. effect, it is now always ON.
@ -53,12 +63,12 @@ Bug Fixes:
Information for Programmers Information for Programmers
--------------------------- ---------------------------
WSJT is no longer a one-person effort. It has become a full-fledged WSJT is no longer a one-person effort and no longer runs only in
Open Source project, with an active working group making contributions Microsoft Windows. It has become a full-fledged Open Source project,
to future development. Source code is now stored in a public with an active working group making contributions to future
repository under control of a version control system called development. Source code is now stored in a public repository under
Subversion, or SVN. You can learn more at control of a version control system called Subversion, or SVN. You
http://developer.berlios.de/projects/wsjt/. can learn more at http://developer.berlios.de/projects/wsjt/.
The first significant result of the group effort has been to create The first significant result of the group effort has been to create
versions of WSJT that run under the Linux and FreeBSD operating 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 Diane Bruce, VA3DB
James Courtier-Dutton James Courtier-Dutton
Bob McGwier, N4HY Bob McGwier, N4HY
Stewart Nelson, KK7A Stewart Nelson, KK7KA
Joe Taylor, K1JT Joe Taylor, K1JT
Kaj Wiik, OH6EH Kaj Wiik, OH6EH

View File

@ -213,13 +213,20 @@ end subroutine fivehztx
subroutine addnoise(n) subroutine addnoise(n)
integer*2 n integer*2 n
real r(12) real r(12)
real*8 txsnrdb0
include 'gcom1.f90' include 'gcom1.f90'
save txsnrdb0
if(txsnrdb.gt.90.0) return if(txsnrdb.gt.40.0) return
if(txsnrdb.ne.txsnrdb0) then
snr=10.0**(0.05*(txsnrdb-1)) 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) call random_number(r)
x=sum(r)-6.0 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;
if(i<-32767) i=-32767; if(i<-32767) i=-32767;
n=i n=i

View File

@ -137,6 +137,7 @@ static int SoundOut( void *inputBuffer, void *outputBuffer,
short *in = (short*)inputBuffer; short *in = (short*)inputBuffer;
short *wptr = (short*)outputBuffer; short *wptr = (short*)outputBuffer;
unsigned int i,n; unsigned int i,n;
static short int n2;
static int n0; static int n0;
static int ia=0; static int ia=0;
static int ib=0; static int ib=0;
@ -167,9 +168,10 @@ static int SoundOut( void *inputBuffer, void *outputBuffer,
for(i=0 ; i<framesPerBuffer; i++ ) { for(i=0 ; i<framesPerBuffer; i++ ) {
if(*data->TxOK) { if(*data->TxOK) {
addnoise_(&data->iwave[ic]); n2=data->iwave[ic];
*wptr++ = data->iwave[ic]; //left addnoise_(&n2);
*wptr++ = data->iwave[ic]; //right *wptr++ = n2; //left
*wptr++ = n2; //right
ic++; ic++;
if(ic>=*data->nwave) { if(ic>=*data->nwave) {
ic = ic % *data->nwave; //Wrap buffer pointer if necessary ic = ic % *data->nwave; //Wrap buffer pointer if necessary

View File

@ -1342,13 +1342,14 @@ def update():
if tx6.get()[:1]=='#': if tx6.get()[:1]=='#':
try: try:
txsnrdb=float(tx6.get()[1:]) 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 Audio.gcom1.txsnrdb=txsnrdb
tx6.configure(bg='orange') tx6.configure(bg='orange')
except: except:
txsnrdb=99.0 txsnrdb=99.0
else: else:
txsnrdb=99.0 txsnrdb=99.0
Audio.gcom1.txsnrdb=txsnrdb
if Audio.gcom2.monitoring and not Audio.gcom1.transmitting: if Audio.gcom2.monitoring and not Audio.gcom1.transmitting:
bmonitor.configure(bg='green') bmonitor.configure(bg='green')
else: else: