V6 Chapter 45

263 - State Machine Revisited 2012-03-23

A couple of minor corrections were in order.

262 - Waveform Audio File Format 2012-03-17

This from the http://groovit.disjunkt.com/analog/wave/wave.pdf site

Data Packing for PCM WAVE Files

In a single-channel WAVE file, samples are stored consecutively. For stereo WAVE files, channel 0 represents the left channel, and channel 1 represents the right channel. The speaker position mapping for more than two channels is currently undefined. In multiple-channel WAVE files, samples are interleaved.

The following diagrams show the data packing for a 8-bit mono and stereo WAVE files:

Data Packing for 8-Bit Mono PCM

261 - Threads 2012-02-19

I have decided that my knowledge of threads is incomplete (to say the least). So I am learning from scratch using a Tutorial from Martin Harvey on line.

I wish to rebuild the AudioIO code that I have been living with for several years to have the start/stop capabilities needed when its part of the SpectrumAnalyzer and the SpecAna is part of the Control Panel. Not a simple task.

The tutorial makes use of the basic threads class TThread. He uses a symbol set that should be helpful (below)

The first example in chapter 2 uses the diagram:

In chapter 3 a synchronized calculation is shown

procedure TPrimeThrd.UpdateResults;
begin
PrimeFrm.ResultsMemo.Lines.Add(FResultString);
end

procedure TPrimeThrd.Execute;
begin
if IsPrime then
FResultString := IntToStr(FTestNumber) + ' is prime.'
else
FResultString := IntToStr(FTestNumber) + ' is not prime.';
Synchronize(UpdateResults);
end;

260 - Found Blow Up 2012-02-12

I have been searching through my code (65,000 Lines now) for a error that was causing the Control Panel to blow out. I *think* I have it fixed.

The Waterfall has a number edit input that sets the percent looked for on the search logic. This was being interfered with by an edit box in the Twitter subsystem.

More work and I think that was a red herring. Now I think that I was 'hammering' my database (MySQL) with one of my timers. Running now - we will see.

259- To Do list for 2012-02-09

  1. Work next step with dB - Move Target table to web site.
  2. Default to AM on Receiver
  3. Add guard bands to status and make sure they default and recover correctly
  4. Water switch shuts off between jpgs
  5. Work Twitter and add Note from Control Panel
  6. Need Freq Lock for WOW work
  7. Calibrate receiver frequency using new Synthesizer

258- State Machine Revisited 2012-02-01

I am having a lot of trouble getting all the bits and pieces running in the Control Panel and decided to go over the search state machine I have in place (see item 242). This is what I have come up with

I have added a fourth state (Alarm) and more closely defined what happens in each state.

257- Bird Hunt Results 2012-01-27

52 Birds were detected over the 100 MHz range of 1375 to 1475 MHz. Some of them were quite healthy, like ID #31 but most were rather timid. the average amplitude is 43.73. Many of the birds were actually the same signal. For example IDs 12 and 13 are the same bird detected twice because the receiver was incremented by 1/2 the audio bandwidth each time (10 KHz per step). This should not cause a problem in the detection logic.

