【ADC】FFT分析中的基本概念与相干采样

一、频域分辨率与频谱泄露

对于FFT转换,采集N个点的时域信号,会转换成N个点的频域信号。不过,FFT里面包含一个镜像,高于采样率一半的区间都是镜像频率,是冗余的,一般都隐藏起来。

FFT分辨率等于采样率除以采样点数,分辨率体现在FFT能侦测到的最小频率的变化。

在这里插入图片描述

下面几张图是当输入信号频率为分辨率整数倍时的计算实例。

在这里插入图片描述
在这里插入图片描述

如果输入信号频率不是频率分辨率的整数倍,就会发生频谱泄露,将会很难区分临近点是噪声还是信号。

在这里插入图片描述


二、加窗函数改善频谱泄露

加合适的窗函数将时域信号的两端归零,这样无限复制的时候就不会产生不连续,因为信号都是零,这样就能把频谱泄露降到最低。

在这里插入图片描述

所加的窗的频率响应类似于带通滤波器,窗口的主瓣通过基频,而旁瓣将泄露的频谱衰减。理想情况下,主瓣应该让通带信号完全通过,而旁瓣则衰减阻带信号,但二者往往不可兼得。阻带衰减多的通带会比较宽,对于ADC来说,宽的通带不是问题,所以下图蓝色波形的窗可以获得比较低的频谱泄露。

在这里插入图片描述


三、相干采样

下面介绍了一种称为相干采样的测量技术。此技术可用于获得最佳的 ADC 特性结果。换句话说,相干采样消除了与 FFT 离散性质相关的误差源,并允许对高性能数据转换器进行特性分析。还介绍了一种测试方法,该方法使用外部滤波器将输入信号的噪声和失真降低到允许准确表征数据转换器的水平。

在这里,通过一个数据转换器特性分析系统的示例。采样率为每秒一兆个样本,并进行了 256 次采样。输入频率为 62.5 千赫。

在这里插入图片描述

由于输入频率是频率分辨率的精确整数倍,因此没有频谱泄漏。这称为相干采样。 基于此信息,似乎一种好的 ADC 特性描述方法是将输入频率调整为频率分辨率的整数倍,以便进行相干采样。然而,这通常不太实用。

大多数设备的实际情况是,信号发生器输出频率和微控制器时钟频率不具备实现相干采样所需的精度和稳定性。注意,正弦波发生器调整为 62.5 千赫,但实际输出频率为 62.503 千赫。此外,该发生器的输出频率会随时间和温度而漂移。

在这里插入图片描述

微控制器时钟速率也存在类似现象。理想情况下,采样率设置为每秒 1 兆样本。但实际上,它为 0.9997 兆赫,并且会随着时间和温度而漂移。通过数学计算得出的最终结果不再具有相干采样,并且 FFT 将具有频谱泄漏。因此,这种简单的方法不能用于相干采样。

在实际系统中实现相干采样的一种方法是将微控制器的频率与信号发生器同步。 因此,微控制器采样率将跟踪并消除函数发生器中的误差,这样即使时钟漂移,输入频率也将始终保持频率分辨率的整数倍。因此,来自微控制器的时钟也应用于信号发生器上的同步输入。尽管将信号发生器与微控制器同步在理论上解决了相干采样问题,但高精度 PLL 时钟发生器和高端信号发生器通常用于此类特性分析,因为时钟抖动和漂移会引入额外的误差。注意,这种特性分析通常需要高分辨率转换器,分辨率为 18 位或更高。

在这里插入图片描述

ADC 特性分析中的另一个重要考虑因素是输入信号的精度。许多常见信号发生器的分辨率为 12 位或更低。这些设备不具备能够测试高性能或转换器的 THD 和 SNR。一些高端信号发生器可能具有非常好的 THD 和 SNR,但这些可能很昂贵。从常见信号发生器获取高保真信号的一种方法是在信号发生器的输出端使用带通滤波器。 下图显示信号发生器的输出具有相对较高的本底噪声和显著的谐波。注意,函数发生器已调整为生成 1 千赫兹正弦波。该正弦波被施加到中心频率为 1 千赫兹的带通滤波器。滤波器上的通带将通过基波,而阻带将显著衰减噪声和谐波。通常,使用高阶滤波器来最大限度地衰减谐波中的噪声。使用此方法。可以使用通用信号发生器生成足以测试 18 到 20 转换器的输入信号。

在这里插入图片描述

一般来说,增加样本数量会降低频谱泄漏的影响。但是,取更多样本会增加测量时间。对于非常长的测量时间,信号发生器输出频率可能会漂移,这将对 SNR 产生影响。

### SAR ADC 仿真 FFT 分析方法教程 #### 设置相干采样条件 对于SAR ADCFFT分析,首先需要设定相干采样条件。具体来说,在已知采样频率\( f_s \)的情况下,输入信号频率 \( f_{in} \) 应按照下述关系设置: \[ f_{in}=M\cdot\frac{f_s}{N} \] 其中,\( M \) 是互质于 \( N \) 的整数,而 \( N \) 表示用于FFT变换的数据长度[^1]。 #### 使用Cadence Spectrum工具进行FFT分析 一种方式是在Cadence环境中利用内置的Spectrum模块完成FFT处理。操作流程涉及启动Spectrum界面并指定待分析的输出节点作为目标信号源。随后定义起始时间点 \( t_0 \),结束时间为 \( t_0+\frac{N}{f_s} \),同时确保总的采集样本数量等于预先选定的 \( N \)[^1]。通过上述配置可获得ADC输出端口处的频域特性曲线及其动态指标表现情况。 ```matlab % Cadence Spectrum Tool Example Code (Pseudo-code) open_spectrum_tool(); select_output_signal('output_node'); set_start_time(t0); set_end_time(t0 + N/fs); set_sample_points(N); configure_harmonics(); % Set multiple harmonics as needed run_fft_analysis(); display_results(); ``` #### 利用MATLAB执行外部数据导入FFT运算 另一种途径是从电路模拟器提取所需的时间序列数据至CSV文件格式,并借助MATLAB平台开展后续的数据解析工作。此过程始于从设计软件内部挑选感兴趣的电压/电流轨迹片段,接着将其保存成易于读取的形式——例如CSV文档。之后加载这些数值进入MATLAB环境内实施快速傅里叶转换算法来评估系统的线性和非线性响应特征[^2]。 ```matlab % MATLAB External Data Import and FFT Analysis Script filename = 'adc_output.csv'; data = readmatrix(filename); Fs = 50e6; % Sampling frequency, e.g., 50 MS/s L = length(data); % Length of the signal Y = fft(data); P2 = abs(Y/L); P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); f = Fs*(0:(L/2))/L; figure; plot(f,P1) title('Single-Sided Amplitude Spectrum of X(t)') xlabel('Frequency (Hz)') ylabel('|P1(f)|') grid on ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值