[USRP-users] uhd_cal_tx_iq_balance skips wide frequency range

Michael West michael.west at ettus.com
Thu Oct 23 17:09:37 EDT 2014


Urban,

Yes, it looks like your SBX may be bad.

For frequencies under 2 GHz and an RX gain of 25, the RX signal was
saturating which resulted in incorrect phase and amplitude correction
values.  That meant that for some frequencies the suppression would get
worse when the corrections were applied.  I am filing a bug against UHD for
that, so it will hopefully be fixed very soon.

Regards,
Michael

On Thu, Oct 23, 2014 at 1:24 PM, Urban Hakansson <uhakansson at tecore.com>
wrote:

> Michael,
>
> That looks great. That is the result I had expected. I looks like I may
> just have to get a new SBX daughter board.
>
> Q. How does reducing the RX gain setting for the SBX board from 25 to 15
> in usrp_cal_utils.hpp help when calibrating the TX path?
>
> Urban
>
> ------------------------------
> *From: *"Michael West" <michael.west at ettus.com>
> *To: *"Marcus D. Leech" <mleech at ripnet.com>
> *Cc: *"Urban Hakansson" <uhakansson at tecore.com>, "
> USRP-users at lists.ettus.com" <usrp-users at lists.ettus.com>
> *Sent: *Thursday, October 23, 2014 3:35:55 PM
>
> *Subject: *Re: [USRP-users] uhd_cal_tx_iq_balance skips wide frequency
> range
>
> Thanks for the data sheet info, Marcus.  Yes, it looks like the SBX board
> I grabbed was not so good.  I grabbed another SBX and got much better
> results:
>
>            P_(fc-f)/P_(fc+f)(dB)
> c(MHz)   uncalibrated    calibrated
> ------   ------------    ----------
> 700      -35             -50
> 800      -30             -50
> 900      -39             -52
> 1000     -40             -50
> 1100     -38             -52
> 1200     -35             -51
> 1300     -39             -50
> 1400     -40             -52
> 1500     -38             -49
> 1600     -32             -50
> 1700     -30             -50
> 1800     -28             -49
> 1900     -31             -50
> 2000     -34             -50
> 2100     -34             -48
> 2200     -33             -49
> 2300     -36             -47
> 2400     -36             -55
> 2500     -36             -52
> 2600     -37             -55
> 2700     -36             -53
> 2800     -36             -53
> 2900     -35             -53
> 3000     -36             -53
>
> So it looks like getting at least -40 dB of suppression is a very
> reasonable expectation after all.
>
> I did, however, find an issue in the calibration utility.  At the lower
> frequencies (<2 GHz), the signal was saturated and the calibration was
> resulting bad correction values.  To calibrate the board successfully, I
> changed the UHD code to reduce the RX gain setting for the SBX board from
> 25 to 15 in the calibration utilities (changed line 103 of
> host/utils/usrp_cal_utils.hpp to be "usrp->set_rx_gain(15)").
>
> Regards,
> Michael
>
> On Thu, Oct 23, 2014 at 11:00 AM, Marcus D. Leech via USRP-users <
> usrp-users at lists.ettus.com> wrote:
>
>>  On 10/23/2014 01:56 PM, Urban Hakansson wrote:
>>
>> I just read
>> http://www.analog.com/static/imported-files/application_notes/AN-1100.pdf
>> and from what I understand I/Q DAC gain/phase mismatch can also contribute
>> to the undesired sideband I am observing. So it may not be it is the SBX
>> daughter-board (the IQ modulator in particular) that alone creates the
>> undesired sideband, it could be that the N210 motherboard have a mismatched
>> pair of DACs. Is that correct or am I completely missing something?
>>
>> The DAC that is used is a dual synchronized DAC.  I wouldn't expect
>> significant phase errors, but there could be very-small amplitude errors.
>>
>> But the calibration should null all components that are contributing,
>> regardless of their source.
>>
>>
>>
>>
>> ------------------------------
>> *From: *"Marcus D. Leech via USRP-users" <usrp-users at lists.ettus.com>
>> <usrp-users at lists.ettus.com>
>> *To: *usrp-users at lists.ettus.com
>> *Sent: *Thursday, October 23, 2014 10:42:51 AM
>> *Subject: *Re: [USRP-users] uhd_cal_tx_iq_balance skips wide frequency
>> range
>>
>> On 10/23/2014 10:31 AM, Urban Hakansson via USRP-users wrote:
>>
>> 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
>>
>> There's a handy chart on page 5 of:
>>
>> http://www.analog.com/static/imported-files/application_notes/AN-1039.pdf
>>
>> Showing image-suppression characteristics for various phase/amplitude
>> errors
>>
>> The whole field of I/Q imbalance estimation (and the corrections that
>> proceed from those estimates)  is one in which there isn't wide, solid,
>> agreement
>>   on the approach, and the approaches vary depending on application.
>>
>> I do wonder whether sometimes the estimates are thrown-off by LO spurs
>> causing false responses that are unrelated to quadrature balance.
>>
>>
>>  ------------------------------
>> *From: *"Michael West" <michael.west at ettus.com> <michael.west at ettus.com>
>> *To: *"Urban Hakansson" <uhakansson at tecore.com> <uhakansson at tecore.com>
>> *Cc: *"USRP-users at lists.ettus.com" <USRP-users at lists.ettus.com>
>> <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:
>>>
>>>>  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 <%2B1%20410%20872%206315> 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.
>>>
>>>
>>
>>
>>
>> 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 listUSRP-users at lists.ettus.comhttp://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>>
>>
>> --
>> Marcus Leech
>> Principal Investigator
>> Shirleys Bay Radio Astronomy Consortiumhttp://www.sbrac.org
>>
>>
>> _______________________________________________
>> 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.
>>
>>
>>
>> --
>> Marcus Leech
>> Principal Investigator
>> Shirleys Bay Radio Astronomy Consortiumhttp://www.sbrac.org
>>
>>
>> _______________________________________________
>> 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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20141023/be0b94e4/attachment-0002.html>


More information about the USRP-users mailing list