usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

uhd_cal_tx_iq_balance skips wide frequency range

UH
Urban Hakansson
Thu, Oct 9, 2014 3:57 PM

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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com), then delete the message in its entirety. Thank you.
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@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@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@tecore.com), then delete the message in its entirety. Thank you.
MW
Michael West
Thu, Oct 9, 2014 7:03 PM

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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com), then delete the message
in its entirety. Thank you.


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

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@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@tecore.com > > > Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 > 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com > > Urban Hakansson > Senior Software Engineer > Tecore Networks > Phone: +1 410 872 6315 > Fax: +1 410 872 6010 > Email: uhakansson@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@tecore.com), then delete the message > in its entirety. Thank you. > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > >
UH
Urban Hakansson
Tue, Oct 21, 2014 1:58 PM

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

----- Original Message -----

From: "Michael West" michael.west@ettus.com
To: "Urban Hakansson" uhakansson@tecore.com
Cc: "USRP-users@lists.ettus.com" usrp-users@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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you.


USRP-users mailing list
USRP-users@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@tecore.com), then delete the message in its entirety. Thank you.
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 ----- Original Message ----- From: "Michael West" <michael.west@ettus.com> To: "Urban Hakansson" <uhakansson@tecore.com> Cc: "USRP-users@lists.ettus.com" <usrp-users@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@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@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you. _______________________________________________ USRP-users mailing list USRP-users@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@tecore.com), then delete the message in its entirety. Thank you.
MW
Michael West
Tue, Oct 21, 2014 11:51 PM

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@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@ettus.com
*To: *"Urban Hakansson" uhakansson@tecore.com
*Cc: *"USRP-users@lists.ettus.com" usrp-users@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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com), then delete the
message in its entirety. Thank you.


USRP-users mailing list
USRP-users@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@tecore.com), then delete the message
in its entirety. Thank you.

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@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@ettus.com> > *To: *"Urban Hakansson" <uhakansson@tecore.com> > *Cc: *"USRP-users@lists.ettus.com" <usrp-users@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@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@tecore.com >> >> >> Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 >> 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com >> >> Urban Hakansson >> Senior Software Engineer >> Tecore Networks >> Phone: +1 410 872 6315 >> Fax: +1 410 872 6010 >> Email: uhakansson@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@tecore.com), then delete the >> message in its entirety. Thank you. >> _______________________________________________ >> USRP-users mailing list >> USRP-users@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@tecore.com), then delete the message > in its entirety. Thank you. > >
UH
Urban Hakansson
Wed, Oct 22, 2014 3:37 PM

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) = rexp(j2pif*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) = rexp(j2pi(fc+f)t), and the undesired replica x'(t) = r'exp(j2pi*(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
----- Original Message -----

From: "Michael West" michael.west@ettus.com
To: "Urban Hakansson" uhakansson@tecore.com
Cc: "USRP-users@lists.ettus.com" usrp-users@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@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@ettus.com >
To: "Urban Hakansson" < uhakansson@tecore.com >
Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you.


USRP-users mailing list
USRP-users@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@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@tecore.com), then delete the message in its entirety. Thank you.
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 ----- Original Message ----- From: "Michael West" <michael.west@ettus.com> To: "Urban Hakansson" <uhakansson@tecore.com> Cc: "USRP-users@lists.ettus.com" <usrp-users@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@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@ettus.com > To: "Urban Hakansson" < uhakansson@tecore.com > Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you. _______________________________________________ USRP-users mailing list USRP-users@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@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@tecore.com), then delete the message in its entirety. Thank you.
MW
Michael West
Thu, Oct 23, 2014 2:51 AM

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@ettus.com and they will help you further.

Best regards,
Michael

On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson uhakansson@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) = rexp(j2pif*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) = rexp(j2pi(fc+f)t),
and the undesired replica x'(t) = r'exp(j2
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@ettus.com
*To: *"Urban Hakansson" uhakansson@tecore.com
*Cc: *"USRP-users@lists.ettus.com" usrp-users@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@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@ettus.com
*To: *"Urban Hakansson" uhakansson@tecore.com
*Cc: *"USRP-users@lists.ettus.com" usrp-users@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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com), then
delete the message in its entirety. Thank you.


