Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-05 Thread Kenny
Fancy satellite simulating hardware would be cool.  In the interim,
there are a few software simulators we can try to feed out through a
HackRF.  At the same time, it would be nice to try some other
correlators like the gnss-sdr code.  And there are probably more tests
we can do with the simple sweeping sine trick.  Like verifying that
received samples have the same sweep frequency as transmitted.

The giant Doppler shift is pretty odd.  It would be interesting to put
together a sample of two satellite vehicle prn sequences and see if they
end up with a matching Doppler shift.  If they do, then we can probably
just blame the mixer precision in the HackRF.  I'll have my HackRF One
and Jawbreaker on hard to compare.  Maybe it's time to dust off the
Noctar too.

For the most recent tests, the HackRF One was set for 1.57542GHz at
4.092MS/s.  The flow goes directly from File Source (in repeat mode) to
osmocom Sink so I'm not doing any intentional frequency shifting.  My
output from soft-correlator looks the same as yours.

$ while :; do cat data/prn1; done | ./soft-correlator  
# frequency of 1-bits: i-sign 50.0%, i-mag 100.0%, q-sign 50.0%, q-mag 0.0%
# SV, S/N ratio, doppler shift (Hz), code phase (chips), sample clock error 
(chips/s)
* 1 766.360819  -0.909289   0.000.000590
# 1 satellites in view; average clock error 0.000590 chips/s

I'm looking forward to hacking more on GPS stuff at noon.  Who else is
going to come?  We need all the GPS brains!  It seems like we must be
really close to tipping this over the edge of making sense and doing
what we want.

For anyone interested in software defined GPS or the approaches we have
been taking to debug it, there is an informal bi-weekly SDR meetup this
Monday evening at Ctrl-H.  I'll be there and would be happy to talk
about the bits I understand and/or hack on GPS stuff more then.  If
Friday and Monday don't work for your schedule, suggest another time and
I'll try to make it.

-- 
Kenny
-+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++



On Thu, 2015-06-04 at 10:59 -0700, Jamey Sharp wrote:
> Awesome! And nice job on the pretty pictures!
> 
> I think this is strong evidence that we should get access to a real
> satellite simulator, soon.
> 
> Though I don't understand why it saw a -14.8kHz Doppler shift. The
> original file is a zero-IF sample. Did you set the HackRF at a center
> frequency different than 1575.42MHz, or multiply the file sample by a
> sine wave, perhaps? That seems outside the range of reasonable clock
> errors to me.
> 
> Hey, does your copy of soft-correlator produce the same output mine
> does for the looped original prn1? It looks like we didn't push the
> change that sets the IF center frequency to 0 instead of 1.95MHz.
> 
> Notice the bogus satellites have very low signal/noise ratios
> (although you should be skeptical of my math for computing those,
> FYI). Apparently my heuristic is wrong for guessing that a satellite
> is visible; I based it on my clock error estimate, and all of that is
> something I made up, not something I've seen documented as the usual
> way to build a receiver.
> 
> Jamey
> 
> On Jun 4, 2015 10:27 AM, "Kenny"  wrote:
> For all you folks following along at home who want to see some
> pretty
> pictures, here you go!
> 
> 
> https://drive.google.com/open?id=1pnFV5MWkx5YR9ZlutetgDrejNG9SZx6Zp6xbdKl48Ps&authuser=0
> 
> I sometimes have blissful moments of forgetting that Google
> wants all of
> my data, always.  In this particular instance, we may as well
> let them
> help out.  So there is a Google Drive folder linked at the
> bottom of the
> doc which contains "gpslog_big-outside.raw" along with various
> other
> files we have been talking about.
> 
> Transmitting the prn1 converted to complex floats through the
> HackRF and
> grabbing a sample with jGPSv3 correlates!  Check out that
> signal-to-noise ratio for SV 1!.
> 
> $ ./soft-correlator < data/gpslog_prn1_rx.raw
> # frequency of 1-bits: i-sign 51.7%, i-mag 33.6%, q-sign
> 48.8%, q-mag 30.0%
> # SV, S/N ratio, doppler shift (Hz), code phase (chips),
> sample clock error (chips/s)
> * 1 601.457508  -14801.532243   253.00
> 9.611385
> * 2 14.721936   -799.801893 330.00
> 0.519352
> * 4 15.425549   -6801.062185669.00
> 4.416274
> * 1114.114000   -10801.489275   302.00
> 7.013954
> * 1715.250208   2199.254809 77.00
>  -1.428088
> * 2414.148221   -7794.920364335.00
> 5.061637
> * 2813.145979   14199.180477545.00
> -9.220247
> * 3013.199176   5798.007429 466.75
> 

Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-04 Thread Jamey Sharp
There was a request off-list for more background on this stuff, because
we're using plenty of jargon. One of the big goals for this group is
education, so I'm eager to help people understand what's going on. But I
don't want to answer questions privately, because I'm sure more people are
confused and curious.

