|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ENGINEERING NOTE BOOK CHAPTER 21 (Here for earlier chapters) This is the current Problem Of the Day (POD) It's a Blog - Read from the bottom up... 101. Spectrum Analyzer ( 2006-10-03 to Present ) I have the SpecAna running well enough to release now. I actual use a much larger set of blackbody values than shown in item 100 below and I have a Rainbow color scheme as well. The analyzer seems to work well and I have included a AutoSave feature that generates file names, base on the computer clock, and automatically stores them away as you work. The Audio portion is saved as WAV files, the waterfall as a series of JPG files. Both types of files are automatically tagged with SML data. Now I can move to the integration of all the components 100. Spectrum Analyzer ( 2006-09-13 to 2006-10-03 ) I'm working on the Waterfall display portion of the SpecAna now. One of the problems that must be solved is just how to write to pixels on the display. I would like to have a waterfall that reflected the FFT output in a bin/pixel manor so that when the FFT is producing 2048 bins per scan the the waterfall would be 2048 pixels wide. I found a good way to do this once and then lost the link. Today I found it again so this time I'll put the link here to remember it: Manipulating Pixels With Delphi's ScanLine Property Color science is a complex discipline that I (luckily) only need to understand a bit of. One of the major decision points was just how to display the waterfall values. I want a display that represents the amplitude of the signal as a smooth transition from lower signal values to full scale. I would like to have black minimum and white maximum. The best thing I have found is the color scale for a blackbody which is a smooth transition for red at 1,000 deg K to blue at 29,800 K. I have decided to use a direct table lookup for the color values of the FFT waterfall. After much thrashing around I came to Mitchell Charity's web page where he presents the table (below) this shows the color for a blackbody at a certain temperature. It also shows the RGB values that produce the color on you screen. For example the color for 1000 degrees K is #FF3800. This hex value can be broken down to Red = FF hex (256 decimal), Green = 38(56), Blue = 00(00). Using this table I can lookup the RGB values for the waterfall rather than computing them on the fly. What color is a blackbody? Some pixel RGB values from Mitchell Charity on his fine web site
Using the RGB values from this table I can start on the code to display them. Look up will be fast and since color accuracy is not a problem it will be adequate for the SETI Net waterfall. 99. Antenna Fixed ( 2006-09-10 to 2006-09-13 ) After much thrashing around I ordered and received a new set of H-Bridges from Digi Key and installed one on one of the older Kerr modules. This got the PWM reverse sorted out. Then the Az pulse counter seemed to stop working then started again. I think this was (and still is) a loose connection somewhere in the cable between the control box and the rotor. I guess I'll have to keep an eye on it but it all works now. 98. Antenna ( 2006-09-01 to 2006-09-10 ) I got sidetracked on an antenna problem for a bit. The Kerr Azimuth control module blew out the H-Bridge IC that controls the motor and needed to be replaced. In the process I realized that I didn't have a replacement IC and had to order more but I put one of the new versions of the Kerr modules on line. For some reason the new version will not run PWM in reverse. When ever I set the REVERSE bit in the mode command nothing happens. I am tempted to rewrite the antenna control software from scratch because its looking kind of dated now. Still working on this one. 97. System Control ( 2006-08-29 to 2006-08-31 ) I have fixed the SpecAna so that it records correctly and now have started the development of the System Controller (shown as 'Controller' in the figure below). I thrashed about for a day looking for a way to build an application that is controlled by clicking on icons. I wanted to automate the picture below but I think I found a better way. I'm going to use a series of thumbnails that when clicked open the underlying application. This is one: This way when I click on the thumbnail the real application will start and be placed into the data stream. 96. Thinking Out Loud ( 2006-08-25 to 2006-08-28 ) I now have a SpecAna that works well but only in 44.1 sample rate, 16 bit, mono mode. Should I put some more work into it? I could make it more versatile but the real reason for the device is as a front end for the Waterfall display. I have found an Active X component from Guangming Software and its not very expensive ($100) but do I need it? It would allow me to create different files than the WAV format I now use, on the fly, but is that important? I could still create WAV files, tag them with SML and convert them to one of the lossless codex (WMA, OGG, FLAC or any of the others) after the fact in batch mode. The OCX does allow me to set the volume and channel but I do know how to do that directly. I has a 'silence' detector that would act as a squelch but since I don't expect SETI data to every be completely quite this wouldn't be much help. I also have a full function SpecAna (from Virtins) if I need it for a development tool so why would I build anything other than a very specialized device? I think I just talked my self into it. I'm going to release this version As Is and go on to the Waterfall. With that bit of decision out of the way this is how it will shape up.
95. Vertical Calibration( 2006-08-24 to 2006-08-25 ) I couldn't find one of the HP true RMS AC voltmeters like the one that I blew up but I did find an HP 350D Attenuator Set that worked out fine. Using this as a transfer standard I was able to verify the front end attenuator settings in the software. I ran the SETI Net Tone Generator on the RemoteSETI computer and connected that Sound Card line out to the HP 350D. The Tone Generator was running a 10 KHz sine wave. The output of the HP went to the interface box that I had previously constructed (with the limiting diodes). I could then simply turn on or off either Spectrum Analyzer for the test. The results followed what was expected closely.
Notes:
5. Calculated dB is the voltage form dB = 20 log ( E previous/ E this) Down at the bottom end things got very noisy and the signal fell down to the grass. The Virtins SpecAna quit triggering when -30 dB was inserted (about 35 mV). I have no idea why. The SETI Net SpecAna triggers automatically with or without signal. With this running right I can go back and figure out the 8 bit version 94. Comparison( 2006-08-23 to 2006-08-23 ) This is a comparison between the Virtins SpecAna and my own. These two screen grabs are from the Virtins Spectrum Analyzer with a 10 kHz signal. The only difference between the two is the FFT size. The top screen is with a FFT.SpectrumSize of 1024, the bottom at 4096. This SpecAna presents RMS Amplitude and so: FFT resolution = Sample Rate / FFT Size The larger number of bins causes each bin to be shorter and therefore contain less energy to be displayed My ( very rough) SpecAna shows the same thing except that instead of 500 mV and 350 mV mine shows 650 mV and 500 mV. Why the large difference is unclear to me. I don't have an RMS voltmeter that can measure down to these levels but I might be able to buy a surpluses one today. With that I might be able to understand what is going on better. 93. Spectrum Analyzer Quantization ( 2006-08-22 to 2006-08-24) I have the vertical scales sorted out now. I used a combination of input range attenuation and adjustment of the vertical scale on the display. It works fine in 16 bit mono but now I would like to get it to work in 8 bit mode. That changes everything around again but at least I'm making progress. 92. Spectrum Analyzer Scale Calibration ( 2006-08-19 to 2006-08-22 ) I have a rough version of the SpecAna up and running now. One of the major stumbling block has been my understanding of the scales used and how they relate to the FFT spectrum size. I have the horizontal scale worked out now so that you can switch spec. sizes and it figures out how to adjust the scale. The next thing will be the vertical axis. Here is the problem as I understand it:
Seems linear enough
Now I have to figure out how to scale the SETI Net SpecAna correctly. 91. Spectrum Analyzer Rebuild( 2006-08-13 to 2006-08-19 ) The High Speed Spectrum Analyzer was always a proof of concept piece of software and never did perform well. Part of the reason was that I didn't have access to a good instrument that I could 'borrow' features from. It was built using the By Guess and By Golly principal ('I guess I'll try that... By golly that sorta of worked"). I bought a spectrum analyzer from Virtins that makes use of the computer sound card for the A-to-D conversion and has a bunch of features that I can copy. So here is the specifications for the next generation SETI Net SpecAna:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||