USRP-users mailing list
USRP-users@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@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@tecore.com), then delete the message
in its entirety. Thank you.

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@ettus.com and they will help you further. Best regards, Michael On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson <uhakansson@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@ettus.com> > *To: *"Urban Hakansson" <uhakansson@tecore.com> > *Cc: *"USRP-users@lists.ettus.com" <usrp-users@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@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@ettus.com> >> *To: *"Urban Hakansson" <uhakansson@tecore.com> >> *Cc: *"USRP-users@lists.ettus.com" <usrp-users@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@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@tecore.com >>> >>> >>> Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 >>> 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com >>> >>> Urban Hakansson >>> Senior Software Engineer >>> Tecore Networks >>> Phone: +1 410 872 6315 >>> Fax: +1 410 872 6010 >>> Email: uhakansson@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@tecore.com), then >>> delete the message in its entirety. Thank you. >>> _______________________________________________ >>> USRP-users mailing list >>> USRP-users@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@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@tecore.com), then delete the message > in its entirety. Thank you. > >
UH
Urban Hakansson
Thu, Oct 23, 2014 2:31 PM

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@ettus.com
To: "Urban Hakansson" uhakansson@tecore.com
Cc: "USRP-users@lists.ettus.com" usrp-users@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@ettus.com and they will help you further.

Best regards,
Michael

On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson < uhakansson@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) = rexp(j2pif*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) = rexp(j2pi(fc+f)t), and the undesired replica x'(t) = r'exp(j2pi*(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@ettus.com >
To: "Urban Hakansson" < uhakansson@tecore.com >
Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@ettus.com >
To: "Urban Hakansson" < uhakansson@tecore.com >
Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you.


USRP-users mailing list
USRP-users@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@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@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@tecore.com), then delete the message in its entirety. Thank you.
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@ettus.com> To: "Urban Hakansson" <uhakansson@tecore.com> Cc: "USRP-users@lists.ettus.com" <usrp-users@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@ettus.com and they will help you further. Best regards, Michael On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson < uhakansson@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@ettus.com > To: "Urban Hakansson" < uhakansson@tecore.com > Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@ettus.com > To: "Urban Hakansson" < uhakansson@tecore.com > Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you. _______________________________________________ USRP-users mailing list USRP-users@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@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@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@tecore.com), then delete the message in its entirety. Thank you.
MD
Marcus D. Leech
Thu, Oct 23, 2014 2:42 PM

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@ettus.com
*To: *"Urban Hakansson" uhakansson@tecore.com
*Cc: *"USRP-users@lists.ettus.com" usrp-users@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@ettus.com
mailto:support@ettus.com and they will help you further.

Best regards,
Michael

