[USRP-users] uhd_cal_tx_iq_balance skips wide frequency range

Urban Hakansson uhakansson at tecore.com
Thu Oct 23 10:31:09 EDT 2014


Hi Michael, 

Thanks for running the test on your N210+SBX setup. 

Nothing was connected to the N210 when I did the calibration. 

mleech sent me a link to the mixer that is used on the SBX daughter-board, http://www.analog.com/static/imported-files/data_sheets/ADL5375.pdf 

Based on my understanding of the data sheet we should both expect better performance than ~ 20dB suppression from the SBX daughter-board for all bands. 

Considering your test results, My SBX is certainly much worse than yours, so to conclude, it is likely I have a bad SBX daughter board, but you may have one too. 

Regards, 

Urban 
----- Original Message -----

From: "Michael West" <michael.west at ettus.com> 
To: "Urban Hakansson" <uhakansson at tecore.com> 
Cc: "USRP-users at lists.ettus.com" <usrp-users at lists.ettus.com> 
Sent: Wednesday, October 22, 2014 10:51:27 PM 
Subject: Re: [USRP-users] uhd_cal_tx_iq_balance skips wide frequency range 




Hi Urban, 

Thanks for the information and the flow graph. I grabbed an N210+SBX and a spectrum analyzer to reproduce your test. After running the calibration, I observed the following on my set up: 

c(MHz) P_(fc-f)/P_(fc+f)(dB) 
700 -22 
800 -32 
900 -22 
1000 -27 
1100 -34 
1200 -23 
1300 -29 
1400 -23 
1500 -26 
1600 -27 
1700 -32 
1800 -47 
1900 -47 
2000 -47 
2100 -46 
2200 -45 
2300 -45 
2400 -44 
2500 -43 
2600 -43 
2700 -43 
2800 -42 
2900 -42 
3000 -42 


The bottom line is that it looks as to the -40 dB or better across all bands is not realistic for an N210+SBX set up. But it does look like your particular SBX is a bit worse off than the one I tested. I was able to get at least -22 dB across the same range. The anomalies you are seeing at 2100 and 2200 MHz are particularly strange. Just to be clear, the calibration should be done with nothing connected to the SBX. If something was connected, you should run calibration again. If you believe the board to be bad, contact support at ettus.com and they will help you further. 



Best regards, 
Michael 


On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson < uhakansson at tecore.com > wrote: 




Micahel, 

Do you mean the if condition in for example uhd_cal_tx_iq_balance should be if ( best_suppression > initial_suppression ) ? 

To answer your questions. I am now focusing on calibrating the TX path. 

I generate x(t) = r*exp(j*2*pi*f*t) using a very simple Gnuradio flowgraph that I attach. As you can see in the flowgraph, I set r = 0.1 and f = 1.25MHz. I set the sample rate to 6.25 MHz (100MHz/(2^4)) to make it as easy for the FPGA filters as possible when interpolating, and the analog tx gain to 0 dB. Given the amplitude and tx gain settings I should be operating well within the linear range of the amplifier. 

I sweep the center frequency fc from 700 MHz to 3GHz in 100MHz steps. 