For general context on this particular discussion, try Google searches
about Software Defined Radio, and Andrew's masters thesis about GPS, which
you can find along with other resources here:

http://gps.psas.pdx.edu/GpsResources/

Looks like http://gnss-sdr.org and http://swiftnav.com have material that
might be good too, although I haven't read any of their stuff. Let me know
whether it helps you. :-) They're solving the same problems we are from
different perspectives.

If you want to dig into the specifics of what we're working on right now,
there are four relevant git repositories at https://github.com/psas/:
gps-rf-board, gps-cpld, stm32 (gpsv3 branch), and gps. The datasheet for
the MAX2769 chip on the RF board is the main thing we've been struggling
with lately. You might find the commit history in stm32's gpsv3 branch and
in the gps repo informative for more context on what we've been doing most
recently.

Finally, I want to encourage everyone to ask questions, both on this
mailing list and during our weekly meetings. It's super important for the
future of this group that we help newer folks get comfortable participating
in everything we're doing, and we can't do that if we don't know what you
need.

Jamey

On Wed, Jun 3, 2015, 7:44 AM Kenny  wrote:

> Into the wee hours, we kept on doing stuff.
>
> * Gavin and Andrew wired up the FDT custom Uninterruptible Power Supply
> without melting any fingers in the process.  I'm sure it was much safer
> than it sounded.
> * David(?) fired up the Geiger counter on picam2 and received data!  So
> we have another cool thing that is ready for launch.
> * Kenny set up Splunk on the NUC and configured ground based systems to
> do remote logging.  It even integrates with Nagios so when something
> goes down, the Splunk search for that host/service is a click away.
> * Theo and Jamey hacked on GPS stuff
>   + The STM32 which controls the MAX2769 (GPS baseband receiver) now
> dynamically configures the MAX according to instructions received by
> debug scripts so we can test all the configurations we want without
> reprogramming the STM32 each time.
>   + Python test scripts were overhauled to send our best known
> configuration to the MAX2769 and take a short sample.  Even more magic
> was added to automate testing many different configurations.
>   + Kenny joined the party to help transmit a sweeping sine wave +/-
> 2MHz around GPS baseband using HackRF.  Samples received from the
> MAX2769, converted and viewed in baudline showed the same sweeping sine
> wave (with noise and other artifacts).  This turned out to be a good way
> to test poorly documented configuration settings and lay to rest
> bit-order questions.
>   + After running through all the settings and deciding we understood
> most of them to be what they should be, the correlator still wasn't able
> to pick up anything in an outdoor test.
>   + Jamey said we could fly with this configuration and probably figure
> out how to tease satellites out of the logged data later.  It is
> starting to look like the MAX2769 configuration is about as good as it
> can get.  We just need to look at the data harder.
>   + For fun, Kenny collected a larger sample outside from the MAX2769,
> returned to the basement while converting it for GNURadio, played it
> back through the HackRF in transmit mode and watched to see if the
> nearby COTS GPS receiver could lock.  No position lock, but I wasn't
> watching the data stream to see if it was able to see any satellites at
> all.  Some attenuators and a direct connection might help.
>
> Other people did stuff too!  Like rebuilding an RCS controller board and
> ordering parts.  I didn't keep track of all the cool things so please
> correct my fumbles and add your news.
>
> --
> Kenny
>
> -+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++
>
>
>
> ___
> psas-avionics mailing list
> psas-avionics@lists.psas.pdx.edu
> http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics
>
___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics


Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-04 Thread Nathan Bergey
Speaking of Doppler shifts, back when we were doing the GPS class we
were catching satellites at >10kHz Doppler using the recorded data we
found, and that really shouldn't be possible for a receiver at rest
(relative to the Earth surface).

I never looked into it further but i am suspicious of the doppler
numbers we get from the soft correlator.

-Nathan