On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson
<uhakansson@tecore.com mailto:uhakansson@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
 2400to small to measure (-infinity)-24
 2500to small to measure (-infinity)-27
 2600to small to measure (-infinity)-29
 2700to small to measure (-infinity)-35
 2800to small to measure (-infinity)to small to measure (-infinity)
 2900to small to measure (-infinity)to small to measure (-infinity)
 3000to 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@ettus.com
 <mailto:michael.west@ettus.com>>
 *To: *"Urban Hakansson" <uhakansson@tecore.com
 <mailto:uhakansson@tecore.com>>
 *Cc: *"USRP-users@lists.ettus.com
 <mailto:USRP-users@lists.ettus.com>" <usrp-users@lists.ettus.com
 <mailto:usrp-users@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@tecore.com <mailto:uhakansson@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)
     ......
     3000to 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@ettus.com
     <mailto:michael.west@ettus.com>>
     *To: *"Urban Hakansson" <uhakansson@tecore.com
     <mailto:uhakansson@tecore.com>>
     *Cc: *"USRP-users@lists.ettus.com
     <mailto:USRP-users@lists.ettus.com>"
     <usrp-users@lists.ettus.com <mailto:usrp-users@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@lists.ettus.com
     <mailto:usrp-users@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 <tel:%2B1%20410%20872%206315>
         Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010>
         Email: uhakansson@tecore.com <mailto:uhakansson@tecore.com>


         Urban Hakansson Senior Software Engineer Tecore Networks
         Phone: +1 410 872 6315 <tel:%2B1%20410%20872%206315> Fax:
         +1 410 872 6010 <tel:%2B1%20410%20872%206010> Email:
         uhakansson@tecore.com <mailto:uhakansson@tecore.com>

         Urban Hakansson
         Senior Software Engineer
         Tecore Networks
         Phone: +1 410 872 6315 <tel:%2B1%20410%20872%206315>
         Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010>
         Email: uhakansson@tecore.com <mailto:uhakansson@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@tecore.com
         <mailto:sysadmin@tecore.com>), then delete the message in
         its entirety. Thank you.
         _______________________________________________
         USRP-users mailing list
         USRP-users@lists.ettus.com <mailto:USRP-users@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@tecore.com <mailto:sysadmin@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@tecore.com <mailto:sysadmin@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@tecore.com), then delete the message in its entirety. Thank you.


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

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@ettus.com> > *To: *"Urban Hakansson" <uhakansson@tecore.com> > *Cc: *"USRP-users@lists.ettus.com" <usrp-users@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@ettus.com > <mailto:support@ettus.com> and they will help you further. > > Best regards, > Michael > > On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson > <uhakansson@tecore.com <mailto:uhakansson@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 > 2400to small to measure (-infinity)-24 > 2500to small to measure (-infinity)-27 > 2600to small to measure (-infinity)-29 > 2700to small to measure (-infinity)-35 > 2800to small to measure (-infinity)to small to measure (-infinity) > 2900to small to measure (-infinity)to small to measure (-infinity) > 3000to 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@ettus.com > <mailto:michael.west@ettus.com>> > *To: *"Urban Hakansson" <uhakansson@tecore.com > <mailto:uhakansson@tecore.com>> > *Cc: *"USRP-users@lists.ettus.com > <mailto:USRP-users@lists.ettus.com>" <usrp-users@lists.ettus.com > <mailto:usrp-users@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@tecore.com <mailto:uhakansson@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) > ...... > 3000to 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@ettus.com > <mailto:michael.west@ettus.com>> > *To: *"Urban Hakansson" <uhakansson@tecore.com > <mailto:uhakansson@tecore.com>> > *Cc: *"USRP-users@lists.ettus.com > <mailto:USRP-users@lists.ettus.com>" > <usrp-users@lists.ettus.com <mailto:usrp-users@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@lists.ettus.com > <mailto:usrp-users@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 <tel:%2B1%20410%20872%206315> > Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010> > Email: uhakansson@tecore.com <mailto:uhakansson@tecore.com> > > > Urban Hakansson Senior Software Engineer Tecore Networks > Phone: +1 410 872 6315 <tel:%2B1%20410%20872%206315> Fax: > +1 410 872 6010 <tel:%2B1%20410%20872%206010> Email: > uhakansson@tecore.com <mailto:uhakansson@tecore.com> > > Urban Hakansson > Senior Software Engineer > Tecore Networks > Phone: +1 410 872 6315 <tel:%2B1%20410%20872%206315> > Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010> > Email: uhakansson@tecore.com <mailto:uhakansson@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@tecore.com > <mailto:sysadmin@tecore.com>), then delete the message in > its entirety. Thank you. > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com <mailto:USRP-users@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@tecore.com <mailto:sysadmin@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@tecore.com <mailto:sysadmin@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@tecore.com), then delete the message in its entirety. Thank you. > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com -- Marcus Leech Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org
UH
Urban Hakansson
Thu, Oct 23, 2014 5:56 PM

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?

----- Original Message -----

From: "Marcus D. Leech via USRP-users" usrp-users@lists.ettus.com
To: usrp-users@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.

<blockquote>

----- Original Message -----

From: "Michael West" michael.west@ettus.com
To: "Urban Hakansson" uhakansson@tecore.com
Cc: "USRP-users@lists.ettus.com" usrp-users@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@ettus.com and they will help you further.

