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]的范围内,所以只生成了一个周期的信号。为了生成多个周期的信号,我们需要按照上面的方式,生成多个周期的信号,并将各个周期的信号拼接成完整的信号,其中各个周期的上升/下降时间及抖动值都是可以独立指定的。
未完待续。。。
未完待续。。。
未完待续。。。
未完待续。。。