On Thu, Jun 4, 2015 at 10:59 AM, Jamey Sharp  wrote:
> Awesome! And nice job on the pretty pictures!
>
> I think this is strong evidence that we should get access to a real
> satellite simulator, soon.
>
> Though I don't understand why it saw a -14.8kHz Doppler shift. The original
> file is a zero-IF sample. Did you set the HackRF at a center frequency
> different than 1575.42MHz, or multiply the file sample by a sine wave,
> perhaps? That seems outside the range of reasonable clock errors to me.
>
> Hey, does your copy of soft-correlator produce the same output mine does for
> the looped original prn1? It looks like we didn't push the change that sets
> the IF center frequency to 0 instead of 1.95MHz.
>
> Notice the bogus satellites have very low signal/noise ratios (although you
> should be skeptical of my math for computing those, FYI). Apparently my
> heuristic is wrong for guessing that a satellite is visible; I based it on
> my clock error estimate, and all of that is something I made up, not
> something I've seen documented as the usual way to build a receiver.
>
> Jamey
>
> On Jun 4, 2015 10:27 AM, "Kenny"  wrote:
>>
>> For all you folks following along at home who want to see some pretty
>> pictures, here you go!
>>
>>
>> https://drive.google.com/open?id=1pnFV5MWkx5YR9ZlutetgDrejNG9SZx6Zp6xbdKl48Ps&authuser=0
>>
>> I sometimes have blissful moments of forgetting that Google wants all of
>> my data, always.  In this particular instance, we may as well let them
>> help out.  So there is a Google Drive folder linked at the bottom of the
>> doc which contains "gpslog_big-outside.raw" along with various other
>> files we have been talking about.
>>
>> Transmitting the prn1 converted to complex floats through the HackRF and
>> grabbing a sample with jGPSv3 correlates!  Check out that
>> signal-to-noise ratio for SV 1!.
>>
>> $ ./soft-correlator < data/gpslog_prn1_rx.raw
>> # frequency of 1-bits: i-sign 51.7%, i-mag 33.6%, q-sign 48.8%, q-mag
>> 30.0%
>> # SV, S/N ratio, doppler shift (Hz), code phase (chips), sample clock
>> error (chips/s)
>> * 1 601.457508  -14801.532243   253.00  9.611385
>> * 2 14.721936   -799.801893 330.00  0.519352
>> * 4 15.425549   -6801.062185669.00  4.416274
>> * 1114.114000   -10801.489275   302.00  7.013954
>> * 1715.250208   2199.254809 77.00   -1.428088
>> * 2414.148221   -7794.920364335.00  5.061637
>> * 2813.145979   14199.180477545.00  -9.220247
>> * 3013.199176   5798.007429 466.75  -28.764940
>> # 8 satellites in view; average clock error -1.598834 chips/s
>>
>> I'm surprised to see that the added noise was enough to correlate the
>> pseudo-noise sequence from other satellite vehicles.  This was done in
>> the basement, so I know it wasn't accidentally picking up any real
>> satellites.
>>
>> --
>> Kenny
>>
>> -+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++
>>
>>
>>
>>
>
> ___
> psas-avionics mailing list
> psas-avionics@lists.psas.pdx.edu
> http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics
>

___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics


Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-04 Thread Jamey Sharp
Awesome! And nice job on the pretty pictures!

I think this is strong evidence that we should get access to a real
satellite simulator, soon.

Though I don't understand why it saw a -14.8kHz Doppler shift. The original
file is a zero-IF sample. Did you set the HackRF at a center frequency
different than 1575.42MHz, or multiply the file sample by a sine wave,
perhaps? That seems outside the range of reasonable clock errors to me.

Hey, does your copy of soft-correlator produce the same output mine does
for the looped original prn1? It looks like we didn't push the change that
sets the IF center frequency to 0 instead of 1.95MHz.

Notice the bogus satellites have very low signal/noise ratios (although you
should be skeptical of my math for computing those, FYI). Apparently my
heuristic is wrong for guessing that a satellite is visible; I based it on
my clock error estimate, and all of that is something I made up, not
something I've seen documented as the usual way to build a receiver.

Jamey
On Jun 4, 2015 10:27 AM, "Kenny"  wrote:

