1、背景
抖动是影响信号完整性的重要因素。随着信号速率的不断提高,抖动的影响日益显著。仿真生成抖动时钟或抖动信号,对系统极限性能验证具有重要意义。抖动是定义在时域上的概念,它表征真实跳变位置(如跳边沿或过零点)与理想跳变位置之间的时间偏差。自然而然地,抖动信号生成也多从时域角度出发。考虑到时域和频域只是信号在不同维度上的表现方式。本文探索一种从频域角度生成抖动信号的方法,首先对方法的原理进行详细说明,然后比较与现有方法的优缺点,最后给出仿真验证结果。
2、原理
(1) 抖动时钟生成原理
周期信号可进行傅里叶级数展开,设周期信号 f ( t ) f(t) f(t)的周期为 T T T,则其三角函数的傅里叶级数展开表达式为
f ( t ) = A 0 + ∑ n = 1 ∞ [ A n c o s ( ω n t ) + B n s i n ( ω n t ) ] (1) f(t)=A_0+\sum_{n=1}^{\infty}[A_n cos(\omega_n t)+B_n sin(\omega_nt)]\tag{1} f(t)=A0+n=1∑∞[Ancos(ωnt)+Bnsin(ωnt)](1)
其中, ω n = n 2 π T \omega_n=n\frac{2\pi}{T} ωn=nT2π表示第 n n n个分量的角频率。 A 0 A_0 A0、 A n A_n An、 B n B_n Bn分别表示直流分量,余弦分量的幅度和正弦分量的幅度,它们的表达式分别为:
A 0 = 1 T ∫ t 0 t 0 + T f ( t ) d t A n = 2 T ∫ t 0 t 0 + T f ( t ) c o s ( ω n t ) d t B n = 2 T ∫ t 0 t 0 + T f ( t ) s i n ( ω n t ) d t A_0=\frac{1}{T}\int_{t_0}^{t_0+T}f(t)dt \\A_n=\frac{2}{T}\int_{t_0}^{t_0+T}f(t)cos(\omega_n t)dt\\B_n=\frac{2}{T}\int_{t_0}^{t_0+T}f(t)sin(\omega_n t)dt A0=T1∫t0t0+Tf(t)dtAn=T2∫t0t0+Tf(t)cos(ωnt)dtBn=T2∫t0t0+Tf(t)sin(ωnt)dt
时钟信号是一种周期信号,为了将时钟信号表示为傅里叶级数展开的形式,需表示出时钟信号在一个周期内的表达式。
上图建立直角坐标系,对理想时钟信号进行表示,其中 T T T表示信号周期, τ r \tau_r τr和 τ f \tau_f τf分别表示上升时间和下降时间。 L = ( T − τ r − τ f ) / 2 L=(T-\tau_r-\tau_f)/2 L=(T−τr−τf)/2表示理想情况下平稳电平的时长。上图中未体现抖动的影响,抖动表现为实际跳变沿位置相对于跳边沿理想位置的时间偏差,带抖动的时钟信号示意图如下。
上图中蓝色虚线为理想跳边沿, t r t_r tr和 t f t_f tf分别表示上升沿和下降沿抖动值。图中标记了4个信号的关键转折点,分别记为 a a a、 b b b、 c c c、 d d d。这4个点的位置可分别表示为:
a = − L / 2 − τ r − t r = − 1 4 T − 3 4 τ r + 1 4 τ f − t r b = − L / 2 − t r = − 1 4 T + 1 4 τ r + 1 4 τ f − t r c = L / 2 − t f = 1 4 T − 1 4 τ r − 1 4 τ f − t f d = L / 2 + τ f − t f = 1 4 T − 1 4 τ r + 3 4 τ f − t f a=-L/2-\tau_r-t_r=-\frac{1}{4}T-\frac{3}{4}\tau_r+\frac{1}{4}\tau_f-t_r\\b=-L/2-t_r=-\frac{1}{4}T+\frac{1}{4}\tau_r+\frac{1}{4}\tau_f-t_r\\c=L/2-t_f=\frac{1}{4}T-\frac{1}{4}\tau_r-\frac{1}{4}\tau_f-t_f\\d=L/2+\tau_f-t_f=\frac{1}{4}T-\frac{1}{4}\tau_r+\frac{3}{4}\tau_f-t_f a=−L/2−τr−tr=−41T−43τr+41τf−trb=−L/2−tr=−41T+41τr+41τf−trc=L/2−tf=41T−41τr−41τf−tfd=L/2+τf−tf=41T−41τr+43τf−tf
由此,带抖动的时钟信号的表达式为:
f ( t ) = { 0 , − T 2 ≤ t < a v b − a ( t − a ) , a < t ≤ b v , b < t ≤ c v c − d ( t − d ) , c < t ≤ d 0 , d < t ≤ T / 2 f(t)= \left\{\begin{matrix} 0,-\frac{T}{2}\leq t<a \\ \frac{v}{b-a}(t-a),a<t\leq b \\ v, b<t\leq c \\ \frac{v}{c-d}(t-d),c<t\leq d\\ 0, d<t\leq T/2 \end{matrix}\right. f(t)=⎩ ⎨ ⎧0,−2T≤t<ab−av(t−a),a<t≤bv,b<t≤cc−dv(t−d),c<t≤d0,d<t≤T/2
将 f ( t ) f(t) f(t)的表达式带入 A 0 A_0 A0、 A n A_n An、 B n B_n Bn的表达式中,可求得:
A 0 = 1 T ∫ t 0 t 0 + T f ( t ) d t = 1 T ∫ − T / 2 T / 2 f ( t ) d t = 1 T [ ∫ a b v b − a ( t − a ) d t + ∫ b c v d t + ∫ c d v c − d ( t − d ) d t ] = 1 T [ 1 2 v ( b − a ) + 1 2 v ( c + b ) ( c − b ) + 1 2 v ( d − c ) ] = v 2 T [ ( b − a ) + ( c + b ) ( c − b ) + ( d − c ) ] (2) A_0=\frac{1}{T}\int_{t_0}^{t_0+T}f(t)dt=\frac{1}{T}\int_{-T/2}^{T/2}f(t)dt\\=\frac{1}{T}[\int_{a}^{b}\frac{v}{b-a}(t-a)dt+\int_{b}^{c}vdt+\int_{c}^{d}\frac{v}{c-d}(t-d)dt]\\=\frac{1}{T}[\frac{1}{2}v(b-a)+\frac{1}{2}v(c+b)(c-b)+\frac{1}{2}v(d-c)]\\=\frac{v}{2T}[(b-a)+(c+b)(c-b)+(d-c)]\tag{2} A0=T1∫t0t0+Tf(t)dt=T1∫−T/2T/2f(t)dt=T1[∫abb−av(t−a)dt+∫bcvdt+∫cdc−dv(t−d)dt]=T1[21v(b−a)+21v(c+b)(c−b)+21v(d−c)]=2Tv[(b−a)+(c+b)(c−b)+(d−c)](2)
A n = 2 T ∫ − T / 2 T / 2 f ( t ) c o s ( ω n t ) d t = 2 T [ ∫ a b v ( t − a ) b − a c o s ( ω n t ) d t + ∫ b c v c o s ( ω n t ) d t + ∫ c d v ( t − d ) c − d c o s ( ω n t ) d t ] = 2 T [ v ( c o s ( ω n b ) − c o s ( ω n a ) ) ( b − a ) ω n 2 + v ( c o s ( ω n d ) − c o s ( ω n c ) ) ( c − d ) ω n 2 + v ( s i n ( ω n c ) − s i n ( ω n b ) ) ω n ] (3) A_n=\frac{2}{T}\int_{-T/2}^{T/2}f(t)cos(\omega_n t)dt\\=\frac{2}{T}[\int_{a}^{b}\frac{v(t-a)}{b-a}cos(\omega_n t)dt+\int_{b}^{c}vcos(\omega_n t)dt+\int_{c}^{d}\frac{v(t-d)}{c-d}cos(\omega_n t)dt]\\=\frac{2}{T}[\frac{v(cos(\omega_n b)-cos(\omega_n a))}{(b-a)\omega_n^2}+\frac{v(cos(\omega_n d)-cos(\omega_n c))}{(c-d)\omega_n^2}+\frac{v(sin(\omega_n c)-sin(\omega_n b))}{\omega_n}] \tag{3} An=T2∫−T/2T/2f(t)cos(ωnt)dt=T2[∫abb−av(t−a)cos(ωnt)dt+∫bcvcos(ωnt)dt+∫cdc−dv(t−d)cos(ωnt)dt]=T2[(b−a)ωn2v(cos(ωnb)−cos(ωna))+(c−d)ωn2v(cos(ωnd)−cos(ωnc))+ωnv(sin(ωnc)−sin(ωnb))](3)
B n = 2 T ∫ − T / 2 T / 2 f ( t ) s i n ( ω n t ) d t = 2 T [ ∫ a b v ( t − a ) b − a s i n ( ω n t ) d t + ∫ b c v s i n ( ω n t ) d t + ∫ c d v ( t − d ) c − d s i n ( ω n t ) d t ] = 2 T [ v ( s i n ( ω n b ) − s i n ( ω n a ) ) ( b − a ) ω n 2 + v ( s i n ( ω n d ) − s i n ( ω n c ) ) ( c − d ) ω n 2 + v ( c o s ( ω n b ) − c o s ( ω n c ) ) ω n ] (4) B_n=\frac{2}{T}\int_{-T/2}^{T/2}f(t)sin(\omega_n t)dt\\=\frac{2}{T}[\int_{a}^{b}\frac{v(t-a)}{b-a}sin(\omega_n t)dt+\int_{b}^{c}vsin(\omega_n t)dt+\int_{c}^{d}\frac{v(t-d)}{c-d}sin(\omega_n t)dt]\\=\frac{2}{T}[\frac{v(sin(\omega_n b)-sin(\omega_n a))}{(b-a)\omega_n^2}+\frac{v(sin(\omega_n d)-sin(\omega_nc))}{(c-d)\omega_n^2}+\frac{v(cos(\omega_n b)-cos(\omega_n c))}{\omega_n}] \tag{4} Bn=T2∫−T/2T/2f(t)sin(ωnt)dt=T2[∫abb−av(t−a)sin(ωnt)dt+∫bcvsin(ωnt)dt+∫cdc−dv(t−d)sin(ωnt)dt]=T2[(b−a)ωn2v(sin(ωnb)−sin(ωna))+(c−d)ωn2v(sin(ωnd)−sin(ωnc))+ωnv(cos(ωnb)−cos(ωnc))](4)
显然,在已知上述傅里也变换级数的各项系数时,即可将原始时域周期信号用傅里叶级数表示出来,需要注意的是,在实际运算时,谐波索引 n n n不能取到无穷大。所以,实际只能得到信号的截断傅里叶级数展开的形式,保留的谐波次数越高,得到的波形越准确,但计算量越大。
需要注意的是,利用(1)式将原始信号表示为傅里叶级数展开的形式时 t t t被限制在了 [ − T / 2 , T / 2 ] [-T/2,T/2] [−T/2,T/2]的范围内,所以只生成了一个周期的信号。为了生成多个周期的信号,我们需要按照上面的方式,生成多个周期的信号,并将各个周期的信号拼接成完整的信号,其中各个周期的上升/下降时间及抖动值都是可以独立指定的。
此外,上面生成时,考虑时钟低电平为0,可根据实际要求,对波形进行上下平移,以调整波形的offset。
(2) 抖动信号生成原理
本文以NRZ和PAM4信号为例,说明抖动信号的生成原理。NRZ和PAM4信号与时钟信号的不同在于NRZ/PAM4并非周期信号,所以相比于时钟信号,带抖动的NRZ/PAM4信号虽然能借鉴抖动时钟信号的生成方法,但需进行一定的修改和适配。具体地,如下图所示相邻两个NRZ符号有4种可能状态,分别为’00’,‘01’,‘10’和’11’;相邻两个PAM4符号有16种可能状态,分别为’00’, ‘01’, ‘02’, ‘03’, ‘10’, ‘11’, ‘12’, ‘13’, ‘20’, ‘21’ ,‘22’, ‘23’, ‘30’, ‘31’, ‘32’, ‘33’。所以,可以将NRZ和PAM4的符号两两组合,进行波形生成,其中除非跳变位置的波形,如’00’,‘11’,‘22’,'33’外,其他跳变波形均能参照抖动时钟的生成方法,只需对波形表达式进行略有的适配即可。
未完待续。。。
未完待续。。。
未完待续。。。
未完待续。。。