AD9375 Observation Receiver Distortion

we are sending a real sinewave (i.e. I=sine, Q=0) with 8192 samples (exact 1 period) as a test signal in the Windows TES over the AD9375 TX and receive it (attenuated) via its observation RX (2 mio. samples). In the recorded data file, we see amplitude steps as well as sine discontinuities/phase steps.

TX input data (I):

Received output data (I) with amplitude steps:

Received output data (I) with phase step:

Do you have any idea what is the reason and how to avoid this? Maybe a problem with the Zynq design or the TES?

What profile (sampling rate ) are you using? Can you share your input IQ file.?

You can see time domain in TES GUI below the frequency domain plot and use the Zoom function to see the waveform. For a Tone generated from GUI I am not able to see the distortions what you are observing in ORX time domain plot.

Hi Sripad, I think the current test input (8192 samples per period, sampled at 122.88 MSps) already results in a 15 kHz tone.

I also tried other signals with higher frequency plus an LTE OFDM signal, and I can see these kind of steps there, too - but they are much harder to find and to analyze. That is why I used this minimal example to post it here in the forum.

It looks for me as there are some samples dropped either in the Tx path or the ORx path (The dropping of samples results in a "phase shift" in the received data which can cause an I or Q amplitude step after quadrature down-conversion). Maybe some filters cause the trouble, or an AGC function? Or is the Tx and ORx sampling clock somehow asynchronous?

Hi Vinod, sorry, I don't understand what you mean. I am sending a 15 kHz sine, so the offset with respect to the carrier is not zero but 15 kHz. Please see a zoomed-in version of the spectrum of the ORx in the TES (peaks as you can see are at +/- 15 kHz):

As I said, I also tried other signals, the problem also occurred but is harder to see.

As said before, there might be samples dropped (or asynchronous) somewhere in the path.

Unfortunately, this is a big problem as the received signals then cannot be used for calibration purposes.

Hi, I think I found the (or at least one) problem. It seems to work if I disable all quadrature error correction (QEC) tracking in both Tx and ORx. Unfortunately, this does not work in the Windows TES GUI (I can disable it for Tx and Rx, but not for ORx). Is it somehow possible to "manually" disable QEC tracking for the ORx from the TES?

It would be nice if the feature was added for Windows TES in a future release. In the Linux IIO Scope software with the AD9375 plugin, this feature is already available.

Hi jmueller, do you still see the problem if you use a CW instead of a real-valued sinusoid? (A CW being: I = cos, Q = sin). The ORx QEC algorithm may have trouble with real tones (which have symmetric spectrum that makes it impossible to estimate quadrature imbalance).

sripad: I can confirm that this workaround to switch of QEC works - the amplitude steps are gone then.@mrtn: Further, if I use a more "realistic" signal, the QEC also works correctly.

However, I still see some unexplainable phase shifts with a 10 ms OFDM signal.Problem can be in the AD9375 itself, in the FPGA design, or in the TES. I will provide a minimal example soon for further investigation.

A remark, I found a bug in the TES: If I try to save a record of the ORx with more than 2^21 (=~2000000) samples, the generated data file is zero byte.

after some more investigations, I still see the phase steps. These steps occur relatively rarely, like once in a millisecond, thus they can be observed only with long data streams. However, this phase steps make the received signal from ORx useless for calibration.

I prepared a minimal example (I can also provide other examples, but they are less easy to analyze):