> For all you folks following along at home who want to see some pretty
> pictures, here you go!
>
>
> https://drive.google.com/open?id=1pnFV5MWkx5YR9ZlutetgDrejNG9SZx6Zp6xbdKl48Ps&authuser=0
>
> I sometimes have blissful moments of forgetting that Google wants all of
> my data, always.  In this particular instance, we may as well let them
> help out.  So there is a Google Drive folder linked at the bottom of the
> doc which contains "gpslog_big-outside.raw" along with various other
> files we have been talking about.
>
> Transmitting the prn1 converted to complex floats through the HackRF and
> grabbing a sample with jGPSv3 correlates!  Check out that
> signal-to-noise ratio for SV 1!.
>
> $ ./soft-correlator < data/gpslog_prn1_rx.raw
> # frequency of 1-bits: i-sign 51.7%, i-mag 33.6%, q-sign 48.8%, q-mag 30.0%
> # SV, S/N ratio, doppler shift (Hz), code phase (chips), sample clock
> error (chips/s)
> * 1 601.457508  -14801.532243   253.00  9.611385
> * 2 14.721936   -799.801893 330.00  0.519352
> * 4 15.425549   -6801.062185669.00  4.416274
> * 1114.114000   -10801.489275   302.00  7.013954
> * 1715.250208   2199.254809 77.00   -1.428088
> * 2414.148221   -7794.920364335.00  5.061637
> * 2813.145979   14199.180477545.00  -9.220247
> * 3013.199176   5798.007429 466.75  -28.764940
> # 8 satellites in view; average clock error -1.598834 chips/s
>
> I'm surprised to see that the added noise was enough to correlate the
> pseudo-noise sequence from other satellite vehicles.  This was done in
> the basement, so I know it wasn't accidentally picking up any real
> satellites.
>
> --
> Kenny
>
> -+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++
>
>
>
>
>
___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics


Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-04 Thread Kenny
For all you folks following along at home who want to see some pretty
pictures, here you go!

https://drive.google.com/open?id=1pnFV5MWkx5YR9ZlutetgDrejNG9SZx6Zp6xbdKl48Ps&authuser=0

I sometimes have blissful moments of forgetting that Google wants all of
my data, always.  In this particular instance, we may as well let them
help out.  So there is a Google Drive folder linked at the bottom of the
doc which contains "gpslog_big-outside.raw" along with various other
files we have been talking about.

Transmitting the prn1 converted to complex floats through the HackRF and
grabbing a sample with jGPSv3 correlates!  Check out that
signal-to-noise ratio for SV 1!.

$ ./soft-correlator < data/gpslog_prn1_rx.raw
# frequency of 1-bits: i-sign 51.7%, i-mag 33.6%, q-sign 48.8%, q-mag 30.0%
# SV, S/N ratio, doppler shift (Hz), code phase (chips), sample clock error 
(chips/s)
* 1 601.457508  -14801.532243   253.00  9.611385
* 2 14.721936   -799.801893 330.00  0.519352
* 4 15.425549   -6801.062185669.00  4.416274
* 1114.114000   -10801.489275   302.00  7.013954
* 1715.250208   2199.254809 77.00   -1.428088
* 2414.148221   -7794.920364335.00  5.061637
* 2813.145979   14199.180477545.00  -9.220247
* 3013.199176   5798.007429 466.75  -28.764940
# 8 satellites in view; average clock error -1.598834 chips/s

I'm surprised to see that the added noise was enough to correlate the
pseudo-noise sequence from other satellite vehicles.  This was done in
the basement, so I know it wasn't accidentally picking up any real
satellites.

-- 
Kenny
-+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++






smime.p7s
Description: S/MIME cryptographic signature
___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics


Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-04 Thread Jamey Sharp
Interesting, good to know; although in this case it's a two-bit ADC
(literally and, perhaps, figuratively?), so it kind of doesn't have
low-order bits to dither. :-)

Considering that the noise floor is higher than the signal amplitude, you
could alternately look at it as being entirely dither, but not a
predictable kind. Though it's not significantly oversampled; we're only 2x
over the Nyquist limit.

Jamey
On Jun 4, 2015 9:09 AM, "Bart Massey"  wrote:

