discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Using PPS to trigger received data storage in Pyt


From: Josh Blum
Subject: Re: [Discuss-gnuradio] Using PPS to trigger received data storage in Python
Date: Fri, 25 Nov 2011 18:25:38 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1


On 11/25/2011 05:51 PM, Yan Nie wrote:
> I really appreciate your reply, Josh.
> 
> I am using a GPS as the input for PPS of my receiver based on USRP
> N200 in order to synchronize with a transmitter which uses GPS pulse
> to synchronize with other devices. This transmitter detects the NEG
> edge of GPS pulse, then 2ms later, starts to transmit signal for
> 1ms,then it suspends for the remainder of this second. When next GPS
> pulse coming at the beginning of next second, this transmitter
> repeats the transmission process again for every second.
> 
> Therefore, this PPS signal is used as a synchronization signal in my
> receiver to synchronously receive the signal sent by this transmitter
> needed to collaborate with. The PPS signal need to trigger the signal
> reception every second, as the precision of the clock of USRP and GPS
> cannot be exactly the same. If only use PPS to trigger the latching
> of the time registers the first second of signal reception,
> eventually, the receiver and transmitter cannot be precisely
> synchronized.
> 

Ah, so you are not sharing a reference, therefore PPS is not "pulse per
second", its "pulse per approximately a second" because of clock drift,
in other words, just a generic event trigger.

Well, there isnt a way to cause streaming to start on a pulse unless you
perform some FPGA mods, but I will tell you one creative way to solve this:

Continually read get_time_last_pps(). Every time this function returns a
different value, you know the exact time (relative to USRP) that a pulse
event occurred.

So you know:

1) the exact time for every sample thanks to stream tags
2) the exact time of every pulse thanks to get_time_last_pps

Now you just have make some code that combines both pieces of
information to store the samples.

-Josh



reply via email to

[Prev in Thread] Current Thread [Next in Thread]