Question about doppler correction software
I have a question regarding software doppler correction - in particular when using linear satellites.
I am working on some control software that is a little more flexible than what I've used. I really like SatPC32 on Windows and Predict/gsat on Linux. I haven't yet fallen in love with any available software, but that's really a different story.
I can imagine that doppler correction for an FM sat is rather easy in that you simply tune the transmitter/receiver to the published frequencies depending on the operating mode.
I'm a little less sure how that would work for a linear satellite. As mentioned before, I do have a chart from AMSAT that lists channelized frequencies for them. If I can tune the transmitter such that the frequency at the satellite is one of the listed frequencies, how sure can I be that the receive is as published?
Can I extend that to the point where I would be able to automatically determine frequencies (at the satellite) of the downlink for a given uplink and then compute doppler from there? It would then be fairly convenient to tune within the satellite's passband and let the computer do the 'thinking'.
Thanks for any feedback.
Scott NW2S
If I can tune the transmitter such that the frequency at the satellite is one of the listed frequencies, how sure can I be that the receive is as published?
Not very sure at all. The published frequencies are usually nominal, and satellite designers don't make extraordinary efforts to match them exactly. What's worse, satellite designers also don't make much of an effort to make the oscillator(s) completely stable, so there's some drift to contend with. Both issues vary from satellite to satellite, and some future satellites (Eagle) are supposed to be better. And of course the user's own rigs can have the same issues, though with modern radios in benign hamshack environments this is not a big problem.
You need to allow the user a way to adjust the conversion constant. As a minimum, this should be something like a configuration file entry. Ideally, there would be a nice easy way to do it from the radio's front panel by tuning the receiver manually to match the downlink and then telling the program to save that value.
If you really want to get fancy, use a soundcard interface to transmit a test signal through the satellite and determine the frequency error on the received signal. Just be aware that a naive implementation of this scheme is going to be fragile, so you will want to use every trick. You'll also want to use every trick to make sure your transmissions are very short and as low in power as possible, to avoid annoying other users.
It would be a nice touch if your resulting database of satellite frequency information is in a format that could be shared from station to station, so a new user would have a good starting point for his own configuration file. You can provide a default config with your software.
Can I extend that to the point where I would be able to automatically determine frequencies (at the satellite) of the downlink for a given uplink and then compute doppler from there?
Yes, in theory, except for the spacecraft oscillator imperfections mentioned above. And that will be enough if every operator does it. But every operator won't, so you need something much more flexible. You want the user of your software to be Super Operator who's never confused and always on frequency but you don't want to insist that every other operator live up to those standards. So you need a nice, easy way for your user to interactively adjust things and follow around the other operators on the passband.
Longtime readers will anticipate that I'm now going to plug my old essay on the subject: http://www.amsat.org/amsat/features/one_true_rule.html -- even though it hasn't been updated with a discussion of any of the newer software options for Doppler tuning.
73 -Paul kb5mu@amsat.org
Yes I think Paul is right :-) Some satellites change frequency with temperature and for other reasons. What comes into the old mind is AO-07. SO-50 even if it is a FM transponder satellite, jumps 5 kHz every now and again. Right now 5 kHz up on the downlink. Therefor is important to be able to adjust frequencies in the program in an easy way. And yes again - full doppler tracking is very nice and the right way to do it. 73 OZ1MY Ib ----- Original Message ----- From: "Paul Williamson" kb5mu@amsat.org To: amsat-bb@amsat.org Sent: Friday, August 31, 2007 7:25 PM Subject: [amsat-bb] Re: Question about doppler correction software
If I can tune the transmitter such that the frequency at the satellite is one of the listed frequencies, how sure can I be that the receive is as published?
Not very sure at all. The published frequencies are usually nominal, and
satellite designers don't make extraordinary efforts to match them exactly. What's worse, satellite designers also don't make much of an effort to make the oscillator(s) completely stable, so there's some drift to contend with. Both issues vary from satellite to satellite, and some future satellites (Eagle) are supposed to be better. And of course the user's own rigs can have the same issues, though with modern radios in benign hamshack environments this is not a big problem.
You need to allow the user a way to adjust the conversion constant. As a
minimum, this should be something like a configuration file entry. Ideally, there would be a nice easy way to do it from the radio's front panel by tuning the receiver manually to match the downlink and then telling the program to save that value.
If you really want to get fancy, use a soundcard interface to transmit a
test signal through the satellite and determine the frequency error on the received signal. Just be aware that a naive implementation of this scheme is going to be fragile, so you will want to use every trick. You'll also want to use every trick to make sure your transmissions are very short and as low in power as possible, to avoid annoying other users.
It would be a nice touch if your resulting database of satellite frequency
information is in a format that could be shared from station to station, so a new user would have a good starting point for his own configuration file. You can provide a default config with your software.
Can I extend that to the point where I would be able to automatically determine frequencies (at the satellite) of the downlink for a given uplink and then compute doppler from there?
Yes, in theory, except for the spacecraft oscillator imperfections
mentioned above. And that will be enough if every operator does it. But every operator won't, so you need something much more flexible. You want the user of your software to be Super Operator who's never confused and always on frequency but you don't want to insist that every other operator live up to those standards. So you need a nice, easy way for your user to interactively adjust things and follow around the other operators on the passband.
Longtime readers will anticipate that I'm now going to plug my old essay
on the subject: http://www.amsat.org/amsat/features/one_true_rule.html -- even though it hasn't been updated with a discussion of any of the newer software options for Doppler tuning.
73 -Paul kb5mu@amsat.org _______________________________________________ Sent via AMSAT-BB@amsat.org. Opinions expressed are those of the author. Not an AMSAT-NA member? Join now to support the amateur satellite program! Subscription settings: http://amsat.org/mailman/listinfo/amsat-bb
Many thanks to all who responded. I received some great ideas on how to improve on what's available, a couple of good references to papers, and some references to existing code.
I am still working on the foundation which consists of an event-driven message bus which loads modules that then either subscribe to or trigger particular events. It's written in C# and is running on mono, so is effectively a multi-platform binary.
The modular architecture allows me not only to bite off a bit at a time, but to easily support hosts with varying capabilities.
I've completed a rotator module which is successfully tracking satellites with my GS232B. (Woohoo - that's exciting!).
I've also written a module which uses Predict as a data source, but that's limiting me to having network access to a linux box running the predict server.
The next two items on my to-do list are a .NET native prediction library and simple FM tuning.
I'm considering using some code from Michael F. Henry who wrote a SxGP4 library in C# (http://www.zeptomoby.com/satellites/ - if you're not already familiar with it). Otherwise, there's a C implementation at http://www.sat.dundee.ac.uk/~psc/sgp4.html which most likely could be adapted to C# fairly easily.
Tony Monteiro's code is also a great start for modeling satellite data such that it's useful for use in tuning to the different modes available.
Thanks again.. I'll let you all know how I progress!
Scott NW2S
scott wilson wrote:
Many thanks to all who responded. I received some great ideas on how to improve on what's available, a couple of good references to papers, and some references to existing code.
I just wanted to follow up. I've managed to release an initial version of the software. Windows users may note that it's the only open source windows native satellite tracking app (That I know of). Linux users may want to note that it's a true universal binary written on .NET/mono.
It does implement the 'one true tuning' method for linear modes, but I still haven't managed a successful linear contact.
I've attempted to keep the learning curve as shallow as possible for those who may be interested in experimenting with the code. I'm working on an article which focuses on the architecture of it, and how I imagine that it can promote a little more experimentation at the software level.
I currently only support Icom radios and the GS-232B (since that's all I own), but will add any hardware that someone can offer to beta test. Even if it doesn't support your hardware, try it out. I welcome your feedback - and bug reports!
Unfortunately the installer doesn't include the two dependencies, so most likely, you'll need two other downloads before it'll work...
The installation instructions are:
http://code.google.com/p/satcontroller/wiki/Installation
and the downloads are linked to from the home page:
http://code.google.com/p/satcontroller/
Thanks,
Scott NW2S
The Doppler is not a constant. Example: For ISS at 240 miles altitude (145.800 mhz), the Maximum doppler is 3.3k. however, most of the time it will not get that high. That is only when the pass is directly over your house (90 degrees).
If you assume a 80 degree pass, then for the first minute the doppler will be 145.803~ for minute 4 the doppler will be 145.800~ and for the last minute the freq will be 145.797~
Leo SSB birds are much harder.
If the pass for your oribt is only 45 degrees, the maximum doppler will be around 2.5k.
The best way to compensat but the most complex is to have a tracking program generate the values in real time for uplink and down link seperatly and then feed thoese into your radio.
I just do it manually.
For FM, you only need to be withing 2khz for a good signal. Just preprogram a few odd splits. For ISS, 3 pre set channels will work. For 2/440 FM birds, 7 preset channels will do the job.
example for IsS voice. a similar pattern will work for 2/440 birds Channel 1 145.802.5 RX 144.487.5 TX Channel 2 145.800.0 RX 144.490.0 TX Channel 3 145.797.5 RX 144.492.5 TX
this link has some tips for using odd splits on ISS FM, a similar theory can be applied to FM birds.
http://www.marexmg.org/fileshtml/roundtableiss.html
--- Scott Wilson s.wilson@yahoo.com wrote:
I have a question regarding software doppler correction - in particular when using linear satellites.
I am working on some control software that is a little more flexible than what I've used. I really like SatPC32 on Windows and Predict/gsat on Linux. I haven't yet fallen in love with any available software, but that's really a different story.
I can imagine that doppler correction for an FM sat is rather easy in that you simply tune the transmitter/receiver to the published frequencies depending on the operating mode.
I'm a little less sure how that would work for a linear satellite. As mentioned before, I do have a chart from AMSAT that lists channelized frequencies for them. If I can tune the transmitter such that the frequency at the satellite is one of the listed frequencies, how sure can I be that the receive is as published?
Can I extend that to the point where I would be able to automatically determine frequencies (at the satellite) of the downlink for a given uplink and then compute doppler from there? It would then be fairly convenient to tune within the satellite's passband and let the computer do the 'thinking'.
Thanks for any feedback.
Scott NW2S
Sent via AMSAT-BB@amsat.org. Opinions expressed are those of the author. Not an AMSAT-NA member? Join now to support the amateur satellite program! Subscription settings: http://amsat.org/mailman/listinfo/amsat-bb
____________________________________________________________________________________ Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more. http://mobile.yahoo.com/go?refer=1GNXIC
At 10:54 AM 8/31/2007, Scott Wilson wrote:
I have a question regarding software doppler correction - in particular when using linear satellites.
Hi Scott,
I agree with everything Paul Williamson posted and especially to read his old essay that is on the subject.
After that is all clear, you can get a huge head start on software by reading my paper from the 1997 AMSAT-NA Space Symposium; "An Object Oriented Approach to Automatic Radio Tuning." It has a detailed analysis and a high-level software design that is independent of operating system or tracking program.
Next, you can download all of the C++ source code for a working implementation of this (InstantTune) from the AMSAT web site at:
http://www.amsat.org/amsat/ftp/software/PC/radio-control/itune110.zip
The source code is in the file SRC110.ZIP and there is a source code guide in the file ITUNESRC.TXT. This software includes drivers for most radios including "dumb" mic-button radios. The user manual is in ITUNE110.DOC and describes the features of the software and how to use it.
The vast majority of the source code is operating system and tracking program independent. The hardware drivers are not needed under LINUX or Windows and the command interface would need to be re-written for your favorite tracking program/OS.
Note that this software is free and open source with no license so feel free to use whatever is useful to you.
If you have any questions after looking over this stuff, please feel free to email me.
Best of luck with your project!
73, Tony AA2TX
participants (5)
-
Anthony Monteiro
-
MM
-
OZ1MY
-
Paul Williamson
-
Scott Wilson