> The other thing to keep in mind is that low-order ADC bits are sometimes
> regular patterns rather than actual signal because dithering and parasitic
> signals.
>
> On Thu, Jun 4, 2015 at 12:16 AM Jamey Sharp  wrote:
>
>> I'm happy to get a copy of the file from you next time I see you. I
>> don't know if we have a sensible place to stick 200MB test files.
>>
>> I've attached a single cycle of the pseudo-noise sequence from
>> satellite vehicle #1, in the packed format, IF, and sample rate that
>> we're using. You can loop it and feed it to soft-correlator like so:
>>
>> $ while :; do cat prn1; done | ./soft-correlator
>> # frequency of 1-bits: i-sign 50.0%, i-mag 100.0%, q-sign 50.0%, q-mag
>> 0.0%
>> # SV, S/N ratio, doppler shift (Hz), code phase (chips), sample clock
>> error (chips/s)
>> * 1766.360819-0.9092890.000.000590
>> # 1 satellites in view; average clock error 0.000590 chips/s
>>
>> So you should be able to try passing through your HackRF and our RF
>> frontend too, and see if soft-correlator gets similar results then. It
>> would also be interesting to look at a waterfall display for the
>> original and over-the-air versions.
>>
>>
>> I'm glad you did that compression test as I've learned something from
>> it. Nobody needs to know this, but I thought it was a fun exercise, so
>> read it if you like. :-)
>>
>> Both gzip and bzip2 use Huffman coding, and it turns out that because
>> of the MAX2769's automatic gain control, Huffman coding should be able
>> to compress the data a little bit. In each byte of our data, bits 1,
>> 3, 5, and 7 have a 50% chance of being a 1, but the other bits have
>> only a 33.2% chance. That skews the distribution of bytes. If byte
>> values were uniformly distributed, then each possible value would
>> occur about 0.4% of the time, but with this AGC the probabilities are
>> sometimes higher, sometimes lower:
>>
>> 0.1% 16
>> 0.2% 64
>> 0.3% 96
>> 0.6% 64
>> 1.2% 16
>>
>> Given those probabilities, the theoretical lower bound is about 7.7
>> compressed bits per 8-bit byte of input, for a compressed size of
>> 95.8%. Huffman coding can't reach that bound though because these
>> probabilities aren't negative powers of two, and Huffman coding only
>> uses integer numbers of bits for each symbol.
>>
>> That theoretical limit is not as good as what you actually saw, which
>> was about 91.3%. So that's interesting. Apparently there's even more
>> structure in this signal than one might predict from the AGC behavior.
>>
>> Samples off a GPS-band RF frontend should be nearly uncorrelated (they
>> should look like white noise). So I still expect that
>> pattern-recognition, dictionary compression techniques like Lempel-Ziv
>> (used in gzip) and the Burrows-Wheeler transform plus run-length
>> encoding (used in bzip2) don't help very much.
>>
>> But the low-pass filter reduces the variance of the noise, and that's
>> going to result in some correlation across samples, so maybe the
>> compressors are picking that up? You could test that by setting the
>> CONF1 register's FBW (filter bandwidth) field to 0b10 (4.2MHz) and
>> seeing how well that more broad-band noise compresses.
>>
>> Jamey
>>
>> On Wed, Jun 3, 2015 at 3:18 PM, Kenny  wrote:
>> > For generating pseudonoise, NOAA helpfully posted some Matlab code:
>> > http://www.ngs.noaa.gov/gps-toolbox/MPsimul.htm
>> >
>> >
>> > The "bigger" sample I took is only 196MB in raw I/Q sign/mag binary
>> > format.  But that turns into 3.1GB in complex 32-bit floats.  I tried
>> > compressing a few different ways:
>> >
>> > 3.1G gpslog_big-outside.floats
>> > 196M gpslog_big-outside.raw
>> > 181M gpslog_big-outside.raw.gz  # gzip --best
>> > 181M gpslog_big-outside.raw.7z  # 7z -mx=9
>> > 179M gpslog_big-outside.raw.bz2 # bzip2 --best
>> >
>> > Compressing by almost 10% is pretty surprising to me.  It doesn't seem
>> > like the fixed frequency spurs (at DC and -400kHz) would be enough to
>> > account for this.  Maybe some of the aliasing artifacts could be
>> > compressed?
>> >
>> > I don't have a good place to post this file at the moment.
>> > Recommendations?  I'll have it with me on a thumbdrive for the capstones
>> > Thursday, Friday hackday and Sunday lab hours.
>> >
>> > --
>> > Kenny
>> >
>> -+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++
>> >
>> >
>> >
>> > On Wed, 2015-06-03 at 12:14 -0700, Jamey Sharp wrote:
>> >> On Jun 3, 2015 7:44 AM, "Kenny"  wrote:
>> >> >   + The STM32 which controls the MAX2769 (GPS baseband rece

Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-04 Thread Jamey Sharp
I'm happy to get a copy of the file from you next time I see you. I
don't know if we have a sensible place to stick 200MB test files.

I've attached a single cycle of the pseudo-noise sequence from
satellite vehicle #1, in the packed format, IF, and sample rate that
we're using. You can loop it and feed it to soft-correlator like so:

$ while :; do cat prn1; done | ./soft-correlator
# frequency of 1-bits: i-sign 50.0%, i-mag 100.0%, q-sign 50.0%, q-mag 0.0%
# SV, S/N ratio, doppler shift (Hz), code phase (chips), sample clock
error (chips/s)
* 1766.360819-0.9092890.000.000590
# 1 satellites in view; average clock error 0.000590 chips/s

So you should be able to try passing through your HackRF and our RF
frontend too, and see if soft-correlator gets similar results then. It
would also be interesting to look at a waterfall display for the
original and over-the-air versions.


I'm glad you did that compression test as I've learned something from
it. Nobody needs to know this, but I thought it was a fun exercise, so
read it if you like. :-)

