Return to KLUBNL.PL main page

rsgb_lf_group
[Top] [All Lists]

Re: VLF: DK7FC > W1VD / K3SIW 8.27 kHz EbNaut - We don't give up!

To: [email protected]
Subject: Re: VLF: DK7FC > W1VD / K3SIW 8.27 kHz EbNaut - We don't give up!
From: Paul Nicholson <[email protected]>
Date: Fri, 16 Mar 2018 15:41:46 +0000
Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=abelian.org ; s=default; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:References:Reply-To:To:From:Subject:Sender:Cc: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=RNwwtmlUKW/D4amG/PkoSKavE01xbgH+0ZcuNJ6sY6w=; b=3WXW43K65+LhoT5s/WCsn7FOHw XbJXRiQhZxe7FDbLNx040L2+gt+YTvavEVpIFAwZF8JyPh/cFwMPdUgPlqT48EpDK3RmQQeOGpuSd 9mG6bHCpBN58oC1WDv1Sskp7wB+WiGpT8gvuW7SCds3MP2rtRdy3odgGMERl/akfFafc=;
In-reply-to: <[email protected]>
References: <1UQOBAX9Wi.5GpBpi86BpG@optiplex980-pc> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]>
Reply-to: [email protected]
Sender: [email protected]
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

Sorry I missed a chunk off the last email!

Here's my solution to normalising and stacking:

First a little change to the iqnorm script, to change
the first field from a timestamp to a record number:

#!/usr/bin/awk -f

BEGIN{
   idx = 0;
   sum_square = 0
}
{
   stamp[idx] = NR  ####  Changed to record number NR
   ival[idx] = $2
   qval[idx] = $3

   sum_square += $2*$2 + $3*$3
   idx++

   if( idx == 300)
   {
      rms = sqrt( sum_square/idx)

      for( i = 0; i < idx; i++)
         printf( "%s %.5e %.5e\n", stamp[i], ival[i]/rms, qval[i]/rms)
      idx = 0;
      sum_square = 0
   }
}

I've saved this as iqnorm2

I have the .wav files in a sub-directory, eg:

ls -l W1VD

-rw-rw-rw- 1 root root 131200 2018-03-01 12:27 01.wav
-rw-rw-rw- 1 root root 131200 2018-03-02 13:45 02.wav
-rw-rw-rw- 1 root root 131200 2018-03-03 12:26 03.wav
-rw-rw-rw- 1 root root 131200 2018-03-04 16:22 04.wav
-rw-rw-rw- 1 root root 131200 2018-03-05 14:00 05.wav
-rw-rw-rw- 1 root root 131200 2018-03-06 12:40 06.wav
-rw-rw-rw- 1 root root 131200 2018-03-07 16:33 07.wav
-rw-rw-rw- 1 root root 131200 2018-03-08 14:41 08.wav
-rw-rw-rw- 1 root root 131200 2018-03-10 12:53 10.wav
-rw-rw-rw- 1 root root 131200 2018-03-11 17:28 11.wav
-rw-rw-rw- 1 root root 131200 2018-03-12 21:05 12.wav
-rw-rw-rw- 1 root root 131200 2018-03-13 15:08 13.wav
-rw-rw-rw- 1 root root 131200 2018-02-26 13:59 26.wav
-rw-rw-rw- 1 root root 131200 2018-02-27 14:13 27.wav

Now a script to normalise and stack.  This uses the
standard unix join command instead of vtjoin, since
the files are already ASCII and all share the same
record number, we can just join on column 1:

#!/bin/bash

dir=$1

rm -f stack.dat

for file in $(ls $dir/*.wav)
do

   vtwavex $file |
      vtraw -oa |
      ./iqnorm2 > temp.dat


   [ ! -f stack.dat ] && {
      # first file
      mv temp.dat stack.dat
   } || {
      # subsequent files
      join stack.dat temp.dat | awk '{
         printf( "%s %.5e %.5e\n", $1, $2 + $4, $3 + $5)
      }' > new.dat

      mv new.dat stack.dat
   }

done

Save that as, say, normstack and make executable.

Then I run

./normstack W1VD

which produces a stack.dat, then

cat stack.dat | ebnaut -dp16K21A -r0.4572395 -T 198.3 -F0.1 ...

Similarly,

./normstack K3SIW

cat stack.dat | ebnaut -dp16K21A -r0.771603 -T 216 -F0.0 ...

This works because ebnaut ignores the timestamp (or whatever else)
in column 1.

--
Paul Nicholson
--

<Prev in Thread] Current Thread [Next in Thread>