尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

什么是时间交织 ADC?两个 5GSPS ADC 如何实现 10GSPS 采样?

什么是时间交织 ADC?两个 5GSPS ADC 如何实现 10GSPS 采样? 1. 为什么要了解时间交织 ADC最近在做两个5 GS/s ADC 交织成 10 GS/s的高速采集项目时最容易产生的一个疑问是明明每颗 ADC 的最高采样率只有 5 GS/s为什么两颗放在一起之后就能得到 10 GS/s是不是 FPGA 把两路数据“拼起来”采样率就翻倍了并不是这么简单。真正的关键不在 FPGA而在于两颗 ADC 必须在时间上错开采样。比如一颗 ADC 在 0 ps、200 ps、400 ps……采样另一颗 ADC 在 100 ps、300 ps、500 ps……采样。把两路数据按照正确的时间顺序重新排列之后整个系统就相当于每隔 100 ps 得到一个采样点。100 ps 对应的采样率就是[\frac{1}{100\text{ ps}}10\text{ GS/s}]这就是时间交织 ADCTime-Interleaved ADCTIADC最核心的思想。2. 时间交织 ADC 到底是什么先说人话让多颗速度较低的 ADC 轮流采样同一个模拟信号从而获得更高的等效采样率。假设现在有两颗完全相同的 ADCADC05 GS/sADC15 GS/s单颗 ADC 的采样周期为[T_s\frac{1}{5\text{ GHz}}200\text{ ps}]也就是说单颗 ADC 每隔 200 ps 才能采一次。如果只有 ADC0时间 ────────────────────────────── ADC0● ● ● ● 0 200 400 600 ps显然每 200 ps 一个采样点所以是 5 GS/s。现在再增加一颗 ADC1。如果 ADC1 和 ADC0 同时采样ADC0● ● ● ADC1● ● ●那没有意义。因为两颗 ADC 虽然都在工作但采样时刻完全一样只是得到了两份几乎相同的数据。采样率并没有提高。真正的时间交织应该是让 ADC1 相对于 ADC0 延迟半个采样周期也就是[\frac{200\text{ ps}}{2}100\text{ ps}]于是变成时间 ────────────────────────────── ADC0● ● ● ● 0 200 400 600 ps ADC1 ● ● ● ● 100 300 500 700 ps把两路采样点按照时间顺序合并合并● ● ● ● ● ● ● ● 0 100 200 300 400 500 600 700 ps这样整个系统每隔 100 ps 得到一个采样值。因此等效采样率为[f_{s,\text{eq}}\frac{1}{100\text{ ps}}10\text{ GS/s}]注意这里经常使用一个词等效采样率。因为单颗 ADC 本身依然只有 5 GS/s并没有突然变成 10 GS/s。只是两颗 ADC 配合起来以后整个采样系统获得了 10 GS/s 的时间分辨率。3. 用一个具体例子看懂假设输入的是一个正弦波[x(t)A\sin(2\pi f_{in}t)]其中(A)信号幅度(f_{in})输入信号频率(t)时间。对于单颗 5 GS/s ADC采样间隔为 200 ps。ADC0 得到的数据可以写成[x[0],x[2],x[4],x[6]\cdots]ADC1 延迟 100 ps 后刚好采中间的位置[x[1],x[3],x[5],x[7]\cdots]那么 FPGA 收到两路数据以后只需要按照时间关系重新排序ADC0x[0] x[2] x[4] x[6] ADC1 x[1] x[3] x[5] x[7] 合并x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7]从数字信号处理的角度看这组数据就是一条10 GS/s 的离散时间序列。所以时间交织 ADC 的本质并不是“把两路数加起来”。而是把两个不同采样时刻的数据交替排列。这点非常重要。如果 FPGA 中只是简单做ADC0_data ADC1_data那叫加法不叫时间交织。正确的数据重组更接近ADC0[0] → 输出样点0 ADC1[0] → 输出样点1 ADC0[1] → 输出样点2 ADC1[1] → 输出样点3 ……也就是ADC0 → 偶数采样点 ADC1 → 奇数采样点4. 放到实际 FPGA / ADC 项目里看以项目中的参数为例参数数值ADC0 采样率5 GS/sADC1 采样率5 GS/s单 ADC 采样周期200 ps理想通道间时间差100 ps交织后采样间隔100 ps等效采样率10 GS/s系统框图可以简单理解成┌──── ADC05 GS/s ────┐ 模拟输入 ────────┤ ├──→ FPGA └──── ADC15 GS/s ────┘ ↑ 延迟 100 ps 采样进入 FPGA 以后还需要进行数据对齐和重新排序ADC0数据 ──┐ ├──→ 数据重排 ──→ 10 GS/s 等效采样序列 ──→ FFT ADC1数据 ──┘这里有一个工程上很容易忽略的问题ADC 输出到 FPGA 的接口速率并不一定也是 5 GHz 或 10 GHz。高速 ADC 通常不会直接给 FPGA 一根“10 GHz 数据线”。实际器件常见的输出接口可能是JESD204B / JESD204CLVDS并行 Demux 数据厂商自己的高速串行接口。ADC 内部通常会先把高速采样数据做串并转换然后 FPGA 再通过高速收发器或者并行接口接收。所以我们说“10 GS/s 采样”描述的是模拟信号被取样的速度并不是说 FPGA 逻辑必须跑在 10 GHz。FPGA 里常见的处理方式反而是把数据并行化。例如每个 FPGA 时钟周期同时处理多个 sample一个 FPGA 时钟周期 sample0 sample1 sample2 sample3 sample4 sample5 sample6 sample7这样即使 ADC 的等效采样率达到 10 GS/sFPGA 内部 DSP、FFT、滤波等逻辑仍然可以工作在几百 MHz 的时钟频率下。这也是高速 ADC 与 FPGA 配合时非常常见的架构。交织之后Nyquist 频率也提高了吗理想情况下是的。单颗 ADC 是 5 GS/s其第一 Nyquist 区为[0\sim2.5\text{ GHz}]两路理想交织形成 10 GS/s 后对最终完整采样序列而言第一 Nyquist 区变成[0\sim5\text{ GHz}]因此理论上可以表示更高频率的信号。但一定不要把这句话理解成两颗 5 GS/s ADC 一交织模拟输入带宽就自动变成 5 GHz。采样率不等于模拟输入带宽。系统到底能不能采一个 4 GHz 模拟信号还要看ADC 模拟输入带宽Track-and-Hold 带宽输入匹配网络巴伦PCB 走线时钟抖动ADC 本身在高输入频率下的性能。10 GS/s 只说明最终时间轴上平均每 100 ps 有一个采样点。5. 真正麻烦的地方其实不是“交替排列”如果所有器件都是理想的时间交织非常简单ADC0● ● ● ADC1 ● ● ●问题是现实里的两颗 ADC 不可能完全一样。例如 ADC0 可能输出0.99 V而相同模拟输入下 ADC1 输出1.01 V这就是通道间Gain mismatch也就是增益失配。再比如没有信号的时候ADC03 LSB ADC1-2 LSB这属于Offset mismatch也就是偏置失配。更麻烦的是本来应该差 100 psADC00 ps ADC1100 ps实际上却可能变成ADC00 ps ADC1103 ps这里多出来的 3 ps就是采样时刻的偏差也就是时间交织系统里非常关键的Timing Skew。Timing Skew 本质上是采样时间误差不能简单理解成一个固定的数字相位误差。特别是在高输入频率下即使只有几个 ps 的误差也可能明显影响频谱。因此一个真正能工作的 TIADC 系统FPGA 往往不只是负责“ADC0、ADC1 交替排列”。还可能需要进行ADC数据 │ ├── Offset 校准 │ ├── Gain 校准 │ ├── Timing Skew 校准 │ ↓ 数据重排 │ ↓ FFT / DDC / 滤波 / 后续DSP这也是时间交织 ADC 项目真正开始变复杂的地方。6. 新人容易搞错的地方误区一两个 5 GS/s ADC 并联就是 10 GS/s不是。如果两颗 ADC 在完全相同的时刻采样ADC0● ● ● ADC1● ● ●系统仍然只有 5 GS/s 的时间采样间隔。只有当两路采样时刻正确错开 100 ps并按照时间顺序合并后才能形成10 GS/s 等效采样率。误区二FPGA 把两路数据拼起来就一定是正确的 10 GS/s也不是。FPGA 只是负责数据重排。真正决定时间交织是否成立的是模拟信号到底是不是在正确的时间点被 ADC 采样。如果 ADC1 本应该在 100 ps 采样却实际在 110 ps 采样那么即使 FPGA 数据顺序排得再漂亮采样时间依然是错误的。误区三10 GS/s 就代表可以采到 5 GHz只能说从 Nyquist 采样关系来看第一 Nyquist 区理论上扩展到了 5 GHz。但真正的模拟输入能力还受 ADC 模拟带宽、前端链路、采样时钟质量等因素限制。所以看到 ADC 数据手册时Sample Rate 和 Analog Input Bandwidth 一定要分开看。7. 总结这一篇最重要的是记住下面几点时间交织 ADC 的核心就是让多颗 ADC 在不同时间点轮流采样同一个模拟信号。单颗 5 GS/s ADC 的采样周期是200 ps两路理想错开100 ps后可以形成10 GS/s 等效采样率。FPGA 中的核心操作不是把两路 ADC 数据相加而是按照采样时间进行交替重排。10 GS/s 采样率不等于 5 GHz 模拟输入带宽模拟前端能力必须单独分析。真正的时间交织 ADC 难点通常不在“怎么拼数据”而在两个通道之间的Offset、Gain 和 Timing Skew。下一篇继续聊《时间交织 ADC 的三大误差Offset、Gain、Timing 到底从哪里来》下一篇会直接从 FFT 频谱现象入手看这三种失配分别会在频谱上产生什么东西以及为什么很多 TIADC 校准算法最后都在围绕这三个误差做文章。关键词FPGA、ADC、时间交织ADC、TIADC、高速采集、采样率、Timing Skew、FFT
返回列表