Both gzip and bzip2 use Huffman coding, and it turns out that because
of the MAX2769's automatic gain control, Huffman coding should be able
to compress the data a little bit. In each byte of our data, bits 1,
3, 5, and 7 have a 50% chance of being a 1, but the other bits have
only a 33.2% chance. That skews the distribution of bytes. If byte
values were uniformly distributed, then each possible value would
occur about 0.4% of the time, but with this AGC the probabilities are
sometimes higher, sometimes lower:

0.1% 16
0.2% 64
0.3% 96
0.6% 64
1.2% 16

Given those probabilities, the theoretical lower bound is about 7.7
compressed bits per 8-bit byte of input, for a compressed size of
95.8%. Huffman coding can't reach that bound though because these
probabilities aren't negative powers of two, and Huffman coding only
uses integer numbers of bits for each symbol.

That theoretical limit is not as good as what you actually saw, which
was about 91.3%. So that's interesting. Apparently there's even more
structure in this signal than one might predict from the AGC behavior.

Samples off a GPS-band RF frontend should be nearly uncorrelated (they
should look like white noise). So I still expect that
pattern-recognition, dictionary compression techniques like Lempel-Ziv
(used in gzip) and the Burrows-Wheeler transform plus run-length
encoding (used in bzip2) don't help very much.

But the low-pass filter reduces the variance of the noise, and that's
going to result in some correlation across samples, so maybe the
compressors are picking that up? You could test that by setting the
CONF1 register's FBW (filter bandwidth) field to 0b10 (4.2MHz) and
seeing how well that more broad-band noise compresses.

Jamey

On Wed, Jun 3, 2015 at 3:18 PM, Kenny  wrote:
> For generating pseudonoise, NOAA helpfully posted some Matlab code:
> http://www.ngs.noaa.gov/gps-toolbox/MPsimul.htm
>
>
> The "bigger" sample I took is only 196MB in raw I/Q sign/mag binary
> format.  But that turns into 3.1GB in complex 32-bit floats.  I tried
> compressing a few different ways:
>
> 3.1G gpslog_big-outside.floats
> 196M gpslog_big-outside.raw
> 181M gpslog_big-outside.raw.gz  # gzip --best
> 181M gpslog_big-outside.raw.7z  # 7z -mx=9
> 179M gpslog_big-outside.raw.bz2 # bzip2 --best
>
> Compressing by almost 10% is pretty surprising to me.  It doesn't seem
> like the fixed frequency spurs (at DC and -400kHz) would be enough to
> account for this.  Maybe some of the aliasing artifacts could be
> compressed?
>
> I don't have a good place to post this file at the moment.
> Recommendations?  I'll have it with me on a thumbdrive for the capstones
> Thursday, Friday hackday and Sunday lab hours.
>
> --
> Kenny
> -+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++
>
>
>
> On Wed, 2015-06-03 at 12:14 -0700, Jamey Sharp wrote:
>> On Jun 3, 2015 7:44 AM, "Kenny"  wrote:
>> >   + The STM32 which controls the MAX2769 (GPS baseband receiver) now
>> > dynamically configures the MAX according to instructions received by
>> > debug scripts so we can test all the configurations we want without
>> > reprogramming the STM32 each time.
>>
>> I was skeptical about whether this would be worth the engineering
>> effort, but Theo's time spent building it already paid for itself last
>> night. Excellent idea.
>>
>> >   + Kenny joined the party to help transmit a sweeping sine wave +/-
>> > 2MHz around GPS baseband using HackRF.  Samples received from the
>> > MAX2769, converted and viewed in baudline showed the same sweeping
>> sine
>> > wave (with noise and other artifacts).  This turned out to be a good
>> way
>> > to test poorly documented configuration settings and lay to rest
>> > bit-order questions.
>>
>> I disagree. It was a *great* way to test. ;-) We now have confidence
>> about the meaning of most of the MAX2769 registers, and we know the
>> entire signal path on the jGPSv3 board

Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-03 Thread Kenny
For generating pseudonoise, NOAA helpfully posted some Matlab code:
http://www.ngs.noaa.gov/gps-toolbox/MPsimul.htm


