[USRP-users] uhd_cal_tx_iq_balance skips wide frequency range

Michael West michael.west at ettus.com
Thu Oct 23 15:35:55 EDT 2014


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20141023/361aee0d/attachment-0002.html>


More information about the USRP-users mailing list