I measure the IQ imbalance by connecting my N210 TX/RX port to a Rohde Schwarz FSP Spectrum Analyzer with 50 Ohm input load using a low loss Coaxial Cable (LMR-400 3/8"). 

I measure the power of the desired signal x(t) = r*exp(j*2*pi*(fc+f)*t), and the undesired replica x'(t) = r'*exp(j*2*pi*(fc-f)*t), putting a spectrum analyzer marker on each peak, and see what the delta is. 

I tried running free without calibration script and the result was worse. 

with 200kHz calibration script without calibration scripts 
c (MHz) P_(fc-f)/P_(fc+f) (dB) P_(fc-f)/P_(fc+f) (dB) 
700 -40 -18 
800 -23 -14 
900 -17 -11 
1000 -22 -13 
1100 -27 -15 
1200 -40 -20 
1300 -12 -16 
1400 -15 -23 
1500 -40 -18 
1600 -40 -14 
1700 -21 -11 
1800 -13 -11 
1900 -40 -20 
2000 to small to measure (-infinity) -23 
2100 -12 -15 
2200 -14 -19 
2300 to small to measure (-infinity) -21 
2400 to small to measure (-infinity) -24 
2500 to small to measure (-infinity) -27 
2600 to small to measure (-infinity) -29 
2700 to small to measure (-infinity) -35 
2800 to small to measure (-infinity) to small to measure (-infinity) 
2900 to small to measure (-infinity) to small to measure (-infinity) 
3000 to small to measure (-infinity) -33 

So calibrating did improve the IQ balance but not enough it seems. I expected the suppression to be at least 40dB. 

I attach the tx calibration scripts for 200kHz step size, when using if (best_suppression > 15) as the criterion. 

Urban 


From: "Michael West" < michael.west at ettus.com > 
To: "Urban Hakansson" < uhakansson at tecore.com > 
Cc: " USRP-users at lists.ettus.com " < usrp-users at lists.ettus.com > 
Sent: Tuesday, October 21, 2014 7:51:10 PM 


Subject: Re: [USRP-users] uhd_cal_tx_iq_balance skips wide frequency range 



Hi Urban, 

First, I honestly do not know why the value of 30 was hard coded. I believe the "initial_suppression" value should be used, which is the measured value with no correction applied. 


Regarding the IQ imbalance you are seeing, I have a few questions. Is it on TX or RX? How are you measuring it? What is your set up (are you looping back or connected to a signal generator and/or spectrum analyzer)? What gain level(s) are you using? Also, sharing the flowgraph you are using would help. 



Best regards, 
Michael 


On Tue, Oct 21, 2014 at 6:58 AM, Urban Hakansson < uhakansson at tecore.com > wrote: 

<blockquote>


Michael, 

Thanks for your reply. 

We changed the threshold to 15 and now we get calibration data written to file for each freq step. 

Q: What is the reason the threshold is set to 30? Is there any reason I should not set it to 15 or any other value? Is there is a reason this parameter value is hard coded and is not something you can pass in as an argument? 

Regardless, the original problem I wanted to solve by calibrating in finer frequency steps still remains, namely, the residual IQ imbalance is too large in certain bands. 

I calibrated the entire N210+SBX frequency range from 400 to 4400 MHz in 200kHz steps, thinking that should do it. 

To check for any residual IQ imbalance I then generated a complex exponential with amplitude 0.1 and frequency f = 1.25 MHz, sampled at Fs = 6.25 MHz, and set tx gain to 0dB (using GnuRadio flowdiagram). 

I varied the center frequency fc (LO) in 100MHz steps from 700 MHz to 3000 MHz, measured the power-ratio between fc+f and the undesired replica at fc-f which is due to residual IQ imbalance. 

fc (MHz) P_(fc-f)/P_(fc+f) (dB) 
700 -40 
800 -23 
900 -17 
1000 -22 
1100 -27 
1200 -40 
1300 -12 
1400 -15 
1500 -40 
1600 -40 
1700 -21 
1800 -13 
1900 -40 
2000 to small to measure (-infinity) 
2100 -12 
2200 -14 
2300 to small to measure (-infinity) 
... ... 
3000 to small to measure (-infinity) 

I thought that by calibrating the residual IQ imbalance would result in a power ratio of at least < -40dB between the undesired replica at fc-f and the original signal at fc+f. 

Maybe my expectations are too high, or perhaps I have a bad SBX daughterboard? 

Q: What results should I realistically be able to expect using the N210 + SBX combination? 

Regards, 

Urban 



From: "Michael West" < michael.west at ettus.com > 
To: "Urban Hakansson" < uhakansson at tecore.com > 
Cc: " USRP-users at lists.ettus.com " < usrp-users at lists.ettus.com > 
Sent: Thursday, October 9, 2014 3:03:08 PM 
Subject: Re: [USRP-users] uhd_cal_tx_iq_balance skips wide frequency range 






Hi Urban, 

If I am understanding you correctly, you are saying that there is no calibration data for those frequencies in the resulting file. That does not mean the frequencies are being skipped by the utility. That only means that a suppression of over 30 dB could not be achieved for those frequencies, so no correction data was saved. You can set a lower threshold for the minimum suppression by changing the value in the following line in each IQ calibration utility: 

if (best_suppression > 30){ //most likely valid, keep result 

Best regards, 
Michael 



On Thu, Oct 9, 2014 at 8:57 AM, Urban Hakansson via USRP-users < usrp-users at lists.ettus.com > wrote: 

<blockquote>
Hi everybody, 

I am trying to calibrate my N210 SBX daughterboard using the three calibration scripts uhd_cal_rx_iq_balance, uhd_cal_tx_iq_balance,and uhd_cal_tx_dc_offset using different values for freq_start, freq_stop, and freq_step. 

uhd_cal_tx_iq_balance utility that is not behaving as I expected. 
(uhd_cal_rx_iq_balance and uhd_cal_tx_dc_offset give me no problems). 

If I run uhd_cal_tx_iq_balance with any other values besides the default values it will skip approximately 300MHz of frequencies from 790 MHz to ~ 1100MHz. 

Here are a few of my attempts. 

uhd_cal_tx_iq_balance --freq_start 500000000 
uhd_cal_tx_iq_balance --freq_start 600000000 
uhd_cal_tx_iq_balance --freq_start 700000000 
uhd_cal_tx_iq_balance --freq_start 785000000 
uhd_cal_tx_iq_balance --verbose --freq_step 100000 
uhd_cal_tx_iq_balance --verbose --freq_step 110000 
uhd_cal_tx_iq_balance --verbose --freq_step 225000 
uhd_cal_tx_iq_balance --verbose --freq_step 900000 
uhd_cal_tx_iq_balance --verbose --freq_step 1000000 
uhd_cal_tx_iq_balance --verbose --freq_step 1100000 
uhd_cal_tx_iq_balance --verbose --freq_step 2000000 
... 
uhd_cal_tx_iq_balance --verbose --freq_step 7300000 

uhd_cal_tx_iq_balance always stops just before 790MHz and just sits there, but does not abort, and after a really long time continues at ~ 1100MHz and continues all the way to 4370MHz without any further gaps. 

I attach the calibration scripts I am using and the three csv files for one example, uhd_cal_tx_iq_balance --verbose --freq_step 225000. 

General background information about my environment: 
Fedora 17 Linux; GNU C++ version 4.7.0 20120507 (Red Hat 4.7.0-5); Boost_104800; UHD_003.007.001-0-unknown 

N210 informationfrom uhd_usrp_probe: 
| Device: USRP2 / N-Series Device 
| _____________________________________________________ 
| / 
| | Mboard: N210r4 
| | hardware: 2577 
| | mac-addr: 00:80:2f:0a:e6:15 
| | ip-addr: 192.168.2.199 
| | subnet: 255.255.255.255 
| | gateway: 255.255.255.255 
| | gpsdo: none 
| | serial: F4A09C 
| | FW Version: 12.4 
| | FPGA Version: 10.1 

What could the cause of this behaviour be? Are there only certain combination of values that work? What do I need to do to make uhd_tx_iq_balance not hang right before 790MHz? 

Thanks for you consideration. 

Regards, 

Urban Hakansson 
Senior Software Engineer 
Tecore Networks 
Phone: +1 410 872 6315 
Fax: +1 410 872 6010 
Email: uhakansson at tecore.com 


Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson at tecore.com 

Urban Hakansson 
Senior Software Engineer 
Tecore Networks 
Phone: +1 410 872 6315 
Fax: +1 410 872 6010 
Email: uhakansson at tecore.com 

This e-mail may contain privileged, confidential, copyrighted or other legally protected information, and is intended exclusively for the intended recipient. If you are not the intended recipient (even if the e-mail address above is yours), you may not review, store, use, copy, disclose or retransmit it in any form. If you are not the intended recipient or otherwise have received this by mistake, please immediately notify the sender by return e-mail (or sysadmin at tecore.com ), then delete the message in its entirety. Thank you. 
_______________________________________________ 
USRP-users mailing list 
USRP-users at lists.ettus.com 
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com 










This e-mail may contain privileged, confidential, copyrighted or other legally protected information, and is intended exclusively for the intended recipient. If you are not the intended recipient (even if the e-mail address above is yours), you may not review, store, use, copy, disclose or retransmit it in any form. If you are not the intended recipient or otherwise have received this by mistake, please immediately notify the sender by return e-mail (or sysadmin at tecore.com ), then delete the message in its entirety. Thank you. 

</blockquote>







This e-mail may contain privileged, confidential, copyrighted or other legally protected information, and is intended exclusively for the intended recipient. If you are not the intended recipient (even if the e-mail address above is yours), you may not review, store, use, copy, disclose or retransmit it in any form. If you are not the intended recipient or otherwise have received this by mistake, please immediately notify the sender by return e-mail (or sysadmin at tecore.com ), then delete the message in its entirety. Thank you. 

</blockquote>



                                                                                                                                                                                                                                       This e-mail may contain privileged, confidential, copyrighted or other legally protected information, and is intended exclusively for the intended recipient.  If you are not the intended recipient (even if the e-mail address above is yours), you may not review, store, use, copy, disclose or retransmit it in any form.  If you are not the intended recipient or otherwise have received this by mistake, please immediately notify the sender by return e-mail (or sysadmin at tecore.com), then delete the message in its entirety. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20141023/d1752c72/attachment-0002.html>


More information about the USRP-users mailing list