Best regards,
Michael

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

<blockquote>

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) = rexp(j2pif*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) = rexp(j2pi(fc+f)t), and the undesired replica x'(t) = r'exp(j2pi*(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@ettus.com >
To: "Urban Hakansson" < uhakansson@tecore.com >
Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@ettus.com >
To: "Urban Hakansson" < uhakansson@tecore.com >
Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@tecore.com

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

Urban Hakansson
Senior Software Engineer
Tecore Networks
Phone: +1 410 872 6315
Fax: +1 410 872 6010
Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you.


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

</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@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@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@tecore.com ), then delete the message in its entirety. Thank you.


USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

</blockquote>

--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org


USRP-users mailing list
USRP-users@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@tecore.com), then delete the message in its entirety. Thank you.
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? ----- Original Message ----- From: "Marcus D. Leech via USRP-users" <usrp-users@lists.ettus.com> To: usrp-users@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. <blockquote> ----- Original Message ----- From: "Michael West" <michael.west@ettus.com> To: "Urban Hakansson" <uhakansson@tecore.com> Cc: "USRP-users@lists.ettus.com" <usrp-users@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@ettus.com and they will help you further. Best regards, Michael On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson < uhakansson@tecore.com > wrote: <blockquote> 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@ettus.com > To: "Urban Hakansson" < uhakansson@tecore.com > Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@ettus.com > To: "Urban Hakansson" < uhakansson@tecore.com > Cc: " USRP-users@lists.ettus.com " < usrp-users@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@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@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@tecore.com Urban Hakansson Senior Software Engineer Tecore Networks Phone: +1 410 872 6315 Fax: +1 410 872 6010 Email: uhakansson@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@tecore.com ), then delete the message in its entirety. Thank you. _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com </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@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@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@tecore.com ), then delete the message in its entirety. Thank you. _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com </blockquote> -- Marcus Leech Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org _______________________________________________ USRP-users mailing list USRP-users@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@tecore.com), then delete the message in its entirety. Thank you.
MD
Marcus D. Leech
Thu, Oct 23, 2014 6:00 PM

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@lists.ettus.com
*To: *usrp-users@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@ettus.com>
 *To: *"Urban Hakansson" <uhakansson@tecore.com>
 *Cc: *"USRP-users@lists.ettus.com" <usrp-users@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@ettus.com <mailto:support@ettus.com> and they will
 help you further.

 Best regards,
 Michael

 On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson
 <uhakansson@tecore.com <mailto:uhakansson@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
     2400to small to measure (-infinity)-24
     2500to small to measure (-infinity)-27
     2600to small to measure (-infinity)-29
     2700to small to measure (-infinity)-35
     2800to small to measure (-infinity)to small to measure (-infinity)
     2900to small to measure (-infinity)to small to measure (-infinity)
     3000to 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@ettus.com
     <mailto:michael.west@ettus.com>>
     *To: *"Urban Hakansson" <uhakansson@tecore.com
     <mailto:uhakansson@tecore.com>>
     *Cc: *"USRP-users@lists.ettus.com
     <mailto:USRP-users@lists.ettus.com>"
     <usrp-users@lists.ettus.com <mailto:usrp-users@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@tecore.com <mailto:uhakansson@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)
         ......
         3000to 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@ettus.com
         <mailto:michael.west@ettus.com>>
         *To: *"Urban Hakansson" <uhakansson@tecore.com
         <mailto:uhakansson@tecore.com>>
         *Cc: *"USRP-users@lists.ettus.com
         <mailto:USRP-users@lists.ettus.com>"
         <usrp-users@lists.ettus.com
         <mailto:usrp-users@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@lists.ettus.com
         <mailto:usrp-users@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 <tel:%2B1%20410%20872%206315>
             Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010>
             Email: uhakansson@tecore.com
             <mailto:uhakansson@tecore.com>


             Urban Hakansson Senior Software Engineer Tecore
             Networks Phone: +1 410 872 6315
             <tel:%2B1%20410%20872%206315> Fax: +1 410 872 6010
             <tel:%2B1%20410%20872%206010> Email:
             uhakansson@tecore.com <mailto:uhakansson@tecore.com>

             Urban Hakansson
             Senior Software Engineer
             Tecore Networks
             Phone: +1 410 872 6315 <tel:%2B1%20410%20872%206315>
             Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010>
             Email: uhakansson@tecore.com
             <mailto:uhakansson@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@tecore.com
             <mailto:sysadmin@tecore.com>), then delete the message
             in its entirety. Thank you.
             _______________________________________________
             USRP-users mailing list
             USRP-users@lists.ettus.com
             <mailto:USRP-users@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@tecore.com
         <mailto:sysadmin@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@tecore.com <mailto:sysadmin@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@tecore.com), then delete the message in its entirety.
 Thank you.


 _______________________________________________
 USRP-users mailing list
 USRP-users@lists.ettus.com
 http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org


