This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS5482:获取 FFT 中的谐波峰值

Guru**** 1495795 points
Other Parts Discussed in Thread: ADS5482, CDCE62005
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1008139/ads5482-getting-harmonic-peak-in-fft

器件型号:ADS5482
主题中讨论的其他器件: CDCE62005

您好 TI 团队  

我们在设计中使用 ADS5482 ADC。 我们的载波信号带宽为500kHz 至20Mhz。 基带数据为10kHz 和1V。 ADC 时钟频率为105Mhz (LVDS)、我们以105MSPS 运行 ADC。 在 ADC 输入端、我们的信号是干净的、但当我们绘制 FFT 时、我们将得到谐波。 用于参考的 PFB 图像。

PFB 我们的参考原理图

PFB 我们的 PLL。

请建议一些复习点来解决此问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 TI 团队  

    我们已将以下八倍频程代码用于 FFT 图

    CLC;
    全部清除;
    关闭所有;
    pkg LOAD 信号;

    ADC_SAMPLING_RATE = 3*(10^2);
    CIC 抽取因子= 1;
    FIR_C抽 取因子= 1;
    FX = ADC_SAMPLING_RATE /CIC_C抽 取因子;

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    file_name ='rcv_10_0_0_2.7_0_0_mod1_without _Fltr_B2.bin'

    fID = fopen (file_name、'r');
    x = fread (fid、inf、'int32'、0、'b');
    fclose (fid);
    Q = x (1:2:端1);
    I = x (2:2:端);

    z = i+j*q;
    NO_OD_SAples =长度(z)

    ##abs_z = abs (z);每次采样的信号幅度百分比
    ##%计算 rms 值、然后缩放到 FPGA 范围、然后将该峰值转换为峰值
    #rms_z =(rms (ABS_z)/2^15)将 rms 值转换为 z 峰值后的信号峰值百分比
    ##max_z = max (z)/2^15 %最大复数值 z
    ##ABS_max_z =最大值的绝对(max_z)%幅度
    ##max_abs_z = max (abs_z)/2^15 %样本幅度最大值
    ##avg_z =信号的平均值(z)%直流值
    ##avg_abs_z = abs (avg_z)/2^15 %平均直流值
    ##
    ##TRUE_rms = rms_z - avg_abs_z %接收电压电平
    ##tru_pk_TO_pk = tru_rms * sqrt (2)*(1.65/2)
    ##

    fs = ADC_SAMPLING_RATE;以 kSPS 为单位的%SAMPLING 频率。
    N = 1024;用于频谱图的 FFT 点数%。
    y0=20*log10(abs(fftshift (FFT(z/2^15, n)));
    fshift0 =(-n/2:n/2-1)*(fs/n);%零中心频率范围


    y21 = z (1:100);
    时间=(1:100);
    Y21 = Y21/(2^15);
    fShift21 =(1:1000);

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


    ##子图(1、2、1)、图(时间、实数(Y21))、标题('DC 时域信号');
    ##网格次要
    图(fshift0、y0)、title ('ch 1 FFT 图');
    网格次要;
    SaveAs (1、strcat (file_name、"fft1.png"));



    时间=(1:1:NO_OD_SAples);
    ##图(时间、I/2^15);
    ##保持;
    图(时间(1:1000)、q (1:1000)/2^15);
    稍等;
    图(时间(1:1000)、I (1:1000)/2^15)
    标题("ch 1 DDC 时域信号");
    网格次要;
    SaveAs (2、strcat (file_name、"time2.png"));

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Balvan、

    CDCE6200器件、LVPECL、LVDS 等的时钟使用哪种模式? 如果您使用1MHz 的单音调、ADC 数据会是什么样的?

    输入是否有可能使 ADC 饱和?  降低采样时钟速度是否有帮助? 您可能还需要尝试移除时钟输入信号上的100欧姆端接电阻器。  

    此致、

    Jim   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Jim  

    时钟模式为 LVDS。 我尝试移除时钟之间的100R 电阻器、但没有任何作用。  

    单音也失真。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    I m 向 ADC 传输1.5Vppd 输入、因此不会出现饱和

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Balvan、

    您能否提供数据文件"rcv_10_0_0_2.7_0_0_0_mod1_without _Fltr_B2.bin"供我们查看。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Balvan、

    我认为您的主要问题是输入时钟振幅、它需要至少为1.5Vpp。 对于 LVDS 输入、我认为您不会达到这个水平。 我建议使用 CDCE62005中的 LVPECL。 在此模式下、通过为 R251和 R242使用150欧姆电阻来安装所需的端接。

    此致、

    Jim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉耽误你的回复。您可以分享您的电子邮件 ID、以便我给您发邮件。 因为我无法在这里附加该文件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的 Jim、我们的时钟振幅为1.2Vppd。但在数据表中未提及它至少应为1.5Vppd。 他们提到了1Vppd 至3Vppd 范围。 此外、在数据表中、为了获得良好的性能、它被写入时钟应该为1vppd。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Balvan、

    请将数据发送到 PM 中的电子邮件地址。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请参阅下面的内容。 最小时钟振幅为1.5V 而非1V。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Jim CLK 说明部分、它被写入1Vpp 到3Vpp。

    请参见下面的  

    好的、我将尝试 LVPECL 标准并告知您结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    有更新吗? 因为我已经向您发送了该文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Balvan、

    对拖延表示歉意。

    下面显示了导入到 HSDC Pro 中后"rcv_20_1.5Vpp_G1_50R_mod1_b2.bin"数据的外观。 当捕获此数据时、输入似乎是3.5MHz 信号。 请注意、该图使用 int32作为 CSV 数据格式、HSDC Pro 接受 int16作为数据格式、这种差异会导致基频向下移动到-100dBFS 区域。

    HSDC Pro Capture

    以下代码用于将二进制文件转换为 CSV、以便使用 MATLAB 导入到 HSDC Pro 中。 我建议您将数据作为 Int16进行捕获和解析(因为使用 Int32没有好处)、然后导入 HSDC Pro 以验证数据捕获方法没有问题、然后尝试自行绘制数据。 由于我不熟悉 Octave、因此我无法通过查看您的代码来进一步帮助您。  我希望这有助于您找到并解决问题。  

    file_name = 'rcv_20_1.5Vpp_G1_50R_mod1_B2.bin';
    fileID = fopen(file_name);
    X = fread(fileID,'int32');
    fclose(fileID);
    
    window = 524288;
    
    i = X(2:2:end);
    q = X(1:2:end-1);
    
    i = i(1:window);
    q = q(1:window);
    
    writecell(num2cell([int32(i), int32(q)]), 'csv_data.csv') % Save to csv file
    
    % NOTE: HSDC Pro only accepts the int16 data format. If initial binary data is parsed into int16, the data does not plot correctly. Resolve this parsing issue and plot using HSDC Pro before attempting to plot using Octave code.

    此致