Bird_ID Date Time Frequency Amplitude RMS
7 2012-01-24 12:03 1,375,013,650 0.62
8 2012-01-24 12:05 1,375,039,723 0.63
9 2012-01-24 12:05 1,375,043,696 0.59
10 2012-01-24 12:31 1,375,560,857 0.61
11 2012-01-24 12:45 1,375,854,553 0.82
12 2012-01-24 12:53 1,376,013,923 0.68
13 2012-01-24 12:54 1,376,014,158 0.61
14 2012-01-24 14:02 1,377,389,492 0.56
15 2012-01-24 14:43 1,378,200,395 0.60
16 2012-01-24 15:05 1,378,653,692 6.12
17 2012-01-24 15:06 1,378,663,713 0.65
18 2012-01-24 15:07 1,378,681,298 0.56
19 2012-01-27 10:48 1,468,015,267 46.56
20 2012-01-27 10:49 1,468,015,502 51.48
21 2012-01-27 11:28 1,468,607,157 41.97
22 2012-01-27 12:34 1,469,587,304 49.98
23 2012-01-27 12:35 1,469,587,560 43.59
24 2012-01-27 12:35 1,469,600,836 77.58
25 2012-01-27 12:36 1,469,606,531 80.17
26 2012-01-27 12:37 1,469,616,552 50.20
27 2012-01-27 13:06 1,470,058,900 44.34
28 2012-01-27 13:07 1,470,059,156 62.24
29 2012-01-27 13:07 1,470,069,156 50.01
30 2012-01-27 13:23 1,470,314,049 40.18
31 2012-01-27 13:26 1,470,351,403 198.64
32 2012-01-27 13:27 1,470,361,403 43.53
33 2012-01-27 14:24 1,471,080,983 42.84
34 2012-01-27 14:58 1,471,497,724 50.53
35 2012-01-27 14:59 1,471,502,873 146.69
36 2012-01-27 15:00 1,471,508,001 108.95
37 2012-01-27 15:01 1,471,513,108 42.18
38 2012-01-27 15:02 1,471,523,129 45.34
39 2012-01-27 15:45 1,472,041,991 48.79
40 2012-01-27 15:50 1,472,102,810 41.69
41 2012-01-27 15:50 1,472,103,066 46.06
42 2012-01-27 16:32 1,472,603,482 56.69
43 2012-01-27 16:42 1,472,718,358 48.24
44 2012-01-27 16:43 1,472,733,965 56.03
45 2012-01-27 16:44 1,472,749,786 46.21
46 2012-01-27 16:45 1,472,759,807 47.30
47 2012-01-27 17:15 1,473,124,616 39.31
48 2012-01-27 17:16 1,473,124,872 52.92
49 2012-01-27 17:44 1,473,465,981 42.10
50 2012-01-27 17:45 1,473,466,216 42.55
51 2012-01-27 18:41 1,474,146,443 37.68
52 2012-01-27 18:42 1,474,146,678 50.64
53 2012-01-27 19:12 1,474,506,170 38.45
54 2012-01-27 19:13 1,474,506,447 39.24
55 2012-01-27 19:58 1,475,052,873 54.02
56 2012-01-27 20:07 1,475,168,228 55.89
57 2012-01-27 20:08 1,475,168,463 40.87
58 2012-01-27 21:19 1,476,006,384 44.07
59 2012-01-27 21:34 1,476,190,269 58.90

Conditions:

  • Receiver 1 was tested
  • The antenna input was terminated with a quality 50 ohm load
  • Integration was set to 2 seconds
  • Detection threshold was 14%
  • Spectrum Size was 2048
  • Receiver was stepped 10 KHz after completing each waterfall (about 30 seconds each)

This table will be used in the jump logic for the receiver frequency control.

256 - New Signal Generator 2012-01-25

I just received a sweet little signal generator via UPS. Check this out:

  • Output frequency range: 137.5 MHz to 4400 MHz
  • Fractional-N synthesizer and integer-N synthesizer
  • Low phase noise VCO
  • Programmable divide-by-1/-2/-4/-8/-16 output
  • Typical rms jitter: <0.4 ps rms
  • Power supply: 3.0 V to 3.6 V
  • Logic compatibility: 1.8 V
  • Programmable dual-modulus prescaler of 4/5 or 8/9
  • Programmable output power level
  • RF output mute function
  • Analog and digital lock detect
  • Switched bandwidth fast-lock mode
  • Cycle slip reduction
  • Phase noise less than -107 dBC at 100 KHz offset from 2GHz
  • Power output of 0 to 5 dBm adjustable

Just plug it into your USB port, install the software and you have a signal generator that is much better then a $5,000 unit from a few years back.

Just $250 from WindFreak Technology Products.

I'm not sure how I'll use it but I know I will.

255 - Restart #5 of the Bird Hunt 2012-01-24

I decided to scrap the operation of the Control Panel where you could set the stare time. I was causing massive confusion with the SpecAna and Waterfall doing there jobs and doesn't seem necessary at all (now that I have ripped it out). Now each start from the CP will start run exactly one Waterfall. At the end of that the Waterfall signals the CP that it is ready for more and the next Waterfall starts. The CP can now increment (or not) the receiver frequency at the proper time.

I also added some details to the Bird table in the database like the integration time and threshold in use when the bird was captured. This will help me when it comes to to compare birds from the two receivers.

Receiver #1 is running Bird Hunt now using Sagan full time. I realized that the little portable computer on my bench only has Mic input so its frequency response was really shitty. No wonder it didn't find any birds when it was being used. Live and learn.

255 - Back to Bird Hunt 2012-01-17

The last couple of goes at this were total wash-outs. Receiver 2 collected 3,500 birds where Receiver 1 only a couple of hundred. Hundreds is good but 3,500 is why to big a fraction of the address space (100 MHz wide at 10 kHz jumps or 10,000 places to look). I am looking over the logic behind the hunt and have found many improvements.

I should be able to restart the hunt on the first receiver, under controlled circumstances tomorrow.