USRP-users mailing list
USRP-users@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@tecore.com), then delete the message in its entirety. Thank you.

--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

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@lists.ettus.com> > *To: *usrp-users@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@ettus.com> > *To: *"Urban Hakansson" <uhakansson@tecore.com> > *Cc: *"USRP-users@lists.ettus.com" <usrp-users@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@ettus.com <mailto:support@ettus.com> and they will > help you further. > > Best regards, > Michael > > On Wed, Oct 22, 2014 at 8:37 AM, Urban Hakansson > <uhakansson@tecore.com <mailto:uhakansson@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 > 2400to small to measure (-infinity)-24 > 2500to small to measure (-infinity)-27 > 2600to small to measure (-infinity)-29 > 2700to small to measure (-infinity)-35 > 2800to small to measure (-infinity)to small to measure (-infinity) > 2900to small to measure (-infinity)to small to measure (-infinity) > 3000to 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@ettus.com > <mailto:michael.west@ettus.com>> > *To: *"Urban Hakansson" <uhakansson@tecore.com > <mailto:uhakansson@tecore.com>> > *Cc: *"USRP-users@lists.ettus.com > <mailto:USRP-users@lists.ettus.com>" > <usrp-users@lists.ettus.com <mailto:usrp-users@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@tecore.com <mailto:uhakansson@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) > ...... > 3000to 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@ettus.com > <mailto:michael.west@ettus.com>> > *To: *"Urban Hakansson" <uhakansson@tecore.com > <mailto:uhakansson@tecore.com>> > *Cc: *"USRP-users@lists.ettus.com > <mailto:USRP-users@lists.ettus.com>" > <usrp-users@lists.ettus.com > <mailto:usrp-users@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@lists.ettus.com > <mailto:usrp-users@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 <tel:%2B1%20410%20872%206315> > Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010> > Email: uhakansson@tecore.com > <mailto:uhakansson@tecore.com> > > > Urban Hakansson Senior Software Engineer Tecore > Networks Phone: +1 410 872 6315 > <tel:%2B1%20410%20872%206315> Fax: +1 410 872 6010 > <tel:%2B1%20410%20872%206010> Email: > uhakansson@tecore.com <mailto:uhakansson@tecore.com> > > Urban Hakansson > Senior Software Engineer > Tecore Networks > Phone: +1 410 872 6315 <tel:%2B1%20410%20872%206315> > Fax: +1 410 872 6010 <tel:%2B1%20410%20872%206010> > Email: uhakansson@tecore.com > <mailto:uhakansson@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@tecore.com > <mailto:sysadmin@tecore.com>), then delete the message > in its entirety. Thank you. > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > <mailto:USRP-users@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@tecore.com > <mailto:sysadmin@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@tecore.com <mailto:sysadmin@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@tecore.com), then delete the message in its entirety. > Thank you. > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > > -- > Marcus Leech > Principal Investigator > Shirleys Bay Radio Astronomy Consortium > http://www.sbrac.org > > _______________________________________________ > USRP-users mailing list > USRP-users@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@tecore.com), then delete the message in its entirety. Thank you. -- Marcus Leech Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org