The "bigger" sample I took is only 196MB in raw I/Q sign/mag binary
format.  But that turns into 3.1GB in complex 32-bit floats.  I tried
compressing a few different ways:

3.1G gpslog_big-outside.floats
196M gpslog_big-outside.raw
181M gpslog_big-outside.raw.gz  # gzip --best
181M gpslog_big-outside.raw.7z  # 7z -mx=9
179M gpslog_big-outside.raw.bz2 # bzip2 --best

Compressing by almost 10% is pretty surprising to me.  It doesn't seem
like the fixed frequency spurs (at DC and -400kHz) would be enough to
account for this.  Maybe some of the aliasing artifacts could be
compressed?

I don't have a good place to post this file at the moment.
Recommendations?  I'll have it with me on a thumbdrive for the capstones
Thursday, Friday hackday and Sunday lab hours.

-- 
Kenny
-+---+++-++---+--+-+-++--++--+-+-++--+++-+++-++-+++---++--++



On Wed, 2015-06-03 at 12:14 -0700, Jamey Sharp wrote:
> On Jun 3, 2015 7:44 AM, "Kenny"  wrote:
> >   + The STM32 which controls the MAX2769 (GPS baseband receiver) now
> > dynamically configures the MAX according to instructions received by
> > debug scripts so we can test all the configurations we want without
> > reprogramming the STM32 each time.
> 
> I was skeptical about whether this would be worth the engineering
> effort, but Theo's time spent building it already paid for itself last
> night. Excellent idea.
> 
> >   + Kenny joined the party to help transmit a sweeping sine wave +/-
> > 2MHz around GPS baseband using HackRF.  Samples received from the
> > MAX2769, converted and viewed in baudline showed the same sweeping
> sine
> > wave (with noise and other artifacts).  This turned out to be a good
> way
> > to test poorly documented configuration settings and lay to rest
> > bit-order questions.
> 
> I disagree. It was a *great* way to test. ;-) We now have confidence
> about the meaning of most of the MAX2769 registers, and we know the
> entire signal path on the jGPSv3 board is functioning!
> 
> I have two next steps in mind for testing:
> 
> First, someone (Nathan or me probably) should generate one GPS
> satellite's pseudonoise sequence in a file. We should test feeding it
> into soft-correlator first, which ought to report a strong signal from
> that satellite at 0 Doppler shift. Then we should feed the same signal
> through HackRF, record it with jGPSv3, and try feeding *that* to the
> correlator. If that doesn't work, I don't know what's wrong; bad noise
> maybe? If it does work, we can also try simulating some Doppler shifts
> and adding varying amounts of noise in GNU Radio.
> 
> After that: don't we know some folks who make GPS satellite
> simulators? We're ready to ask them for help.
> 
> In parallel, I think it's time to do the other engineering tasks we
> need: send the COTS GPS data to Ethernet simultaneously with the MAX
> samples; log it all to disk on the FC; stream the COTS data to the
> ground; and log it all to SDCard on the STM if we're going to do that.
> 
> I suspect that's mostly on Theo's plate, but anyone who's interested
> in the microcontroller firmware or flight computer software could
> help.
> 
> >   + Jamey said we could fly with this configuration and probably
> figure
> > out how to tease satellites out of the logged data later.
> 
> I won't swear there's anything to tease out. I just think at this
> point we've mitigated most of the risks of hardware problems. So if we
> decided to fly with the hardware in this state, I'd feel pretty
> comfortable that we'd done our due diligence toward getting useful
> science out of the flight. And I think I should shift to focusing on
> roll control and overall system engineering details.
> 
> >   + For fun, Kenny collected a larger sample outside from the
> MAX2769, ...
> 
> Could you post that larger sample somewhere? How big is it? And out of
> curiosity, do any of the general purpose compression algorithms (gzip,
> bzip2, etc) manage to compress it at all? (If they do we've probably
> screwed something up, so that would be good to know.)
> 
> Maybe we can try feeding the sample into the GNSS-SDR code we looked
> at last fall, as another check. I think that's a good task for K if he
> has time; he had that code running successfully IIRC.
> 
> Jamey
> 


