Riching的个人空间 https://blog.eetop.cn/1789212 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

FFT设置介绍

热度 26已有 2198 次阅读| 2024-2-23 10:21 |个人分类:FFT|系统分类:芯片设计

相干采样的设置方法:

根据fs、采样点数N和希望观察到的fin大小来确定输入信号周期数M(满足相干采样),M也代表了输入信号在fft的第几个bin上。做FFT要注意相干采样,以及采样时间要是输入信号周期的整数M倍

image.png

仿真时设置输入频率为 7/64*100MHz,而非10Mhz(这样会泄露,前一个值才是符合相干采样下的fs)。设置FFT的起止时间时注意设置起始时间跳过初始的一段时间。

示例

    我们希望看到开关电路在输入信号频率为2.4Ghz下的FFT情况,设置fs=5Ghz和采样点数为1024,那么可以计算出信号周期数M=fin/fs*N=491(取最近的一个质数)。那么输入频率实际应该fin'=491/1024*5G=2.397Ghz。

电路如下:

image.png

    设置如下:

image.png

    FFT设置如下:起始时间为5u,跳过初始的一段时间;结束时间为起始时间+1024*Ts;自动计算出来采样频率为5Ghz。因为M=491,总的bin数是1024,但有一半是虚频无意义,所以实际图中bin数是512,所以输入信号bin会靠最右,频率为2.397Ghz,幅值为-6.3dB(因为输出峰峰值为0.967V,幅度为0.4835V)。

image.png

    查看谐波情况:由于是差分结构,偶次谐波影响很小,将Harmonics=2,即将二次谐波来计算THD,可以看到二次谐波失真很小。

image.png

    设置Harmonics=3,即将二、三次谐波来计算THD,THD的计算方式是将所考虑的谐波能量/输入信号的能量,在dB单位下就是谐波能量-输入能量=-51.125dB。图中计算值和自动计算值差不多。

image.png


FFT参数设置介绍

    设置参数介绍如下:

  1. Input Wave Type:设置输入波形类型为Time Domain Waveform

  2. FFT Input Method:设置自动计算采样频率、计算FFT的开始或结束时间。选择Calculate Sample Frequency,需要指定start and stop time(注意要相干采样,所以(StopTime - StartTime)=质数*输入信号周期,若总仿真时间已经符合相干采样就设置为整个仿真运行时间),那么自动计算Sample Frequency = SampleCount/(StopTime - StartTime);选择Calculate Start Time,需要指定stop time, sample count/frequency,那么StartTime= StopTime - SampleCount/SampleFreq。Calculate stop Time也是类似。
    注意采样点数通常为2的幂。

  3. Window Type:其中一些窗口类型会增加信号的幅度。 这有助于区分信号中的噪声。当周期数为整数时,可以使用矩形窗口类型。 但是,如果您要模拟 sigma-delta 调制器,则即使 StartTime 和 EndTime 之间出现整数个周期,也可以使用 Hanning 而不是 Rectangular。对于奈奎斯特速率转换器请使用矩形窗口。 对于 Delta-Sigma 转换器,即使 startTime 和 endTime 之间出现整数个周期,也请使用 Cosine2 (Hanning) 窗口而不是矩形窗口。

  4. Start/End Freq:指定指标计算时(而非FFT的频率范围)的频率范围的下限和上限,若要将开始和结束频率值与指定的开始和停止时间同步,请单击 S 按钮。如果是噪声整形的ADC,结束频率应该设置在ADC带宽。
    注意即使修改标计算时的频率范围,左侧仍然显示的是FFT图像的频率范围。默认的上限频率为Fs/2。

