V6 Chapter 44
254 - Jump Skip Logic 2012-01-12
Back on item 248 I came to the conclusion that I needed to modify the skip logic, the place where I decide to move the receiver frequency, to something like the following:
Is there a bird in the upcoming jump? If so skip it. If not is there a Target/Hit at the jump? If so skip it.
I have that in place and working but now I want to modify it again. It should be:
In the upcoming jump
- Is there a Bird. If so skip it.
- Is there a Hit that is within the system Half Power Beam Width (HPBW) of the current pointing angle. If so skip it.
This will allow for an area to be searched where there was a hit but at some other pointing angle.
The HPBW is calculated from the received frequency and the diameter of the dish but it is fairly constant over the 100 MHz of the Band Pass Filter I use so it can be set to a constant of 3 degrees. This will allow some overlap because the HPBW is actually about 3 1/2 degrees. The Hits table keeps track of Declination and Right Ascension of each hit so that can be used as the discriminator. Declination is already in degrees so its simply current DEC +/- one half of the Hits DEC. Right Ascension is in hours where 24 hrs = 360 degrees or 15 Deg/60 minutes or 3 degrees in 12 minutes. So the Ra is +/- 6 minutes.
253 - Twitter Feed 2012-01-12
I'm getting close to the point where I will be posting Auto Tweets when the status of the station changes. Right now it posts when the system goes: On line, A Hit is detected and when it goes Off line. As soon as the bird hunt is complete I'll enable this feature (beware).
Follow me @SETINet
252 - Bird Hunt both receivers 2012-01-12
I decided to run both receivers in Bird Hunt mode so I fired up a portable computer I had and added the database server et al. and got it going.
As of 2012-01-15 10 PM pacific time the hunt completed:
As you can see receiver 2 has a much larger number of hits. I have no idea why.
251 - Receiver Problems 2012-01-11
The system came to an odd problem tonight during the Bird Hunt. As the receiver frequency was approaching 1379.9999 MHz it suddenly jumps to 1420.0000 MHz. I have no idea why but it sounds like a hardware problem.
- This is what I know of the problems so far:
- Both receivers show the problem - so it not the receiver hardware problem
- RadioControl - This application runs the receiver correctly - so its not my Serial-to-USB converter that I built
- Test Radio - The Delphi application fails so it must be something to do with AsyncPro. Downloaded the latest Delphi XE version of AsyncPro but no joy.
- Radio.Pas - The problem MUST be in the application itself. Work'n it boss.
Fixed It. The problem was that I failed to correctly convert to Unicode when I moved to Delphi XE. In several areas I was developing a command to send to the receiver like:
|Command := chr($FE) + chr($FE) + Ansichar(8) + chr(1) + chr(5) + char($E0) + chr($99) + chr($99) + chr($39) + chr($01) + chr(EOM);
|When it should have been:
|Command := AnsiChar($FE) + AnsiChar($FE) + AnsiChar(8) + AnsiChar(1) + AnsiChar(5) + AnsiChar($E0) + AnsiChar($99) + AnsiChar($99) + AnsiChar($39) + AnsiChar($01) + AnsiChar(EOM);
The original cast 'chr' was to a byte (8-bit) but a Unicode 'chr' is a wide character that is 16 bits. The change to AnsiChar moves it back to a byte. The poor receiver was being fed a diet of 16 bit words when it was looking for 8 bits at a time. Its a wonder that it worked at all.
Now back to the bird hunt. I guess I'll have to start from scratch.
250 - Twitter 2012-01-05
I have decided to add an Auto-Tweet function to the Control Panel. This will issue a tweet whenever a status changes in SETI Net. Right now I plan to tweet on every Hit, when a Scan is started and when the system goes off line. I'll also have a function that the operator can use to issue standard tweets and respond to directed tweets.
I have set up a Twitter Developer account and have the first prototype client running.
If you wish to get the tweets follow @SETINet. Remember you can always UnFollow.
249 - Bird Hunt 2012-01-03
What's a Bird?
Birds are those signals you come across on any type of receiver that are generated by the radio itself. Sometimes they are called Spurs (for spurious emissions) but I like the name 'Birds'. When you tune across one of these fast in the CW or SSB mode they make a descending (or ascending) note in the speaker that sounds sort of like a bird.
Since SETI Net has been built to detect very low level signals it currently spends a lot of time finding these birds all across the spectrum. Every time it comes to one it sets off its alarms and then I have to intervene and falsify it. Then I have to restart the system and erase the data collected about the bird. This was causing me a lot of extra work.
The Bird Hunt function scans the spectrum looking for these Birds and logging them into the database. When a scan is complete the Birds table in the database will be used in the skip logic during an actual search session (see #248 below).
Scope of the problem:
SETI Net scans the spectrum from 1375 to 1475 MHz. This is set by the characteristics of the Band Pass Filter that lives in the Electronics Front End
Each scan covers 20 KHz of that 100 MHz chunk of the spectrum therefore there there are (1475 MHz-1375 MHz)/20 KHz or 5,000 places to scan
Since the scan is not exactly 20 KHz (actually more like 18 KHz) I decided to scan every 10 KHz so there are 10,000 places to scan
I have set the system up to spend 30 seconds on each scan so a complete spectrum scan will take 5,000 minutes or 80 or so hours.
I use the standard SETI search algorithm on each scan with the detection logic set to alarm when a signal is found that is 20% higher in amplitude than the surrounding 10 bins. I don't use any other filters or integration because I expect these signals to be rather large.
To isolate Birds in the receiver from Birds in the local area I have terminated the antenna input of the receiver with a quality 50 ohm N-Type terminator.
Each Bird found is written to the database saving its Bird ID ( a simple incrementing integer) Date, Time (in ISO format), the receiver frequency. I also have a note area should I care to fill it in for some reason.
The first two runs were aborted for setup reasons. Run #3 of the Bird Hunt started at 8:45 AM Pacific and five hours later twenty birds have been identified. You can watch the progress in the status report ( main page ).
248 - Things that bug me 2012-01-01
First thing under this category is the detection logic (To Do list item 2 below). It's not right.
The way it works now is that it asks the question:
Has there ever been a hit at this frequency +/- 10 KHz? If so it skips that slice and jumps ahead.
This is not right. A better question would be:
Has there ever been a hit on this target in the upcoming slice?
That would be easy enough to implement but there is still another problem - Birds.
A Bird is a local carrier, either in my shop, like my low power test oscillator that is always running at 1420.390200 MHz, or some other harmonic from some other oscillator running in my shop or close by or some signal coming from the local navy base or who knows where or what. I really need a Bird table in the database. That way the question becomes -
Is there a bird in the upcoming jump? If so skip it. If not is there a Target/Hit at the jump? If so skip it.
Another question is how close should the jump be? If there is a Target/Hit should I jump over the whole 20 KHz slice or should I simply ignore any hits within say +/- 10 Hz? This would cause a lot of additional hits to be generated from close in images from birds. An open question.
At any rate I have convinced myself that I need a Bird Table. A good task for today the first day of the new year.
So I built the table (easy part) Now to write the BirdHunt application. I will use Delphi XE2.
247 - Search Logic Bugs (continued) 2011-12-31
I managed to get the SpecAna to the point where it records 1 jpg/ 1 WAV file without breaking it too bad. It still misses the first WAV but I'm working on that.
246 - Search Logic Bugs 2011-12-30
While running the search today a couple of things came up. First was that I didn't include the actual bin number when a Hit was recorded in the database. Fixed.
Second was that I realize that I have to record ALL THE TIME while I am searching. I should start recording as soon as the Scan starts and through away WAV and jpgs as I go along. That way when I do get a hit I will already have it captured.
There is also something going on with the saving of WAVs and jpgs. They are not the right length and something is shutting off the Capture function at the wrong time.
245 - Near Term To Do List 2011-12-27
- Put column sort on tables - DONE - Will help in target select. Change format on Date/Time to the SETI Net standard. Important
- Work Target presentation in Control Panel - Need to know which target, constellation and what frequency is being searched
- Fix Frequency display in Target - Should only come on during a Hit (its not being calculated correctly)
- Think about Twitter feed on Hits - Might be and interesting thing to do once search smoothes out with new database
- Start moving database to the web site - Must be done. Nearing the time to start. Will be interesting. Should I use Cool components?
- Decide if I have a 'note' in the audio subsystem or not -DONE- I do but don't have a clue (see below)
- Other kinds of searches - There might be better ways to move along other than increment and stop (capture then move, move down rather than up,)
- Is database skip logic working - Does it still jump over hits? if so is it a 20 KHz skip or just over the Hit frequency?
- Simulation function for receiver - would make debugging easer but tough to implement because of component for serial control
- Link XML files into the database - Nice but not necessary just yet
- Select Scan by click - Look into 'follow up Scans' based on the database.
- Status on Exit - Make Status go to Off Line on exit so it shows up right on the web site
- SpecAna should shut off waterfall when Go is False.< DONE - Causes a problem the way it is if you shut off SpecAna first.
- Saving WAV logic not correct - DONE - Must fix. High priority. It doesn't make sense as it is.
- Target/Scan/Hit logic is not right - < DONE - Should not be able to change an underway scan simply by clicking on the dB. High priority
244 - Lines in Audio 2011-12-26
The audio subsystem has developed some very low frequency, low level lines in the output. The screen grab below shows this line.
- This is with the receiver shut off and the audio cable disconnected so its not coming from the receiver.
- Running the FFT at 32 K shows lines every 10 bins. At 1.3 Hz/Bin this is about every 13 Hz.
- Switching computers to Zeke (from Sagan) shows the same lines more or less. The lines are very low level. About 300 uV across the 20 KHz spectrum but about 1.5 mV down near DC. They produce hits because they are not effected by bin shifting.
Using my Virtins Technology Multi-Instrument Lite 3.2 Spectrum Analyzer shows the same problem - So its not the SETI Net SpecAna
- Virtins reports the peak frequency of 126 Hz
- This signal appears on both computers, both Spectrum Analyzers and with or without any audio connection at all. It must be endemic to the audio subsystem (audio card) of both computers.
- The first line is at 60 Hz so I can understand that. The others don't seem to have a harmonic relationship to anything that I know of.
I have no idea how to work this one.
I ripped out and bought a new sound card to see if this fixes the problem. It did not but it's much better now. Notice that on the pix left (with the new card) the noise floor is about 200 uV where it was about 40 mV on the original.
The card is a Creative PCI Express with X-Fi (Model SB1040EF). It has a much better noise floor (-120 dBm) than the sound system built into Sagan's mother board so the problem improved but did not go away. The only fix is to simply move the green guard bar over from the left side of the SpecAna to eliminate the set of lines between 0 and about 200 Hz.
243 - Database Working 2011-12-26
Now its time to start the first real Target Search.