经典论文 Theory and Applications of Incremental ΣΔ Converters 给出了 IADC 的分析与滤波器设计方法;首先通过一阶环路,类比积分型ADC,让我们理解这个过程;接着直接跳转到三阶 CIFF 给出了该结构的一阶分析方法;笔者认为,该ADC的核心在于其滤波器的设计,尤其是论文中所说的直接计算结果的 COI (Cascade of Integrators) 滤波器的设计与系数;后面提及的 CIC 滤波器以及响应时间,应该归属于 FIR 设计的思路,这里暂时按下不提。
顾名思义,Incremental ADC 又称 Integrating ADC,本质是积分的思想实现 Nyquist-Rate 的转换,与 ΣΔ 其实就是一个东西,但是需要搞定单周期建立,其实有 OSR 的ADC不在少数,他们都叫奈奎斯特 ADC。所以是否过采样并不是奈奎斯特 ADC 的本质,其本质就在,当前的转换结果不受此前转换结果的影响,每一个转换结果是独立的,能够代表当前/当前一小段信号的大小,如果信号是 DC,那过采样与奈奎斯特的冲突就不存在了,所以 Incremental ADC 通常应用于 DC 或者低速信号的测量。在 ΣΔ ADC 中,由于积分器存在记忆效应,因此每次转换需要将电路中的记忆器件复位,从而实现与此前的转换无关,之后搞定数字滤波器来实现单周期响应就行了。
对如下的一阶单 Bit Unipolar 环路 ,当比较器 di = 1 的时候反馈 VREF,其余时刻反馈0,假设转换周期为 n,转换周期内反馈了 N 次 VREF,那么有
根据结构可以很容易的得出以下等式,ϵ ∈ [ − 1 , + 1 ] \epsilon\in[-1,+1]ϵ ∈ [ − 1 , + 1 ]
n V i n − N V r e f = ε V r e f (1) nV_{in}-NV_{ref}=εV_{ref} \tag{1}
n V i n − N V r e f = ε V r e f ( 1 )
可以用下图来直观理解这个过程,第三个图,积分器的输出,其实就是残余误差,当输入接近0时,积分器输出会出现或者停留在 − V r e f -V_{ref}− V r e f ;当输入接近 V r e f V_{ref}V r e f 时,积分器可能会出现或者停留在 + V r e f +V_{ref}+ V r e f
首先第一级积分器的输出如下
V i 1 [ 0 ] = 0 V i 1 [ 1 ] = b ( V i [ 0 ] − d 0 V r e f ) V i 1 [ 2 ] = b ( V i [ 0 ] + V i 1 [ 1 ] − d 0 V r e f − d 1 V r e f ) V i 1 [ n ] = ∑ k = 0 n − 1 b ( V i [ k ] − d k V r e f ) (2) \begin{aligned}
V_{i1}[0]&=0 \\[0.8em]
V_{i1}[1]&=b(V_{i}[0]-d_0V_{ref}) \\[0.8em]
V_{i1}[2]&=b(V_{i}[0]+V_{i1}[1]-d_0V_{ref}-d_1V_{ref}) \\[0.8em]
V_{i1}[n]&=\sum_{k=0}^{n-1} b(V_{i}[k]-d_kV_{ref}) \\[0.8em]
\end{aligned} \tag{2}V i 1 [ 0 ] V i 1 [ 1 ] V i 1 [ 2 ] V i 1 [ n ] = 0 = b ( V i [ 0 ] − d 0 V r e f ) = b ( V i [ 0 ] + V i 1 [ 1 ] − d 0 V r e f − d 1 V r e f ) = k = 0 ∑ n − 1 b ( V i [ k ] − d k V r e f ) ( 2 )
第二级积分器的输出如下
V i 2 [ 0 ] = 0 V i 2 [ 1 ] = c 1 V i 1 [ 0 ] + V i 2 [ 0 ] = 0 V i 2 [ 2 ] = c 1 V i 1 [ 1 ] + V i 2 [ 1 ] = c 1 ( V i 1 [ 1 ] + V i 1 [ 0 ] ) V i 2 [ n ] = ∑ l = 0 n − 1 c 1 V i 1 [ l ] substitude n with l in V i 1 [ n ] = ∑ l = 0 n − 1 c 1 ∑ k = 0 l − 1 b ( V i [ k ] − d k V r e f ) (3) \begin{aligned}
V_{i2}[0]&=0 \\[0.8em]
V_{i2}[1]&=c_1V_{i1}[0]+V_{i2}[0]=0 \\[0.8em]
V_{i2}[2]&=c_1V_{i1}[1]+V_{i2}[1]=c_1(V_{i1}[1]+V_{i1}[0]) \\[0.8em]
V_{i2}[n]&=\sum_{l=0}^{n-1} c_1V_{i1}[l] \\[0.8em]
&\text{ substitude }n \text{ with }l \text{ in } V_{i1}[n]\\[0.8em]
&=\sum_{l=0}^{n-1} c_1 \sum_{k=0}^{l-1} b(V_{i}[k]-d_kV_{ref})
\end{aligned}\tag{3}V i 2 [ 0 ] V i 2 [ 1 ] V i 2 [ 2 ] V i 2 [ n ] = 0 = c 1 V i 1 [ 0 ] + V i 2 [ 0 ] = 0 = c 1 V i 1 [ 1 ] + V i 2 [ 1 ] = c 1 ( V i 1 [ 1 ] + V i 1 [ 0 ] ) = l = 0 ∑ n − 1 c 1 V i 1 [ l ] substitude n with l in V i 1 [ n ] = l = 0 ∑ n − 1 c 1 k = 0 ∑ l − 1 b ( V i [ k ] − d k V r e f ) ( 3 )
第三级积分器的输出如下
V i 3 [ 0 ] = 0 V i 3 [ 1 ] = c 2 ( V i 2 [ 0 ] + V i 3 [ 0 ] ) = 0 V i 3 [ 2 ] = c 2 V i 2 [ 1 ] + V i 3 [ 1 ] = c 2 ( V i 2 [ 1 ] + V 21 [ 0 ] ) V i 3 [ n ] = ∑ m = 0 n − 1 c 2 V i 2 [ m ] substitude n with m in V i 2 [ n ] = ∑ m = 0 n − 1 c 2 ∑ l = 0 m − 1 c 1 ∑ k = 0 l − 1 b ( V i [ k ] − d k V r e f ) = c 2 c 1 b ∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 ( V i [ k ] − d k V r e f ) (4) \begin{aligned}
V_{i3}[0]&=0 \\[0.8em]
V_{i3}[1]&=c_2(V_{i2}[0]+V_{i3}[0])=0 \\[0.8em]
V_{i3}[2]&=c_2V_{i2}[1]+V_{i3}[1]=c_2(V_{i2}[1]+V_{21}[0]) \\[0.8em]
V_{i3}[n]&=\sum_{m=0}^{n-1} c_2V_{i2}[m] \\[0.8em]
&\text{ substitude }n \text{ with }m \text{ in } V_{i2}[n]\\[0.8em]
&=\sum_{m=0}^{n-1}c_2 \sum_{l=0}^{m-1} c_1 \sum_{k=0}^{l-1} b(V_{i}[k]-d_kV_{ref}) \\[0.8em]
&=c_2c_1b\sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1} (V_{i}[k]-d_kV_{ref})
\end{aligned}\tag{4}V i 3 [ 0 ] V i 3 [ 1 ] V i 3 [ 2 ] V i 3 [ n ] = 0 = c 2 ( V i 2 [ 0 ] + V i 3 [ 0 ] ) = 0 = c 2 V i 2 [ 1 ] + V i 3 [ 1 ] = c 2 ( V i 2 [ 1 ] + V 2 1 [ 0 ] ) = m = 0 ∑ n − 1 c 2 V i 2 [ m ] substitude n with m in V i 2 [ n ] = m = 0 ∑ n − 1 c 2 l = 0 ∑ m − 1 c 1 k = 0 ∑ l − 1 b ( V i [ k ] − d k V r e f ) = c 2 c 1 b m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 ( V i [ k ] − d k V r e f ) ( 4 )
如果我们处理的信号时 DC 值,那么 V i [ k ] = V i n V_i[k]=V_{in}V i [ k ] = V i n ,上述表达式有
V i 3 [ n ] = c 2 c 1 b ∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 V i n − c 2 c 1 b ∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 d k V r e f (5) V_{i3}[n]=c_2c_1b\sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1} V_{in}-c_2c_1b\sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1} d_kV_{ref}
\tag{5}V i 3 [ n ] = c 2 c 1 b m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 V i n − c 2 c 1 b m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 d k V r e f ( 5 )
这里涉及一个数列求和的问题,结论如下,分母的阶乘,以及分子递减的乘数项,就是积分器的级数
∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 1 = ( n − 2 ) ( n − 1 ) n 3 ! (6) \sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1} 1 =\frac{(n-2)(n-1)n}{3!}\tag{6}
m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 1 = 3 ! ( n − 2 ) ( n − 1 ) n ( 6 )
ClearAll["Global`*"]
v1[l_] = Sum[1, {k, 0, l - 1}]
v2[m_] = Sum[v1[k], {k, 0, m - 1}]
v3[n_] = Sum[v2[k], {k, 0, n - 1}]
v4[o_] = Sum[v3[k], {k, 0, o - 1}]
v5[p_] = Sum[v4[k], {k, 0, p - 1}]
那么将 (6) 代入(5) 可以得到
V i 3 [ n ] = c 2 c 1 b ( n − 2 ) ( n − 1 ) n 3 ! V i n − c 2 c 1 b ∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 d k V r e f V i n = V i 3 [ n ] 3 ! ( n − 2 ) ( n − 1 ) n 1 c 2 c 1 b + 3 ! ( n − 2 ) ( n − 1 ) n ∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 d k V r e f (7) \begin{aligned}
V_{i3}[n]&=c_2c_1b\frac{(n-2)(n-1)n}{3!} V_{in}-c_2c_1b\sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1}
d_kV_{ref}\\[0.8em]
V_{in}&=V_{i3}[n]\frac{3!}{(n-2)(n-1)n}\frac{1}{c_2c_1b}+\frac{3!}{(n-2)(n-1)n}\sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1}
d_kV_{ref}
\end{aligned}\tag{7}V i 3 [ n ] V i n = c 2 c 1 b 3 ! ( n − 2 ) ( n − 1 ) n V i n − c 2 c 1 b m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 d k V r e f = V i 3 [ n ] ( n − 2 ) ( n − 1 ) n 3 ! c 2 c 1 b 1 + ( n − 2 ) ( n − 1 ) n 3 ! m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 d k V r e f ( 7 )
(7) 中的第一项,可以姑且认为 V i 3 [ n ] V_{i3}[n]V i 3 [ n ] 的值一定在 ± V r e f \pm V_{ref}± V r e f 之间,当 OSR非常大的时候,那么误差也就很小了,所以有
V i n ‾ V r e f = 3 ! ( n − 2 ) ( n − 1 ) n ∑ m = 0 n − 1 ∑ l = 0 m − 1 ∑ k = 0 l − 1 d k (8) \frac{\overline{V_{in} } }{V_{ref} }=\frac{3!}{(n-2)(n-1)n}\sum_{m=0}^{n-1} \sum_{l=0}^{m-1} \sum_{k=0}^{l-1}
d_k\tag{8}V r e f V i n = ( n − 2 ) ( n − 1 ) n 3 ! m = 0 ∑ n − 1 l = 0 ∑ m − 1 k = 0 ∑ l − 1 d k ( 8 )
误差为如下,对于理想的ADC,对用于±LSB/2,
ϵ = ± V r e f 3 ! ( n − 2 ) ( n − 1 ) n 1 c 2 c 1 b = ± V L S B 2 V L S B = V r e f 2 × 3 ! ( n − 2 ) ( n − 1 ) n 1 c 2 c 1 b n b i t = 2 ( V r e f V L S B ) ⇒ l a r g e n 3 2 ( n ) + 2 ( c 2 c 1 ) − 2.6 (9) \begin{aligned}
\epsilon&=±V_{ref}\frac{3!}{(n-2)(n-1)n}\frac{1}{c_2c_1b}=±\frac{V_{LSB} }{2} \\[0.8em]
V_{LSB}&=V_{ref}\frac{2\times3!}{(n-2)(n-1)n}\frac{1}{c_2c_1b}\\[0.8em]
n_{bit}&=\log_2{\left(\frac{V_{ref} }{V_{LSB} }\right)}\xRightarrow{large\ n}3\log_2(n)+\log_2(c_2c_1)-2.6
\end{aligned}\tag{9}ϵ V L S B n b i t = ± V r e f ( n − 2 ) ( n − 1 ) n 3 ! c 2 c 1 b 1 = ± 2 V L S B = V r e f ( n − 2 ) ( n − 1 ) n 2 × 3 ! c 2 c 1 b 1 = log 2 ( V L S B V r e f ) l a r g e n 3 log 2 ( n ) + log 2 ( c 2 c 1 ) − 2 . 6 ( 9 )
根据公式(8),设计数字滤波器如下
H C O I = 3 ! ( n − 2 ) ( n − 1 ) n ( z − 1 1 − z − 1 ) 3 (10) H_{COI}=\frac{3!}{(n-2)(n-1)n} \left( \frac{z^{-1} }{1-z^{-1} }\right)^3 \tag{10}
H C O I = ( n − 2 ) ( n − 1 ) n 3 ! ( 1 − z − 1 z − 1 ) 3 ( 1 0 )
数字积分器也是 Delayed Integrator,简单来看,这样与 MOD LOOP 中的积分器行为一致;
注意这里积分的内容是从 d 0 d_0d 0 到 d n − 1 d_{n-1}d n − 1 ,看的是第 n nn 个时刻的结果
在 Simulink (Matlab 2018b) 中搭建模型如下:
Discrete Filter,无论是模拟还是数字,都是下降沿复位;
Counter,Hint = OSR,例如 OSR=128,那么整个环路会有 0 ~ 128 会产生 129个数据,每个 Integraotor 的输出是否能看到 n=128 这个数据就完全取决于其自身是 Delayed or Non-Delayed
Sample and Hold,这里是用上升沿控制,这样采样保持的结果就是 n=128 时刻的
输入信号是一个非常缓慢的 Ramp 信号,这样可以方便直观地观察 DC 扫描特性以及增益,可以非常方便地验证 COI 滤波器设计的正确性
仿真结果可以看到,输入信号与输出信号完全重合
Silva-Steensgaard 就是二阶的 CIFF,类比公式(10),积分器要实现的就是
H C O I − C I F F = 2 ! ( n − 1 ) n ( z − 1 1 − z − 1 ) 2 (11) H_{COI-CIFF}=\frac{2!}{(n-1)n} \left( \frac{z^{-1} }{1-z^{-1} }\right)^2 \tag{11}
H C O I − C I F F = ( n − 1 ) n 2 ! ( 1 − z − 1 z − 1 ) 2 ( 1 1 )
在模型中,我们发现增益系数仍然是 2/OSR/(OSR-1),但是数字积分器换成了 None-Delayed,接下来我们将重新推导 CIFB 结构的 Booser-Wooley 去解释为什么会有这样的区别
第一级积分器输出
V i 1 [ 0 ] = 0 V i 1 [ 1 ] = V i [ 0 ] − d 0 V r e f V i 1 [ 2 ] = V i [ 0 ] + V i 1 [ 1 ] − d 0 V r e f − d 1 V r e f V i 1 [ n ] = ∑ k = 0 n − 1 ( V i [ k ] − d k V r e f ) (12) \begin{aligned}
V_{i1}[0]&=0 \\[0.8em]
V_{i1}[1]&=V_{i}[0]-d_0V_{ref} \\[0.8em]
V_{i1}[2]&=V_{i}[0]+V_{i1}[1]-d_0V_{ref}-d_1V_{ref} \\[0.8em]
V_{i1}[n]&=\sum_{k=0}^{n-1} (V_{i}[k]-d_kV_{ref}) \\[0.8em]
\end{aligned} \tag{12}V i 1 [ 0 ] V i 1 [ 1 ] V i 1 [ 2 ] V i 1 [ n ] = 0 = V i [ 0 ] − d 0 V r e f = V i [ 0 ] + V i 1 [ 1 ] − d 0 V r e f − d 1 V r e f = k = 0 ∑ n − 1 ( V i [ k ] − d k V r e f ) ( 1 2 )
第二级积分器输出
V i 2 [ 0 ] = 0 V i 2 [ 1 ] = V i 1 [ 0 ] + V i 2 [ 0 ] − 2 d 0 V r e f V i 2 [ 2 ] = V i 1 [ 1 ] + V i 2 [ 1 ] = ( V i 1 [ 1 ] + V i 1 [ 0 ] ) − 2 ( d 0 + d 1 ) V r e f V i 2 [ n ] = ∑ l = 0 n − 1 V i 1 [ l ] − 2 ∑ k = 0 n − 1 d k V r e f substitude n with l in V i 1 [ n ] = ∑ l = 0 n − 1 ∑ k = 0 l − 1 ( V i [ k ] − d k V r e f ) − 2 ∑ k = 0 n − 1 d k V r e f (13) \begin{aligned}
V_{i2}[0]&=0 \\[0.8em]
V_{i2}[1]&=V_{i1}[0]+V_{i2}[0]-2d_0V_{ref} \\[0.8em]
V_{i2}[2]&=V_{i1}[1]+V_{i2}[1]=(V_{i1}[1]+V_{i1}[0])-2(d_0+d_1)V_{ref} \\[0.8em]
V_{i2}[n]&=\sum_{l=0}^{n-1} V_{i1}[l]-2\sum_{k=0}^{n-1}d_kV_{ref} \\[0.8em]
&\text{ substitude }n \text{ with }l \text{ in } V_{i1}[n]\\[0.8em]
&=\sum_{l=0}^{n-1}\sum_{k=0}^{l-1} (V_{i}[k]-d_kV_{ref})-2\sum_{k=0}^{n-1}d_kV_{ref}
\end{aligned}\tag{13}V i 2 [ 0 ] V i 2 [ 1 ] V i 2 [ 2 ] V i 2 [ n ] = 0 = V i 1 [ 0 ] + V i 2 [ 0 ] − 2 d 0 V r e f = V i 1 [ 1 ] + V i 2 [ 1 ] = ( V i 1 [ 1 ] + V i 1 [ 0 ] ) − 2 ( d 0 + d 1 ) V r e f = l = 0 ∑ n − 1 V i 1 [ l ] − 2 k = 0 ∑ n − 1 d k V r e f substitude n with l in V i 1 [ n ] = l = 0 ∑ n − 1 k = 0 ∑ l − 1 ( V i [ k ] − d k V r e f ) − 2 k = 0 ∑ n − 1 d k V r e f ( 1 3 )
相比 CIFF 的推导结果,这里的一阶积分,我们无法忽略。在后续的分析中,会观察到如果额外引入一个当前的 d n V r e f d_nV_{ref}d n V r e f ,就可以得到一个简洁的表达式。而我们引入的这个 d n V r e f d_nV_{ref}d n V r e f 也不是空穴来风,其实就是第 n 次,此时此刻的量化结果(论文CIFF的分析中,可以发现数字积分器只处理了 0 ~ (n-1) 个采样结果)。
论文CIFF的分析中,认为最后一级积分器的误差在一个 ± V r e f ±V_{ref}± V r e f ,用最后一级积分器的收敛性去计算输入信号与反馈码流的关系。我们这里可以再进一步,分析量化器之后的结果,第 n 次量化器的输出满足 d n V r e f = V i 2 [ n ] + E [ n ] d_nV_{ref}=V_{i2}[n]+E[n]d n V r e f = V i 2 [ n ] + E [ n ] , 论文之所以没有用量化器之后的结果计算,是因为对于CIFF,多条支路求和反馈,会导致表达式比较复杂。论文中推到的是一般结构的表达式,如果对于 Silva-Steensgaard 这种结构其 N T F = ( 1 − z − 1 ) 2 NTF=(1-z^{-1})^2N T F = ( 1 − z − 1 ) 2 ,用 Quantizer 的输出去计算也会得到相同的结果。其核心思想要找到一个阶数最高且摆幅可控的地方,去分析输入/反馈/残差 三者之间的关系
使用 Quantizer Output 的分析方法来自于 BeiYangMan
回归到 CIFB 的分析当中,将(13) 代入 Q [ n ] = d n V r e f = V i 2 [ n ] + E [ n ] Q[n] = d_nV_{ref}=V_{i2}[n]+E[n]Q [ n ] = d n V r e f = V i 2 [ n ] + E [ n ] 后有如下表达式
d n V r e f = ∑ l = 0 n − 1 ∑ k = 0 l − 1 ( V i [ k ] − d k V r e f ) − 2 ∑ k = 0 n − 1 d k V r e f + E [ n ] ∑ l = 0 n − 1 ∑ k = 0 l − 1 V i [ k ] = ( ∑ l = 0 n − 1 ∑ k = 0 l − 1 d k V r e f + ∑ k = 0 n − 1 d k V r e f ) + ( ∑ k = 0 n − 1 d k V r e f + d n V r e f ) − E n ∑ l = 0 n − 1 ∑ k = 0 l − 1 V i [ k ] = ∑ l = 0 n − 1 ∑ k = 0 l − 1 d k V r e f + ∑ k = 0 n − 1 d k V r e f + ∑ k = 0 n d k V r e f − E n (14) \begin{aligned}
d_nV_{ref}&=\sum_{l=0}^{n-1}\sum_{k=0}^{l-1} (V_{i}[k]-d_kV_{ref})-2\sum_{k=0}^{n-1}d_kV_{ref}+E[n] \\[0.8em]
\sum_{l=0}^{n-1}\sum_{k=0}^{l-1} V_{i}[k]&=\left(
\sum_{l=0}^{n-1}\sum_{k=0}^{l-1}d_kV_{ref}+\sum_{k=0}^{n-1}d_kV_{ref}\right)+\left(\sum_{k=0}^{n-1}d_kV_{ref}+d_nV_{ref}\right)- E_{n} \\[0.8em]
\sum_{l=0}^{n-1}\sum_{k=0}^{l-1} V_{i}[k]&=\sum_{l=0}^{n-1}\sum_{k=0}^{l-1}d_kV_{ref}+\sum_{k=0}^{n-1}d_kV_{ref}+\sum_{k=0}^{n}d_kV_{ref}- E_{n} \\[0.8em]
\end{aligned}\tag{14}d n V r e f l = 0 ∑ n − 1 k = 0 ∑ l − 1 V i [ k ] l = 0 ∑ n − 1 k = 0 ∑ l − 1 V i [ k ] = l = 0 ∑ n − 1 k = 0 ∑ l − 1 ( V i [ k ] − d k V r e f ) − 2 k = 0 ∑ n − 1 d k V r e f + E [ n ] = ( l = 0 ∑ n − 1 k = 0 ∑ l − 1 d k V r e f + k = 0 ∑ n − 1 d k V r e f ) + ( k = 0 ∑ n − 1 d k V r e f + d n V r e f ) − E n = l = 0 ∑ n − 1 k = 0 ∑ l − 1 d k V r e f + k = 0 ∑ n − 1 d k V r e f + k = 0 ∑ n d k V r e f − E n ( 1 4 )
等式右边的两个一阶积分,是无法忽略的,通过列表法(列表法可以弥补数字功底差,记忆力不好的缺陷)可以直观地看到有如下关系,我们惊奇的发现,对码流的积分要从 Delayed Integrator 到 Non-Delayed才能保证滤波计算的准确性。
∑ l = 0 n − 1 ∑ k = 0 l − 1 d k V r e f + ∑ k = 0 n − 1 d k V r e f + ∑ k = 0 n d k V r e f = ∑ l = 0 n ∑ k = 0 l d k V r e f (15) \sum_{l=0}^{n-1}\sum_{k=0}^{l-1}d_kV_{ref}+\sum_{k=0}^{n-1}d_kV_{ref}+\sum_{k=0}^{n}d_kV_{ref}=\sum_{l=0}^{n}\sum_{k=0}^{l}d_kV_{ref}\tag{15}
l = 0 ∑ n − 1 k = 0 ∑ l − 1 d k V r e f + k = 0 ∑ n − 1 d k V r e f + k = 0 ∑ n d k V r e f = l = 0 ∑ n k = 0 ∑ l d k V r e f ( 1 5 )
n
∑ l = 0 n − 1 \sum_{l=0}^{n-1}∑ l = 0 n − 1
∑ k = 0 l − 1 \sum_{k=0}^{l-1}∑ k = 0 l − 1
∑ l = 0 n − 1 ∑ k = 0 l − 1 d k \sum_{l=0}^{n-1}\sum_{k=0}^{l-1}d_k∑ l = 0 n − 1 ∑ k = 0 l − 1 d k
∑ k = 0 n − 1 d k \sum_{k=0}^{n-1}d_k∑ k = 0 n − 1 d k
∑ k = 0 n d k \sum_{k=0}^{n}d_k∑ k = 0 n d k
Total
0
0~-1
-1~-2
0
0
d0
d0
1
0~0
-1
0
d0
d0 d1
d0+ d0+d1
2
1
0~0
d0
d0+d1
d0+d1+d2
d0+ d0+d1+ d0+d1+d2
3
1 2 3
00<br>0 1
d0+ d0+d1
d0+d1+d2
d0+d1+d2+d3
d0+ d0+d1+ d0+d1+d2+ d0+d1+d2+d3
4
1 2 3
00<br>0 1 0~2
d0+ d0+d1+ d0+d1+d2
d0+d1+d2+d3
d0+d1+d2+d3+d4
d0+ d0+d1+ d0+d1+d2+ d0+d1+d2+d3+ d0+d1+d2+d3+d4
在 CIFB 的COI 的设计为
H C O I − C I F B = 2 ! ( n − 1 ) n ( 1 1 − z − 1 ) 2 (16) H_{COI-CIFB}=\frac{2!}{(n-1)n} \left( \frac{1}{1-z^{-1} }\right)^2 \tag{16}
H C O I − C I F B = ( n − 1 ) n 2 ! ( 1 − z − 1 1 ) 2 ( 1 6 )
如果仍然使用 Delayed Filter,但是修改增益为 后仍然可以得到正确的结果;
H C O I − C I F B 2 = 2 ! ( n − 3 ) ( n − 2 ) ( z − 1 1 − z − 1 ) 2 (17) H_{COI-CIFB2}=\frac{2!}{(n-3)(n-2)} \left( \frac{z^{-1} }{1-z^{-1} }\right)^2 \tag{17}
H C O I − C I F B 2 = ( n − 3 ) ( n − 2 ) 2 ! ( 1 − z − 1 z − 1 ) 2 ( 1 7 )
似乎这里这里只会引入一个增益误差。原因如下 Delayed Integrator 和 Non-Delayed Integrator 的幅频响应形态是一样的,如果积分次数无限大,其 DC Gain z = 1 z=1z = 1 都是无穷大;然而如果是有限的积分次数的话,其增益就存在区别了;简单来说,在有限次积分过程中一直累积1,最后累计多少次1,其增益就是多少。所以,最终(16) 和 (17) 是等价的。
如果我们从 STF 的角度去看,S T F C I F F = 1 STF_{CIFF}=1S T F C I F F = 1 而 S T F C I F B = z − 2 STF_{CIFB}=z^{-2}S T F C I F B = z − 2 , CIFB 天然就比 CIFF 的信号慢2拍才出,我们当然希望进入的信号越多越好。两者的 NTF 是一样的,但是使用 Delayed 还是 None Delayed,接受到的 VREF Feedback 我们也是希望越多越好。但是这里只是多1-2个的区别,并不会对噪声性能/INL有很大影响,因为我们在选择OSR参数时,已经将量化噪声限制的足够小了,OSR通常都是2次幂成倍增长设计的,根本不在乎实际进入数字滤波器1-2个的多还是少。
在电路的设计中,我们将电路复位,然后直接开始转换,电路还没有进入稳态周期,是否应该需要抛掉前面几个数?直观分析应该抛掉前面几个数,结果应是不受影响的。有待验证
Theory_and_applications_of_incremental_Delta_Sigma_Converters.pdf
笔者对该经典论文其余的部分批注如下:
论文作者认为,对于高阶 Modulator 环路,只以时域分析为基础的 COI 设计,不去考虑 Quantizer Noise 的频率分布,是不合适的。这个暂时没有深刻的理解,权当结论先记住。
提出了 SINC 滤波器,但是需要考虑其响应长度的问题;但是SINC和SINC的变种是 ΣΔ ADC 中尤其低速应用下最常用的数字滤波器,即使在高速 ΣΔ 中或者对幅频响应有要求的设计中,也会使用 SINC 滤波器去实施有效的抗混叠降采样。论文作者认为工频抑制是其优势,然而当下的工频抑制实现方式并非完全依赖SINC固定的陷波,而实依靠 zero-split 或者其它结合 FIR 的方式实现,从而避开对 OSR 的限制;
电路实现中,如果 20bit+ 的 modulator 需要考虑电容线性度的要求,论文作者提出可以将电容首尾相接串并联的方式去抵消一阶变化,并认为使用多bit量化器可以减少 Input Capacitor 上的信号 swing,然而这个只适用于 input capacitors 与 feedback dac capacitors 共用的情况,电容既做输入信号采样又做 DAC 反馈需要考虑两者共模对 OTA 共模的影响;
论文作者接下来分析的信号源的热噪声,结果显而易见,由于 STF = 1 的原因,其实对信号源热噪声的抑制能力就是后续数字滤波器的抑制能力。