usrp rf calibration utilities and impairments correction
play

USRP RF calibration utilities and impairments correction techniques - PowerPoint PPT Presentation

USRP RF calibration utilities and impairments correction techniques Josh Blum - @ Ettus Research Let us discuss: Filter response IQ imbalance DC level Calibration utilities Two stage tuning RX and TX DSP chain config


  1. USRP RF calibration utilities and impairments correction techniques Josh Blum - @ Ettus Research

  2. Let us discuss: ● Filter response ● IQ imbalance ● DC level ● Calibration utilities ● Two stage tuning

  3. RX and TX DSP chain config frontend ADC CORDIC CIC HB0 HB1 corrections Decimation = FPGA DSP rate/sample rate Decimation % 2 = 1 → 0 HB, CIC only ● ● Rate determines bypassing... Decimation % 2 = 0 → 1 HB in chain ● ● Decimation % 4 = 0 → 2 HB in chain ● frontend DAC CORDIC CIC HB0 HB1 corrections Interpolation = FPGA DSP rate/sample rate Interpolation % 2 = 1 → 0 HB, CIC only ● ● Rate determines bypassing... Interpolation % 2 = 0 → 1 HB in chain ● ● Interpolation % 4 = 0 → 2 HB in chain ●

  4. Filter Response -3dB -3dB Fs/2 Fs/2 HB CIC

  5. IQ Imbalance distortion Magnitude imbalance caused by... ● Two types of imbalance: Mismatch in amplitude between I and Q – magnitude and phase Phase imbalance caused by... ● 90 degrees + epsilon phase between I and Q mixer – Possible filter group delay mismatch – See Matt's Impairments Presentation for more... ●

  6. IQ Imbalance and correction IQ imbalance – single test tone I in + I out X A linear correction for the imbalance X Q in Q out +

  7. DC level distortion ● Some DC level at the mixer, causes... – LO in the spectrum, (darn) ● See Matt's Impairments Presentation for more...

  8. TX DC level correction Simple constant TX-I in TX-I out subtraction for I and Q - dc_lvl_i TX-Q in TX-Q out - dc_lvl_q

  9. RX DC level correction No self calibration utility ● void set_auto_dc_offset( – Tune the frontend const bool enb, size_t chan = 0) – Accumulator settles – Freeze the accumulator void set_dc_offset( Other options ● const std::complex<double> &offset, size_t chan = 0) – Disable the accumulator – Accumulator always runs – User value for accumulator RX out RX in - Avg

  10. The calibration utilities ● The cal utilities use leakage on a transceiver daughter-board to perform self-calibration ● The following utilities sweep across frequency: – Calibrate for RX IQ imbalance – Calibrate for TX IQ imbalance – Calibrate for TX DC level ● Calibration saved in a csv and loaded at runtime http://files.ettus.com/uhd_docs/manual/html/calibration.html

  11. Using an IF to mitigate distortions Ant samples RF Mixer CORDIC freq - Tuning with an LO offset example: lo_off + lo_off tr = uhd.tune_request(freq, lo_off) epsilon usrp.set_center_freq(tr) Put that tune request right into GRC! Epsilon is a small error in frontend frequency approximation of target frequency http://files.ettus.com/uhd_docs/manual/html/general.html

  12. Disadvantages to IF Bandwidth issues ● – How far can the CORDIC tune? dsp_rate/2 – bw/2 – How much analog baseband bandwidth? Transmitting out of band distortions ● – Calibration utils can still help here! – Mitigate w/ external frontend filters

  13. FIN ● Conclusions – Impairments happen, but... – Multiple ways to mitigate ● Questions?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend