06-04-2012 08:08 AM
An important thing to note is that the 10 MHz clock is shared between devices, but not the actual LO (local oscillator) that mixes with the RF signal. The LO is derived from the 10 MHz clock. You'll want to use finite acquistion and change the frequency iteratively. Ideally both the transmitter and reciver would know the hopping sequence ahead of time and the start times of each packet transmission. You'll also need to take the settling time of the LO into account as it moves (about 1ms).
The following example uses a state machine to change frequency:
niUSRP EX Spectral Monitoring (Interactive).vi
This method can be used if the hopping occurs within a 40 MHz bandwidth:
niUSRP EX Tx Continuous Async Reconfig on the Fly.vi
For a more robust applcation, I would start the reciever and trigger off of energy. Then I would advanced it to the next frequency after the packet is recieved and again watch for energy. Then I would precisely time only the transmitter. In that type of implementaiton you would not need to synchronize either PPS or the 10 MHz Ref between devices. This type of implenentation will require some programming and exploration, but I would start with the state machine architecture in the Spectral Monitoring example above.
06-04-2012 08:53 AM
I have set the default frequency to 915MHz in both VIs. I also added a local variable to change the carrier frequncy on the fly like in niUSRP EX Tx Continuous Async Reconfig on the Fly.vi. While both VIs are running, I change the carrier frequency in the Tx, but the carrier frequency of the Rx does not change.
06-07-2012 09:23 AM
I followed your advice. Now I can change the Rx carrier frequency on the fly. But my aim is that the Rx carrier frequency changes itself, when the Tx carrier frequency is changed and this is still not possible.
06-07-2012 01:06 PM
Since you are using 2 USRPs, each one will have its own LO source and mixers, so you will have to add controls into your software to make sure that you are changing both at the same time. Erik is correct that you will need to use a property node to change them on the fly. Since you have the TX and RX portion in 2 separate VIs, this is slightly more difficult. You could combine the 2 pieces of code into one VI and use a local variable, or you could combine them into a project and use a global variable. Whichever way you choose to implement it, you will need to use the Carrier Frequency property for both the TX and RX and have them reading from the same control/variable to have them change at the same time.