[USRP-users] uhd_cal_tx_iq_balance skips wide frequency range

Michael West michael.west at ettus.com
Wed Oct 22 22:51:27 EDT 2014


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:
>
>> 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:
>>
>>> 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.
>>
>>
>
>
>
> 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/20141022/9edb1a29/attachment-0002.html>


More information about the USRP-users mailing list