image.png

  1. Signal Bins:当您选择窗口类型时,此字段显示所选窗口类型的默认箱数。您可以将信号箱的数量增加到采样数量的一半。默认情况下,此字段显示零以指示矩形窗口类型。Signal Bins的值指定了将FFT 波形的输入信号或谐波信号两侧相邻的信号bins数量,这些信号会被算为输入信号或谐波信号的一部分,所以增加Signal Bins并非一定会增加SNR等指标的表现。Hanning、Hamming、Cosine2 窗口的信号箱为 1。
    Blackman、ExtCosBell、Kaiser、Cosine4 信号箱的信号箱为 2。
    HalfCycleSine、Half3CycleSine、HalfCycleSine3、Half6CycleSine、HalfCycleSine6、Parzen 信号箱的信号箱为 3。
    Bins 用于计算总信号功率、P_Noise 和 P_ Distortion。startBin 和 endBin 值是从起始频率和结束频率获得的。
    如果更改信号箱的数量,输出部分中的测量值也会更改。 例如,如果更改信号箱的值,信号功率和噪声功率也会更改。 这也会改变 SINAD 和 ENOB 值。

  2. Peak Sat. Level:指定 FFT 波形的峰值饱和电平。 在计算指标之前,FFT 的幅度除以Peak Sat. Level。 峰值饱和电平是忽略任何直流偏移并用于 ENOB 计算的满量程跨度。 Peak Sat. Level或 ADC跨度是ADC可以转换的最大幅度。 例如,**如果 ADC 的输入电压范围为 [-500mV, 500mV],则 Peak Sat. 电平为 500mV。**若不指定Peak Sat. Level,则输入0代表Peak Sat. Level=1。感觉是用来根据输入信号大小来归一化FFT图像的。

  3. Harmonics:指定要绘制的波形的谐波数量。 例如,如果该变量为 n,其中 n 应大于 1 并且基频为谐波 1,则在计算谐波功率时将考虑 n 个谐波,用于计算谐波功率。例如,要计算总谐波失真 (THD),如果将谐波值设置为 n,其中 n 大于 1,并且基频(输入信号频率)为谐波 1,则用于计算 THD 的谐波数量为 2,... .,n. 如果n=3,则使用2次和3次谐波来计算THD。若设置为1,则计算的THD=0%。

  4. Analysis Type:将分析类型指定为信号分析或噪声分析。 根据您选择的分析类型,将计算测量值并将其显示在“输出”部分中。 如果您只想使用频域波形中的噪声作为输入,请选择“噪声分析”。 但是,如果您想同时使用频域波形中的信号和噪声作为输入,请选择“信号分析”。

  5. Outputs里的指标计算见help文档

注意点:FFT前要设置仿真步长

    对于连续时间的波形进行fft设置trans-Options-Output-strobeperiod或trans-Options-Time Step-maxstep的值更小,例如1p,应该会使FFT的计算结果更准确,因为根据FFT窗口下面的warning “Signal: ' vin' : The signal x-axis vector values are not uniformely distributed. Data was interpolalated, which would create numerical noise and differences. To remove these errors, use uniform raw data points.”若将strobeperiod设为1/Sample Frequency发现FFT的图像特别顺滑,若仍然有这样的warning,可以进一步设小些。
FFT时通常仿真步长需要小于该采样间隔一半,一定要小于,注意仿真现象是否符合常理,不然还要继续减小步长!!

精度设置方法参考:https://zhuanlan.zhihu.com/p/609893152

    对于离散值作FFT,例如对开关电路的输出端fft,需要卡好fft采样时间和开关的保持态(hold,断开开关时),保持一致,才能减少插值的影响。

    举例说明步长对FFT的影响:

设置maxstep=1p后对输入正弦信号源做FFT,ENOB=35bit:

image.png

不设置时位数只有8bit:

image.png

14

点赞

刚表态过的朋友 (14 人)

发表评论 评论 (4 个评论)

回复 wangxii 2024-6-11 09:59
您好,请问“我们希望看到开关电路在输入信号频率为2.4Ghz下的FFT情况,设置fs=100Mhz和采样点数为1024,那么可以计算出信号周期数M=fin/fsN=491(取最近的一个质数)”,可是我算出来2.4G/100M*1024=24567啊,求解答谢谢!
回复 Riching 2024-6-11 10:42
wangxii: 您好,请问“我们希望看到开关电路在输入信号频率为2.4Ghz下的FFT情况,设置fs=100Mhz和采样点数为1024,那么可以计算出信号周期数M=fin/fsN=491(取最近的一个 ...
谢谢你的评论,fs=5Ghz,文中那处写错了,已修正。
回复 frederickzzz 2024-7-25 14:23
ADC的输出通过一个理想DAC,输出的波形做FFT,看起来ENOB,SNR数值合理,但还是有The signal x-axis vector values are not uniformely distributed. 这样的warning。是否可以不用管他?我想的是这里理想DAC输出的信号不是连续的模拟信号,影响应该不大。求教,谢谢!
回复 Riching 2024-7-30 16:37
frederickzzz: ADC的输出通过一个理想DAC,输出的波形做FFT,看起来ENOB,SNR数值合理,但还是有The signal x-axis vector values are not uniformely distributed. 这样的warn ...
如果结果合理的话不管应该是没问题的,可以试着增加仿真精度看是否结果能显著改善,如果不能那也不用增加仿真精度

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 2

    关注
  • 44

    粉丝
  • 16

    好友
  • 125

    获赞
  • 22

    评论
  • 249

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 01:23 , Processed in 0.026785 second(s), 16 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部