# Failure of sending square wave over USRPs (back-to-back)

**URL:** <https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781>\
**Category:** GNU Radio\
**Created:** [March 14, 2014, 5:34am UTC](https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781 "2014-03-14T05:34:38Z")\
**Posts on this page:** 4\
**Page:** 2

<div class="post-metadata">

**Author:** ![activecat\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@activecat\_k](https://www.ruby-forum.com/u/activecat_k)\
**Post date:** [March 15, 2014, 1:02pm UTC](https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781/21 "2014-03-15T13:02:48Z")

</div>

On 03/15/2014 02:57 AM, Activecat wrote:

> frequency, that its output is a real signal of

I was using the term “analog” to distinguish from “digital”. The FPGA  
_also_ has up/downconverters for doing offsetting and “mop up”  
operations on the signal stream, and those operations are,  
necessarily, performed on a digital sample stream, rather than on an  
analog  
electron stream.

A quadrature up (or down) converter is structurally very similar to a  
real-valued converter, and most folks in the industry refer to  
both as “upconversion” and “downconversion”. While the mathematical  
expressions that describe them are, as you note, different,  
they’re performing a very similar function, and use nearly-identical  
hardware, except that in the complex (quadrature) case, you have  
two mixers, and a phase-split local oscillator.

You can see the schematics of SBX (and other cards) here:

[http://www.ettus.com/files/schematics](http://www.ettus.com/files/schematics)

---

<div class="post-metadata">

**Author:** ![activecat\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@activecat\_k](https://www.ruby-forum.com/u/activecat_k)\
**Post date:** [March 15, 2014, 1:08pm UTC](https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781/22 "2014-03-15T13:08:18Z")

</div>

> * * *

Sorry, Tom. I posted another in the thread before looking at you “drop  
this thread” message. My bad.

---

<div class="post-metadata">

**Author:** ![activecat\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@activecat\_k](https://www.ruby-forum.com/u/activecat_k)\
**Post date:** [March 15, 2014, 10:58am UTC](https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781/23 "2014-03-15T10:58:17Z")

</div>

On Sat, Mar 15, 2014 at 10:46 AM, Activecat [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> In this case I shall rephrase my question to:  
> “How to compensate the error due to clock drift which is not handled  
> by a simple quadrature upconverter ?”
> 
> Could anyone of gnuradio forum gives me some idea ?  
> I hope this is no longer categorized as expecting Ettus to teach me  
> the fundamentals of RF.

Activecat,

It was mentioned earlier in this thread, you can use a PLL to lock to  
a carrier. Basically, you need an algorithm that performs carrier  
recovery.

This thread is starting to get a little too confrontational, so we all  
need to take a bit of a break. Please take a look at the PLL blocks in  
GNU Radio; you can find them under the Synchronizers category in the  
block tree of GRC. Spend some time understanding these blocks and how  
to use them. If you still have questions, please open another email  
thread.

Thanks,  
Tom

---

<div class="post-metadata">

**Author:** ![activecat\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c57346/32.png) [@activecat\_k](https://www.ruby-forum.com/u/activecat_k)\
**Post date:** [March 16, 2014, 4:55am UTC](https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781/24 "2014-03-16T04:55:42Z")

</div>

I have found the answers.  
[http://nutaq.com/en/blog/multi-channel-synchronization-fpga-based-daq-systems](http://nutaq.com/en/blog/multi-channel-synchronization-fpga-based-daq-systems)  
[http://nutaq.com/en/blog/brief-overview-frequency-synchronization-ofdm](http://nutaq.com/en/blog/brief-overview-frequency-synchronization-ofdm)

On the Nutaq platforms (ZeptoSDR, PicoSDR) you can control VCXO voltage  
DAC from GNU Radio (and from FPGA user logic) to implement carrier  
frequency offset correction.

Thanks everyone for your help.

[Previous page](https://www.ruby-forum.com/t/failure-of-sending-square-wave-over-usrps-back-to-back/239781.md?page=1)
