Hello,

I'm testing my application with different attenuation values and I have problem with evaluated level values from IQ data.

It seems like the attenuation step is 1,13dB and not 1dB

AD6676 attenuator should be precise according to datasheet so I believe I´m doing something wrong (I have tested another AD6676)

I have attached matlab script what computes fft from sampled IQ data for different attenuation.

AD6676 parameters: Fif = 88,3MHz, BW = 20MHz, Fadc = 2949MHz F_iq= 245.75MSPS, 16384 samples

Testing signal: -6dBm / 90MHz

Attenuation: 0dB, 10dB, 20dB, 27dB

Testing signal is down converted around 1,7MHz.

Frequency axis is normalized to real frequency values in MHz.

Spectral lines at frequencies 92MHz and 157MHz are spur from signal generator and DC component.

If you compare level values you will see what I described.

Can someone please help me? Do I make bad calculations in Matlab or should I focus on AD6676 setting?

Regards,

Dan

Hello,

Try taking 16-bit IQ output and normalize "sig" waveform to +/-1 before applying FFT. Also, use 20 dB if you are not determining the power of "sig" (i.e. sig^2).