smime.p7s
Description: S/MIME cryptographic signature
___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics


Re: [psas-avionics] Tuesday latenight updates (mostly GPS news)

2015-06-03 Thread Jamey Sharp
On Jun 3, 2015 7:44 AM, "Kenny"  wrote:
>   + The STM32 which controls the MAX2769 (GPS baseband receiver) now
> dynamically configures the MAX according to instructions received by
> debug scripts so we can test all the configurations we want without
> reprogramming the STM32 each time.

I was skeptical about whether this would be worth the engineering effort,
but Theo's time spent building it already paid for itself last night.
Excellent idea.

>   + Kenny joined the party to help transmit a sweeping sine wave +/-
> 2MHz around GPS baseband using HackRF.  Samples received from the
> MAX2769, converted and viewed in baudline showed the same sweeping sine
> wave (with noise and other artifacts).  This turned out to be a good way
> to test poorly documented configuration settings and lay to rest
> bit-order questions.

I disagree. It was a *great* way to test. ;-) We now have confidence about
the meaning of most of the MAX2769 registers, and we know the entire signal
path on the jGPSv3 board is functioning!

I have two next steps in mind for testing:

First, someone (Nathan or me probably) should generate one GPS satellite's
pseudonoise sequence in a file. We should test feeding it into
soft-correlator first, which ought to report a strong signal from that
satellite at 0 Doppler shift. Then we should feed the same signal through
HackRF, record it with jGPSv3, and try feeding *that* to the correlator. If
that doesn't work, I don't know what's wrong; bad noise maybe? If it does
work, we can also try simulating some Doppler shifts and adding varying
amounts of noise in GNU Radio.

After that: don't we know some folks who make GPS satellite simulators?
We're ready to ask them for help.

In parallel, I think it's time to do the other engineering tasks we need:
send the COTS GPS data to Ethernet simultaneously with the MAX samples; log
it all to disk on the FC; stream the COTS data to the ground; and log it
all to SDCard on the STM if we're going to do that.

I suspect that's mostly on Theo's plate, but anyone who's interested in the
microcontroller firmware or flight computer software could help.

>   + Jamey said we could fly with this configuration and probably figure
> out how to tease satellites out of the logged data later.

I won't swear there's anything to tease out. I just think at this point
we've mitigated most of the risks of hardware problems. So if we decided to
fly with the hardware in this state, I'd feel pretty comfortable that we'd
done our due diligence toward getting useful science out of the flight. And
I think I should shift to focusing on roll control and overall system
engineering details.

>   + For fun, Kenny collected a larger sample outside from the MAX2769, ...

Could you post that larger sample somewhere? How big is it? And out of
curiosity, do any of the general purpose compression algorithms (gzip,
bzip2, etc) manage to compress it at all? (If they do we've probably
screwed something up, so that would be good to know.)

Maybe we can try feeding the sample into the GNSS-SDR code we looked at
last fall, as another check. I think that's a good task for K if he has
time; he had that code running successfully IIRC.

Jamey
___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics


Re: [psas-avionics] Tuesday

2013-06-18 Thread Ron Astin
Hey all,

I'm going to have to leave shortly after this meeting but I'll probably
make it if we do a Sunday session.

Ron


On Tue, Jun 18, 2013 at 7:08 PM, Clark Wachsmuth
wrote:

> Unless someone knows of a manned rocket near Astoria,  I'm going to be in
> to Portland too late for tonight's meeting,  unfortunately.  I can meet for
> another coding session this Sunday if it's needed or wanted.
>
> Thanks,
>
> Clark
>
> ___
> psas-avionics mailing list
> psas-avionics@lists.psas.pdx.edu
> http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics
>
>
___
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics