AK
Attila Kinali
Mon, Apr 6, 2015 9:14 AM
On 04/03/2015 10:12 PM, Robert Watzlavick wrote:
I have an amateur radio license (mostly CW/HF and some VHF/UHF
experience) and I've written some driver software for an IQ
demodulation board but I have to admit, I would have no idea how to
begin setting up that system as initially described by Attila and
expanded by you and others. I have a rudimentary understanding of the
modulation schemes involved but I don't fully understand how the
various codes mentioned fit in. I've poked around a bit at some
articles on PN codes and I can see how data would be transmitted but I
think I'm missing something key that allows you to extract positions,
velocities, etc. out of the various links. I think I have some more
reading to do :)
The basic system is that of an DSSS modulator/demodulator.
The best text on spread spectrum systems I have found sofar
is [1]. I explains modulation and demodulation in a hands on
fashion. But, due to the age of the book, it does not contain
any of the advanced stuff done today. But I think you don't need
anything more fancy than an early-prompt-late correlator architecture
for tracking.
For the way how GPS works and how correlation and everything is
done, I would suggest [2,3,4]. [2] is a good overview of how
GPS is done and contains 99% of everything you need to know
(special thanks to Magnus for mentioning it). It lacks some
details on how to actually implement the system though.
There [3] helps a lot, as it's a book specifically on building a
GPS/Galileo receiver. I only skimmed trough a digital copy of [4]
yet, so I cannot say too much about it, but that it's probably the
most complete book on radio and inertial navigation I have seen
sofar. The level of detail seems to vary from topic to topic
quite a bit, but it is a treasure trove of references for everything
the book covers (which is a damn lot!)
If you are tight on time I would probably recommend to start with [3]
and have a look at [1] and [2] when things don't make sense.
To head off a bunch of replies - I think I stumbled upon what is being
suggested. To extract the pseudorange, you have to figure out the
offset of the locally generated PN code against the one that is
received. In this reverse GPS case, I assume each ground station would
have to start their local PN codes at the same time? Then you would be
able to get the pseudoranges at each ground station and use those values
for the multilateration equations. You still would have an uncertainty
of one clock cycle since the phases of the local clocks at the stations
wouldn't be aligned but several folks have suggested ways around that.
There are multiple things here:
-
PRN generation: The locally generated PRN has to be time synchronous
with the one received from the rocket transmitter. If you are more than
one clock period off, you will only get noise out of the demodulator.
What you measure is the time difference of the locally generated PRN to
your ground station system time.
-
Uncertainty: The autocorrelation function of a PRN sequence has a quite
steep peak at \tau=0 with width of the clock period. Yes, this does mean
that you get a one clock period uncertainty, if you do a hit/miss
correlation. But as the correlation function is actually triangle shaped,
you can get quite a bit better than that. The limit is afaik around
your sampling clock period for naive approaches, which you can further
improve with some statistics (you have multiple edges to work with, ie
can average over those).
-
Synchronisation of ground stations: There are easy and diffuclt ways to
do that. Probably the easiest is to use to use an additional transmitter
at the launch point on the same frequency, but with a different PRN than
the rocket. This way you can do a difference of the two PRN codes in
your receiver, which gets away with a lot of nasty effects that you
would need to account for otherwise.
Another approach would be to use a GPSDO on each ground station and
run all the receivers already synchronized. This also enables you to
get the position of all stations very accurately, especially if you
let the GPSDO average its position for some time. But for ultimate
accuracy, you'd need to calibrate the GPSDO's (including antennas)
against each other, to know what the systematic offsets are
(ie set them up all together at the same location and measure the
time difference of the PPS).
Of course, it's possible to use a combination of multiple approaches.
Eg a nice one would be to GPSDO's to provide position and a precise
frequency reference, but then use a central transmitter for the
synchronization.
HTH
Attila Kinali
[1] "Spread Spectrum Systems with Commercial Applications", 3rd edition,
by Robert C. Dixon, 1994
[2] "Global positioning system signals, measurements, and performance",
2nd edition, by Partap Misra and Per Enge, 2012.
[3] "A Software-Defined GPS and Galileo Receiver",
by Bore, Akos, Bertelsen, Rinder, Jensen, 2007
[4] "Principles of GNSS, Inertial, and Multisensor
Integrated Navigation Systems", 2nd edition, by Paul D. Groves, 2013
--
< av500> phd is easy
< av500> getting dsl is hard
Moin,
On Fri, 03 Apr 2015 22:51:34 -0500
Robert Watzlavick <rocket@watzlavick.com> wrote:
> On 04/03/2015 10:12 PM, Robert Watzlavick wrote:
> > I have an amateur radio license (mostly CW/HF and some VHF/UHF
> > experience) and I've written some driver software for an IQ
> > demodulation board but I have to admit, I would have no idea how to
> > begin setting up that system as initially described by Attila and
> > expanded by you and others. I have a rudimentary understanding of the
> > modulation schemes involved but I don't fully understand how the
> > various codes mentioned fit in. I've poked around a bit at some
> > articles on PN codes and I can see how data would be transmitted but I
> > think I'm missing something key that allows you to extract positions,
> > velocities, etc. out of the various links. I think I have some more
> > reading to do :)
The basic system is that of an DSSS modulator/demodulator.
The best text on spread spectrum systems I have found sofar
is [1]. I explains modulation and demodulation in a hands on
fashion. But, due to the age of the book, it does not contain
any of the advanced stuff done today. But I think you don't need
anything more fancy than an early-prompt-late correlator architecture
for tracking.
For the way how GPS works and how correlation and everything is
done, I would suggest [2,3,4]. [2] is a good overview of how
GPS is done and contains 99% of everything you need to know
(special thanks to Magnus for mentioning it). It lacks some
details on how to actually implement the system though.
There [3] helps a lot, as it's a book specifically on building a
GPS/Galileo receiver. I only skimmed trough a digital copy of [4]
yet, so I cannot say too much about it, but that it's probably the
most complete book on radio and inertial navigation I have seen
sofar. The level of detail seems to vary from topic to topic
quite a bit, but it is a treasure trove of references for everything
the book covers (which is a damn lot!)
If you are tight on time I would probably recommend to start with [3]
and have a look at [1] and [2] when things don't make sense.
> To head off a bunch of replies - I think I stumbled upon what is being
> suggested. To extract the pseudorange, you have to figure out the
> offset of the locally generated PN code against the one that is
> received. In this reverse GPS case, I assume each ground station would
> have to start their local PN codes at the same time? Then you would be
> able to get the pseudoranges at each ground station and use those values
> for the multilateration equations. You still would have an uncertainty
> of one clock cycle since the phases of the local clocks at the stations
> wouldn't be aligned but several folks have suggested ways around that.
There are multiple things here:
* PRN generation: The locally generated PRN has to be time synchronous
with the one received from the rocket transmitter. If you are more than
one clock period off, you will only get noise out of the demodulator.
What you measure is the time difference of the locally generated PRN to
your ground station system time.
* Uncertainty: The autocorrelation function of a PRN sequence has a quite
steep peak at \tau=0 with width of the clock period. Yes, this does mean
that you get a one clock period uncertainty, if you do a hit/miss
correlation. But as the correlation function is actually triangle shaped,
you can get quite a bit better than that. The limit is afaik around
your sampling clock period for naive approaches, which you can further
improve with some statistics (you have multiple edges to work with, ie
can average over those).
* Synchronisation of ground stations: There are easy and diffuclt ways to
do that. Probably the easiest is to use to use an additional transmitter
at the launch point on the same frequency, but with a different PRN than
the rocket. This way you can do a difference of the two PRN codes in
your receiver, which gets away with a lot of nasty effects that you
would need to account for otherwise.
Another approach would be to use a GPSDO on each ground station and
run all the receivers already synchronized. This also enables you to
get the position of all stations very accurately, especially if you
let the GPSDO average its position for some time. But for ultimate
accuracy, you'd need to calibrate the GPSDO's (including antennas)
against each other, to know what the systematic offsets are
(ie set them up all together at the same location and measure the
time difference of the PPS).
Of course, it's possible to use a combination of multiple approaches.
Eg a nice one would be to GPSDO's to provide position and a precise
frequency reference, but then use a central transmitter for the
synchronization.
HTH
Attila Kinali
[1] "Spread Spectrum Systems with Commercial Applications", 3rd edition,
by Robert C. Dixon, 1994
[2] "Global positioning system signals, measurements, and performance",
2nd edition, by Partap Misra and Per Enge, 2012.
[3] "A Software-Defined GPS and Galileo Receiver",
by Bore, Akos, Bertelsen, Rinder, Jensen, 2007
[4] "Principles of GNSS, Inertial, and Multisensor
Integrated Navigation Systems", 2nd edition, by Paul D. Groves, 2013
--
< _av500_> phd is easy
< _av500_> getting dsl is hard
AK
Attila Kinali
Mon, Apr 6, 2015 9:21 AM
This is on either side of the amateur 23 cm band. That's also the first
band where you have bandwidth enough to fool around with stuff like this
without breaking the bandplan.
This shouldn't be much of a problem. Using a chiping rate of a couple
of kHz should be enough for this application. The signal strength
can be rather large, directive antennas can be used and the expected
noise level is rather low. So there no need to use a high chipping
rate to compensate for noise effects. Of course, using a higher
chipping rate makes it also easier to get an higher accuracy, but
I would start with something easy to do first, like a 100mW transmitter
in the 70cm band with 10kHz chipping rate (or go to a sub-band,
where 200kHz signals are allowed). With that kind of setup it should
be possible to use something like RTL-SDR for the first experiments
and then gradually upgrade to better hardware to improve accuracy.
Attila Kinali
--
< av500> phd is easy
< av500> getting dsl is hard
On Sat, 04 Apr 2015 08:49:01 +0200
Magnus Danielson <magnus@rubidium.se> wrote:
> This is on either side of the amateur 23 cm band. That's also the first
> band where you have bandwidth enough to fool around with stuff like this
> without breaking the bandplan.
This shouldn't be much of a problem. Using a chiping rate of a couple
of kHz should be enough for this application. The signal strength
can be rather large, directive antennas can be used and the expected
noise level is rather low. So there no need to use a high chipping
rate to compensate for noise effects. Of course, using a higher
chipping rate makes it also easier to get an higher accuracy, but
I would start with something easy to do first, like a 100mW transmitter
in the 70cm band with 10kHz chipping rate (or go to a sub-band,
where 200kHz signals are allowed). With that kind of setup it should
be possible to use something like RTL-SDR for the first experiments
and then gradually upgrade to better hardware to improve accuracy.
Attila Kinali
--
< _av500_> phd is easy
< _av500_> getting dsl is hard
RW
Robert Watzlavick
Mon, Apr 6, 2015 12:37 PM
Attila,
Thank you very much for the references. I had come across [4] when
searching on Kalman filters for GPS aiding of INS measurements. I
didn't pay much attention to the GPS chapter at the time but I'll look
at it again. I just downloaded [3] and it appears to have a good mix of
practical vs. theoretical aspects. I appreciate the help!
-Bob
On 04/06/2015 04:14 AM, Attila Kinali wrote:
The basic system is that of an DSSS modulator/demodulator.
The best text on spread spectrum systems I have found sofar
is [1]. I explains modulation and demodulation in a hands on
fashion. But, due to the age of the book, it does not contain
any of the advanced stuff done today. But I think you don't need
anything more fancy than an early-prompt-late correlator architecture
for tracking.
For the way how GPS works and how correlation and everything is
done, I would suggest [2,3,4]. [2] is a good overview of how
GPS is done and contains 99% of everything you need to know
(special thanks to Magnus for mentioning it). It lacks some
details on how to actually implement the system though.
There [3] helps a lot, as it's a book specifically on building a
GPS/Galileo receiver. I only skimmed trough a digital copy of [4]
yet, so I cannot say too much about it, but that it's probably the
most complete book on radio and inertial navigation I have seen
sofar. The level of detail seems to vary from topic to topic
quite a bit, but it is a treasure trove of references for everything
the book covers (which is a damn lot!)
If you are tight on time I would probably recommend to start with [3]
and have a look at [1] and [2] when things don't make sense.
Attila Kinali
[1] "Spread Spectrum Systems with Commercial Applications", 3rd edition,
by Robert C. Dixon, 1994
[2] "Global positioning system signals, measurements, and performance",
2nd edition, by Partap Misra and Per Enge, 2012.
[3] "A Software-Defined GPS and Galileo Receiver",
by Bore, Akos, Bertelsen, Rinder, Jensen, 2007
[4] "Principles of GNSS, Inertial, and Multisensor
Integrated Navigation Systems", 2nd edition, by Paul D. Groves, 2013
Attila,
Thank you very much for the references. I had come across [4] when
searching on Kalman filters for GPS aiding of INS measurements. I
didn't pay much attention to the GPS chapter at the time but I'll look
at it again. I just downloaded [3] and it appears to have a good mix of
practical vs. theoretical aspects. I appreciate the help!
-Bob
On 04/06/2015 04:14 AM, Attila Kinali wrote:
>
> The basic system is that of an DSSS modulator/demodulator.
> The best text on spread spectrum systems I have found sofar
> is [1]. I explains modulation and demodulation in a hands on
> fashion. But, due to the age of the book, it does not contain
> any of the advanced stuff done today. But I think you don't need
> anything more fancy than an early-prompt-late correlator architecture
> for tracking.
>
> For the way how GPS works and how correlation and everything is
> done, I would suggest [2,3,4]. [2] is a good overview of how
> GPS is done and contains 99% of everything you need to know
> (special thanks to Magnus for mentioning it). It lacks some
> details on how to actually implement the system though.
> There [3] helps a lot, as it's a book specifically on building a
> GPS/Galileo receiver. I only skimmed trough a digital copy of [4]
> yet, so I cannot say too much about it, but that it's probably the
> most complete book on radio and inertial navigation I have seen
> sofar. The level of detail seems to vary from topic to topic
> quite a bit, but it is a treasure trove of references for everything
> the book covers (which is a damn lot!)
>
> If you are tight on time I would probably recommend to start with [3]
> and have a look at [1] and [2] when things don't make sense.
>
> Attila Kinali
>
> [1] "Spread Spectrum Systems with Commercial Applications", 3rd edition,
> by Robert C. Dixon, 1994
>
> [2] "Global positioning system signals, measurements, and performance",
> 2nd edition, by Partap Misra and Per Enge, 2012.
>
> [3] "A Software-Defined GPS and Galileo Receiver",
> by Bore, Akos, Bertelsen, Rinder, Jensen, 2007
>
> [4] "Principles of GNSS, Inertial, and Multisensor
> Integrated Navigation Systems", 2nd edition, by Paul D. Groves, 2013
>
JL
Jim Lux
Mon, Apr 6, 2015 1:09 PM
On 4/6/15 2:14 AM, Attila Kinali wrote:
On 04/03/2015 10:12 PM, Robert Watzlavick wrote:
I have an amateur radio license (mostly CW/HF and some VHF/UHF
experience) and I've written some driver software for an IQ
demodulation board but I have to admit, I would have no idea how to
begin setting up that system as initially described by Attila and
expanded by you and others. I have a rudimentary understanding of the
modulation schemes involved but I don't fully understand how the
various codes mentioned fit in. I've poked around a bit at some
articles on PN codes and I can see how data would be transmitted but I
think I'm missing something key that allows you to extract positions,
velocities, etc. out of the various links. I think I have some more
reading to do :)
The basic system is that of an DSSS modulator/demodulator.
The best text on spread spectrum systems I have found sofar
is [1]. I explains modulation and demodulation in a hands on
fashion. But, due to the age of the book, it does not contain
any of the advanced stuff done today. But I think you don't need
anything more fancy than an early-prompt-late correlator architecture
for tracking.
Actually, if you're post processing, you can just record raw bits and do
the correlation in software. You don't really need to track it in real
time. Although, that might not be a bad way to do it.
On 4/6/15 2:14 AM, Attila Kinali wrote:
> Moin,
>
> On Fri, 03 Apr 2015 22:51:34 -0500
> Robert Watzlavick <rocket@watzlavick.com> wrote:
>> On 04/03/2015 10:12 PM, Robert Watzlavick wrote:
>>> I have an amateur radio license (mostly CW/HF and some VHF/UHF
>>> experience) and I've written some driver software for an IQ
>>> demodulation board but I have to admit, I would have no idea how to
>>> begin setting up that system as initially described by Attila and
>>> expanded by you and others. I have a rudimentary understanding of the
>>> modulation schemes involved but I don't fully understand how the
>>> various codes mentioned fit in. I've poked around a bit at some
>>> articles on PN codes and I can see how data would be transmitted but I
>>> think I'm missing something key that allows you to extract positions,
>>> velocities, etc. out of the various links. I think I have some more
>>> reading to do :)
>
> The basic system is that of an DSSS modulator/demodulator.
> The best text on spread spectrum systems I have found sofar
> is [1]. I explains modulation and demodulation in a hands on
> fashion. But, due to the age of the book, it does not contain
> any of the advanced stuff done today. But I think you don't need
> anything more fancy than an early-prompt-late correlator architecture
> for tracking.
Actually, if you're post processing, you can just record raw bits and do
the correlation in software. You don't really need to track it in real
time. Although, that might not be a bad way to do it.
JL
Jim Lux
Mon, Apr 6, 2015 1:13 PM
On 4/6/15 2:21 AM, Attila Kinali wrote:
This is on either side of the amateur 23 cm band. That's also the first
band where you have bandwidth enough to fool around with stuff like this
without breaking the bandplan.
This shouldn't be much of a problem. Using a chiping rate of a couple
of kHz should be enough for this application. The signal strength
can be rather large, directive antennas can be used and the expected
noise level is rather low. So there no need to use a high chipping
rate to compensate for noise effects. Of course, using a higher
chipping rate makes it also easier to get an higher accuracy, but
I would start with something easy to do first, like a 100mW transmitter
in the 70cm band with 10kHz chipping rate (or go to a sub-band,
where 200kHz signals are allowed). With that kind of setup it should
be possible to use something like RTL-SDR for the first experiments
and then gradually upgrade to better hardware to improve accuracy.
One strategy for this kind of application is to do the "fine
measurement" using carrier phase, and use the PN code to do ambiguity
reduction. Then, a low chip rate is fine: you're basically using it as
a check that you haven't "slipped a cycle".
I would think that the RTL dongles would work just fine, especially if
you radiate a pilot tone from a fixed location as well as the tone from
the rocket. You basically set up two PLLs in software one to track each
tone, and subtract the phase of one from the other for each ground station.
On 4/6/15 2:21 AM, Attila Kinali wrote:
> On Sat, 04 Apr 2015 08:49:01 +0200
> Magnus Danielson <magnus@rubidium.se> wrote:
>
>> This is on either side of the amateur 23 cm band. That's also the first
>> band where you have bandwidth enough to fool around with stuff like this
>> without breaking the bandplan.
>
> This shouldn't be much of a problem. Using a chiping rate of a couple
> of kHz should be enough for this application. The signal strength
> can be rather large, directive antennas can be used and the expected
> noise level is rather low. So there no need to use a high chipping
> rate to compensate for noise effects. Of course, using a higher
> chipping rate makes it also easier to get an higher accuracy, but
> I would start with something easy to do first, like a 100mW transmitter
> in the 70cm band with 10kHz chipping rate (or go to a sub-band,
> where 200kHz signals are allowed). With that kind of setup it should
> be possible to use something like RTL-SDR for the first experiments
> and then gradually upgrade to better hardware to improve accuracy.
One strategy for this kind of application is to do the "fine
measurement" using carrier phase, and use the PN code to do ambiguity
reduction. Then, a low chip rate is fine: you're basically using it as
a check that you haven't "slipped a cycle".
I would think that the RTL dongles would work just fine, especially if
you radiate a pilot tone from a fixed location as well as the tone from
the rocket. You basically set up two PLLs in software one to track each
tone, and subtract the phase of one from the other for each ground station.
>
> Attila Kinali
>
MD
Magnus Danielson
Mon, Apr 6, 2015 4:57 PM
Jim,
On 04/06/2015 03:13 PM, Jim Lux wrote:
On 4/6/15 2:21 AM, Attila Kinali wrote:
This is on either side of the amateur 23 cm band. That's also the first
band where you have bandwidth enough to fool around with stuff like this
without breaking the bandplan.
This shouldn't be much of a problem. Using a chiping rate of a couple
of kHz should be enough for this application. The signal strength
can be rather large, directive antennas can be used and the expected
noise level is rather low. So there no need to use a high chipping
rate to compensate for noise effects. Of course, using a higher
chipping rate makes it also easier to get an higher accuracy, but
I would start with something easy to do first, like a 100mW transmitter
in the 70cm band with 10kHz chipping rate (or go to a sub-band,
where 200kHz signals are allowed). With that kind of setup it should
be possible to use something like RTL-SDR for the first experiments
and then gradually upgrade to better hardware to improve accuracy.
One strategy for this kind of application is to do the "fine
measurement" using carrier phase, and use the PN code to do ambiguity
reduction. Then, a low chip rate is fine: you're basically using it as
a check that you haven't "slipped a cycle".
I would think that the RTL dongles would work just fine, especially if
you radiate a pilot tone from a fixed location as well as the tone from
the rocket. You basically set up two PLLs in software one to track each
tone, and subtract the phase of one from the other for each ground station.
Indeed. Considering that in the start location you can solve integer
ambiguity, especially with a pilot-tone or several radiated. Hacking in
on the RTL-SDR to steer or replace the clock with a more stable clock
might be considered.
Cheers,
Magnus
Jim,
On 04/06/2015 03:13 PM, Jim Lux wrote:
> On 4/6/15 2:21 AM, Attila Kinali wrote:
>> On Sat, 04 Apr 2015 08:49:01 +0200
>> Magnus Danielson <magnus@rubidium.se> wrote:
>>
>>> This is on either side of the amateur 23 cm band. That's also the first
>>> band where you have bandwidth enough to fool around with stuff like this
>>> without breaking the bandplan.
>>
>> This shouldn't be much of a problem. Using a chiping rate of a couple
>> of kHz should be enough for this application. The signal strength
>> can be rather large, directive antennas can be used and the expected
>> noise level is rather low. So there no need to use a high chipping
>> rate to compensate for noise effects. Of course, using a higher
>> chipping rate makes it also easier to get an higher accuracy, but
>> I would start with something easy to do first, like a 100mW transmitter
>> in the 70cm band with 10kHz chipping rate (or go to a sub-band,
>> where 200kHz signals are allowed). With that kind of setup it should
>> be possible to use something like RTL-SDR for the first experiments
>> and then gradually upgrade to better hardware to improve accuracy.
>
>
> One strategy for this kind of application is to do the "fine
> measurement" using carrier phase, and use the PN code to do ambiguity
> reduction. Then, a low chip rate is fine: you're basically using it as
> a check that you haven't "slipped a cycle".
>
> I would think that the RTL dongles would work just fine, especially if
> you radiate a pilot tone from a fixed location as well as the tone from
> the rocket. You basically set up two PLLs in software one to track each
> tone, and subtract the phase of one from the other for each ground station.
Indeed. Considering that in the start location you can solve integer
ambiguity, especially with a pilot-tone or several radiated. Hacking in
on the RTL-SDR to steer or replace the clock with a more stable clock
might be considered.
Cheers,
Magnus
MD
Magnus Danielson
Mon, Apr 6, 2015 8:48 PM
Attila,
On 04/06/2015 11:14 AM, Attila Kinali wrote:
On 04/03/2015 10:12 PM, Robert Watzlavick wrote:
I have an amateur radio license (mostly CW/HF and some VHF/UHF
experience) and I've written some driver software for an IQ
demodulation board but I have to admit, I would have no idea how to
begin setting up that system as initially described by Attila and
expanded by you and others. I have a rudimentary understanding of the
modulation schemes involved but I don't fully understand how the
various codes mentioned fit in. I've poked around a bit at some
articles on PN codes and I can see how data would be transmitted but I
think I'm missing something key that allows you to extract positions,
velocities, etc. out of the various links. I think I have some more
reading to do :)
The basic system is that of an DSSS modulator/demodulator.
The best text on spread spectrum systems I have found sofar
is [1]. I explains modulation and demodulation in a hands on
fashion. But, due to the age of the book, it does not contain
any of the advanced stuff done today. But I think you don't need
anything more fancy than an early-prompt-late correlator architecture
for tracking.
For the way how GPS works and how correlation and everything is
done, I would suggest [2,3,4]. [2] is a good overview of how
GPS is done and contains 99% of everything you need to know
(special thanks to Magnus for mentioning it). It lacks some
details on how to actually implement the system though.
I think that the Kaplan GPS book is better than the Misra&Enge [2] in
many regards. It is better at explaining the workings of a GPS receiver.
[3] helps to cover some of the weaknesses of the Kaplan book. However,
the Misra&Enge is better at some of the more advanced topics and more
thorough on details than Kaplan. So, Kaplan is better at teach how to
build a normal GPS receiver, and the Misra&Enge is better at teaching
how to build one with advanced features. The combination kills.
The Bore et. al helps to cover some details about getting that initial
guess. Implementing FFT based cross-correlation phase-guessing was
trivial after reading that and another book.
There [3] helps a lot, as it's a book specifically on building a
GPS/Galileo receiver. I only skimmed trough a digital copy of [4]
yet, so I cannot say too much about it, but that it's probably the
most complete book on radio and inertial navigation I have seen
sofar. The level of detail seems to vary from topic to topic
quite a bit, but it is a treasure trove of references for everything
the book covers (which is a damn lot!)
If you are tight on time I would probably recommend to start with [3]
and have a look at [1] and [2] when things don't make sense.
I would recommend going with Kaplan first, to get the first overview.
Then, as the refreshment coarse do the Misra&Enge.
To head off a bunch of replies - I think I stumbled upon what is being
suggested. To extract the pseudorange, you have to figure out the
offset of the locally generated PN code against the one that is
received. In this reverse GPS case, I assume each ground station would
have to start their local PN codes at the same time? Then you would be
able to get the pseudoranges at each ground station and use those values
for the multilateration equations. You still would have an uncertainty
of one clock cycle since the phases of the local clocks at the stations
wouldn't be aligned but several folks have suggested ways around that.
There are multiple things here:
- PRN generation: The locally generated PRN has to be time synchronous
with the one received from the rocket transmitter. If you are more than
one clock period off, you will only get noise out of the demodulator.
What you measure is the time difference of the locally generated PRN to
your ground station system time.
You might want to consider the more advanced variants of loop filters as
shown in Kaplan. Works great with simple dimensioning formulas to aid
the setup.
-
Uncertainty: The autocorrelation function of a PRN sequence has a quite
steep peak at \tau=0 with width of the clock period. Yes, this does mean
that you get a one clock period uncertainty, if you do a hit/miss
correlation. But as the correlation function is actually triangle shaped,
you can get quite a bit better than that. The limit is afaik around
your sampling clock period for naive approaches, which you can further
improve with some statistics (you have multiple edges to work with, ie
can average over those).
-
Synchronisation of ground stations: There are easy and diffuclt ways to
do that. Probably the easiest is to use to use an additional transmitter
at the launch point on the same frequency, but with a different PRN than
the rocket. This way you can do a difference of the two PRN codes in
your receiver, which gets away with a lot of nasty effects that you
would need to account for otherwise.
This is what I propose. I even go further and propose that each base
location has one, so that you can track and evaluate the distances
between the stations.
Another approach would be to use a GPSDO on each ground station and
run all the receivers already synchronized. This also enables you to
get the position of all stations very accurately, especially if you
let the GPSDO average its position for some time. But for ultimate
accuracy, you'd need to calibrate the GPSDO's (including antennas)
against each other, to know what the systematic offsets are
(ie set them up all together at the same location and measure the
time difference of the PPS).
You can do that, but then you have two systems to care about.
Not depending on GPS, but use it as a guide makes it more self-contained.
Of course, it's possible to use a combination of multiple approaches.
Eg a nice one would be to GPSDO's to provide position and a precise
frequency reference, but then use a central transmitter for the
synchronization.
HTH
Attila Kinali
[1] "Spread Spectrum Systems with Commercial Applications", 3rd edition,
by Robert C. Dixon, 1994
[2] "Global positioning system signals, measurements, and performance",
2nd edition, by Partap Misra and Per Enge, 2012.
[3] "A Software-Defined GPS and Galileo Receiver",
by Bore, Akos, Bertelsen, Rinder, Jensen, 2007
[4] "Principles of GNSS, Inertial, and Multisensor
Integrated Navigation Systems", 2nd edition, by Paul D. Groves, 2013
Attila,
On 04/06/2015 11:14 AM, Attila Kinali wrote:
> Moin,
>
> On Fri, 03 Apr 2015 22:51:34 -0500
> Robert Watzlavick <rocket@watzlavick.com> wrote:
>> On 04/03/2015 10:12 PM, Robert Watzlavick wrote:
>>> I have an amateur radio license (mostly CW/HF and some VHF/UHF
>>> experience) and I've written some driver software for an IQ
>>> demodulation board but I have to admit, I would have no idea how to
>>> begin setting up that system as initially described by Attila and
>>> expanded by you and others. I have a rudimentary understanding of the
>>> modulation schemes involved but I don't fully understand how the
>>> various codes mentioned fit in. I've poked around a bit at some
>>> articles on PN codes and I can see how data would be transmitted but I
>>> think I'm missing something key that allows you to extract positions,
>>> velocities, etc. out of the various links. I think I have some more
>>> reading to do :)
>
> The basic system is that of an DSSS modulator/demodulator.
> The best text on spread spectrum systems I have found sofar
> is [1]. I explains modulation and demodulation in a hands on
> fashion. But, due to the age of the book, it does not contain
> any of the advanced stuff done today. But I think you don't need
> anything more fancy than an early-prompt-late correlator architecture
> for tracking.
>
> For the way how GPS works and how correlation and everything is
> done, I would suggest [2,3,4]. [2] is a good overview of how
> GPS is done and contains 99% of everything you need to know
> (special thanks to Magnus for mentioning it). It lacks some
> details on how to actually implement the system though.
I think that the Kaplan GPS book is better than the Misra&Enge [2] in
many regards. It is better at explaining the workings of a GPS receiver.
[3] helps to cover some of the weaknesses of the Kaplan book. However,
the Misra&Enge is better at some of the more advanced topics and more
thorough on details than Kaplan. So, Kaplan is better at teach how to
build a normal GPS receiver, and the Misra&Enge is better at teaching
how to build one with advanced features. The combination kills.
The Bore et. al helps to cover some details about getting that initial
guess. Implementing FFT based cross-correlation phase-guessing was
trivial after reading that and another book.
> There [3] helps a lot, as it's a book specifically on building a
> GPS/Galileo receiver. I only skimmed trough a digital copy of [4]
> yet, so I cannot say too much about it, but that it's probably the
> most complete book on radio and inertial navigation I have seen
> sofar. The level of detail seems to vary from topic to topic
> quite a bit, but it is a treasure trove of references for everything
> the book covers (which is a damn lot!)
>
> If you are tight on time I would probably recommend to start with [3]
> and have a look at [1] and [2] when things don't make sense.
I would recommend going with Kaplan first, to get the first overview.
Then, as the refreshment coarse do the Misra&Enge.
>> To head off a bunch of replies - I think I stumbled upon what is being
>> suggested. To extract the pseudorange, you have to figure out the
>> offset of the locally generated PN code against the one that is
>> received. In this reverse GPS case, I assume each ground station would
>> have to start their local PN codes at the same time? Then you would be
>> able to get the pseudoranges at each ground station and use those values
>> for the multilateration equations. You still would have an uncertainty
>> of one clock cycle since the phases of the local clocks at the stations
>> wouldn't be aligned but several folks have suggested ways around that.
>
> There are multiple things here:
>
> * PRN generation: The locally generated PRN has to be time synchronous
> with the one received from the rocket transmitter. If you are more than
> one clock period off, you will only get noise out of the demodulator.
> What you measure is the time difference of the locally generated PRN to
> your ground station system time.
You might want to consider the more advanced variants of loop filters as
shown in Kaplan. Works great with simple dimensioning formulas to aid
the setup.
> * Uncertainty: The autocorrelation function of a PRN sequence has a quite
> steep peak at \tau=0 with width of the clock period. Yes, this does mean
> that you get a one clock period uncertainty, if you do a hit/miss
> correlation. But as the correlation function is actually triangle shaped,
> you can get quite a bit better than that. The limit is afaik around
> your sampling clock period for naive approaches, which you can further
> improve with some statistics (you have multiple edges to work with, ie
> can average over those).
>
> * Synchronisation of ground stations: There are easy and diffuclt ways to
> do that. Probably the easiest is to use to use an additional transmitter
> at the launch point on the same frequency, but with a different PRN than
> the rocket. This way you can do a difference of the two PRN codes in
> your receiver, which gets away with a lot of nasty effects that you
> would need to account for otherwise.
This is what I propose. I even go further and propose that each base
location has one, so that you can track and evaluate the distances
between the stations.
> Another approach would be to use a GPSDO on each ground station and
> run all the receivers already synchronized. This also enables you to
> get the position of all stations very accurately, especially if you
> let the GPSDO average its position for some time. But for ultimate
> accuracy, you'd need to calibrate the GPSDO's (including antennas)
> against each other, to know what the systematic offsets are
> (ie set them up all together at the same location and measure the
> time difference of the PPS).
You can do that, but then you have two systems to care about.
Not depending on GPS, but use it as a guide makes it more self-contained.
> Of course, it's possible to use a combination of multiple approaches.
> Eg a nice one would be to GPSDO's to provide position and a precise
> frequency reference, but then use a central transmitter for the
> synchronization.
Indeed.
Cheers,
Magnus
>
> HTH
>
> Attila Kinali
>
> [1] "Spread Spectrum Systems with Commercial Applications", 3rd edition,
> by Robert C. Dixon, 1994
>
> [2] "Global positioning system signals, measurements, and performance",
> 2nd edition, by Partap Misra and Per Enge, 2012.
>
> [3] "A Software-Defined GPS and Galileo Receiver",
> by Bore, Akos, Bertelsen, Rinder, Jensen, 2007
>
> [4] "Principles of GNSS, Inertial, and Multisensor
> Integrated Navigation Systems", 2nd edition, by Paul D. Groves, 2013
>
MD
Magnus Danielson
Mon, Apr 6, 2015 9:02 PM
Hi Attila,
On 04/06/2015 11:21 AM, Attila Kinali wrote:
This is on either side of the amateur 23 cm band. That's also the first
band where you have bandwidth enough to fool around with stuff like this
without breaking the bandplan.
This shouldn't be much of a problem. Using a chiping rate of a couple
of kHz should be enough for this application. The signal strength
can be rather large, directive antennas can be used and the expected
noise level is rather low. So there no need to use a high chipping
rate to compensate for noise effects. Of course, using a higher
chipping rate makes it also easier to get an higher accuracy, but
I would start with something easy to do first, like a 100mW transmitter
in the 70cm band with 10kHz chipping rate (or go to a sub-band,
where 200kHz signals are allowed). With that kind of setup it should
be possible to use something like RTL-SDR for the first experiments
and then gradually upgrade to better hardware to improve accuracy.
You want to keep your chip-rate up to make the integer ambiguity of the
carrier phase simple. The carrier frequency divided by chipping rate
ratio indicate how difficult problem it is to solve (GPS L1 C/A code has
1540). The 70 cm band has rather narrow allocations. The 23 cm band
allow for much wide allocations. The benefit of the 70 cm band is
naturally the easy of getting hardware.
Another benefit of a higher chipping rate is that it can allow for a
higher bandwidth, allowing for tighter tracking of the rocket dynamics.
The chipping rate at some code legnth creates the maximum tracking rate,
and some fraction of that is the highest bandwidth tolerable.
Cheers,
Magnus
Hi Attila,
On 04/06/2015 11:21 AM, Attila Kinali wrote:
> On Sat, 04 Apr 2015 08:49:01 +0200
> Magnus Danielson <magnus@rubidium.se> wrote:
>
>> This is on either side of the amateur 23 cm band. That's also the first
>> band where you have bandwidth enough to fool around with stuff like this
>> without breaking the bandplan.
>
> This shouldn't be much of a problem. Using a chiping rate of a couple
> of kHz should be enough for this application. The signal strength
> can be rather large, directive antennas can be used and the expected
> noise level is rather low. So there no need to use a high chipping
> rate to compensate for noise effects. Of course, using a higher
> chipping rate makes it also easier to get an higher accuracy, but
> I would start with something easy to do first, like a 100mW transmitter
> in the 70cm band with 10kHz chipping rate (or go to a sub-band,
> where 200kHz signals are allowed). With that kind of setup it should
> be possible to use something like RTL-SDR for the first experiments
> and then gradually upgrade to better hardware to improve accuracy.
You want to keep your chip-rate up to make the integer ambiguity of the
carrier phase simple. The carrier frequency divided by chipping rate
ratio indicate how difficult problem it is to solve (GPS L1 C/A code has
1540). The 70 cm band has rather narrow allocations. The 23 cm band
allow for much wide allocations. The benefit of the 70 cm band is
naturally the easy of getting hardware.
Another benefit of a higher chipping rate is that it can allow for a
higher bandwidth, allowing for tighter tracking of the rocket dynamics.
The chipping rate at some code legnth creates the maximum tracking rate,
and some fraction of that is the highest bandwidth tolerable.
Cheers,
Magnus
AK
Attila Kinali
Tue, Apr 7, 2015 12:08 PM
You want to keep your chip-rate up to make the integer ambiguity of the
carrier phase simple. The carrier frequency divided by chipping rate
ratio indicate how difficult problem it is to solve (GPS L1 C/A code has
1540). The 70 cm band has rather narrow allocations. The 23 cm band
allow for much wide allocations. The benefit of the 70 cm band is
naturally the easy of getting hardware.
Yes. But I would do carrier phase tracking only after code phase
tracking proved to be not accurate enough. Improving later and
switching to another band is relatively easy, once you've proven
that the system in principle works.
Another benefit of a higher chipping rate is that it can allow for a
higher bandwidth, allowing for tighter tracking of the rocket dynamics.
The chipping rate at some code legnth creates the maximum tracking rate,
and some fraction of that is the highest bandwidth tolerable.
That's a very good argument for higher chiping rates.
Attila Kinali
--
It is upon moral qualities that a society is ultimately founded. All
the prosperity and technological sophistication in the world is of no
use without that foundation.
-- Miss Matheson, The Diamond Age, Neil Stephenson
On Mon, 06 Apr 2015 23:02:01 +0200
Magnus Danielson <magnus@rubidium.dyndns.org> wrote:
> You want to keep your chip-rate up to make the integer ambiguity of the
> carrier phase simple. The carrier frequency divided by chipping rate
> ratio indicate how difficult problem it is to solve (GPS L1 C/A code has
> 1540). The 70 cm band has rather narrow allocations. The 23 cm band
> allow for much wide allocations. The benefit of the 70 cm band is
> naturally the easy of getting hardware.
Yes. But I would do carrier phase tracking only after code phase
tracking proved to be not accurate enough. Improving later and
switching to another band is relatively easy, once you've proven
that the system in principle works.
> Another benefit of a higher chipping rate is that it can allow for a
> higher bandwidth, allowing for tighter tracking of the rocket dynamics.
> The chipping rate at some code legnth creates the maximum tracking rate,
> and some fraction of that is the highest bandwidth tolerable.
That's a very good argument for higher chiping rates.
Attila Kinali
--
It is upon moral qualities that a society is ultimately founded. All
the prosperity and technological sophistication in the world is of no
use without that foundation.
-- Miss Matheson, The Diamond Age, Neil Stephenson
MD
Magnus Danielson
Tue, Apr 7, 2015 6:33 PM
Hi,
On 04/07/2015 02:08 PM, Attila Kinali wrote:
You want to keep your chip-rate up to make the integer ambiguity of the
carrier phase simple. The carrier frequency divided by chipping rate
ratio indicate how difficult problem it is to solve (GPS L1 C/A code has
1540). The 70 cm band has rather narrow allocations. The 23 cm band
allow for much wide allocations. The benefit of the 70 cm band is
naturally the easy of getting hardware.
Yes. But I would do carrier phase tracking only after code phase
tracking proved to be not accurate enough. Improving later and
switching to another band is relatively easy, once you've proven
that the system in principle works.
One might look at the available frequencies and see if there is a
telemetry band available which allows wider bandwidth. For the
application, I don't see that very much transmitted power is needed.
There is definitely a benefit in locking up the carrier and chipping
rate, preferably so that there is an integer number of carrier cycles
per chip.
For those unused to the terminology, a "chip" is a single 0 or 1 out of
the pseudo-random generator. It's encoded as +1 or -1 before being mixed
with the carrier, thus forming an BPSK signal.
There is a gain for the receiver if the transmitter has the carrier and
code synchronized to each other like this.
Another benefit of a higher chipping rate is that it can allow for a
higher bandwidth, allowing for tighter tracking of the rocket dynamics.
The chipping rate at some code legnth creates the maximum tracking rate,
and some fraction of that is the highest bandwidth tolerable.
That's a very good argument for higher chiping rates.
I expect that the launch is a bit challenging for the tracking loop.
Much of these challenges should be relatively easy to simulate, such
that testing can be done before a the first solder-joint gets soldered.
Cheers,
Magnus
Hi,
On 04/07/2015 02:08 PM, Attila Kinali wrote:
> On Mon, 06 Apr 2015 23:02:01 +0200
> Magnus Danielson <magnus@rubidium.dyndns.org> wrote:
>
>> You want to keep your chip-rate up to make the integer ambiguity of the
>> carrier phase simple. The carrier frequency divided by chipping rate
>> ratio indicate how difficult problem it is to solve (GPS L1 C/A code has
>> 1540). The 70 cm band has rather narrow allocations. The 23 cm band
>> allow for much wide allocations. The benefit of the 70 cm band is
>> naturally the easy of getting hardware.
>
> Yes. But I would do carrier phase tracking only after code phase
> tracking proved to be not accurate enough. Improving later and
> switching to another band is relatively easy, once you've proven
> that the system in principle works.
One might look at the available frequencies and see if there is a
telemetry band available which allows wider bandwidth. For the
application, I don't see that very much transmitted power is needed.
There is definitely a benefit in locking up the carrier and chipping
rate, preferably so that there is an integer number of carrier cycles
per chip.
For those unused to the terminology, a "chip" is a single 0 or 1 out of
the pseudo-random generator. It's encoded as +1 or -1 before being mixed
with the carrier, thus forming an BPSK signal.
There is a gain for the receiver if the transmitter has the carrier and
code synchronized to each other like this.
>> Another benefit of a higher chipping rate is that it can allow for a
>> higher bandwidth, allowing for tighter tracking of the rocket dynamics.
>> The chipping rate at some code legnth creates the maximum tracking rate,
>> and some fraction of that is the highest bandwidth tolerable.
>
> That's a very good argument for higher chiping rates.
I expect that the launch is a bit challenging for the tracking loop.
Much of these challenges should be relatively easy to simulate, such
that testing can be done before a the first solder-joint gets soldered.
Cheers,
Magnus