在学习接收系统的非线性问题,第一眼看到Volterra级数公式(就是下面这货),那是一脸蒙蔽…
y
(
k
)
=
∑
d
=
1
D
(
∑
r
1
=
0
N
d
−
1
∑
r
2
=
0
N
d
−
1
.
.
.
∑
r
d
=
0
N
d
−
1
h
(
r
1
,
r
2
,
…
,
r
d
)
∏
j
=
1
d
x
(
k
−
r
j
)
)
(
1
)
y(k)=\sum_{d=1}^{D}\left(\sum_{r_{1}=0}^{N_{d}-1} \sum_{r_{2}=0}^{N_{d}-1}... \sum_{r_{d}=0}^{N_{d}-1} h\left(r_{1}, r_{2}, \ldots, r_{d}\right) \prod_{j=1}^{d} x\left(k-r_{j}\right)\right)(1)
y(k)=d=1∑D(r1=0∑Nd−1r2=0∑Nd−1...rd=0∑Nd−1h(r1,r2,…,rd)j=1∏dx(k−rj))(1)
x ( k ) x(k) x(k):非线性系统的输入(时域信号, k k k表示时间);
y ( k ) y(k) y(k):非线性系统的输出;
d d d表示阶数, D D D表示 d d d的最大取值;
r j r_{j} rj表示构成 d d d阶项中第 j j j项对应的记忆时延(这名字我瞎起的), N d N_{d} Nd代表记忆深度, N d − 1 N_{d}-1 Nd−1也就是 r j r_{j} rj能取的最大正整数,也就是最大考虑的记忆时延。
求和代表的考虑的是时间离散的情况。
尴尬的是,即便是知道各个参数的含义,恕我愚钝,盯着(1)式看了足足十分钟,愣是没看出个所以然…为了避免继续蒙蔽下去,我尝试着按下面的步骤一点点理解。
首先,从一般的幂级数开始,式(2)的含义比较清楚。
y
(
k
)
=
∑
d
=
1
D
h
d
⋅
x
d
(
k
)
(
2
)
y(k)=\sum_{d=1}^{D} h_{d} \cdot x^{d}(k)(2)
y(k)=d=1∑Dhd⋅xd(k)(2)
展开就是
y
(
k
)
=
h
1
⋅
x
(
k
)
+
h
2
⋅
x
2
(
k
)
+
…
y(k)=h_{1} \cdot x(k)+h_{2} \cdot x^{2}(k)+\ldots
y(k)=h1⋅x(k)+h2⋅x2(k)+…,阶数截断到
D
D
D,可以看到上式只考虑了非线性效应(在接收系统的背景下,非线性指的是有新频率产生),而没有考虑记忆效应(在接收系统的背景下,记忆效应表现为时延失真?暂且这么理解)。
接下来,引入记忆效应,考虑第 d d d阶的输出项是由从现在到过去 N d N_{d} Nd个离散时间单位处的加权值的叠加得到(注意对于每个阶数 d d d可以有不同的记忆深度 N d N_{d} Nd),每个记忆时延点,都会有一个加权系数 h d ( r ) h_{d} (r) hd(r),那么(2)式中的 h d ⋅ x d ( k ) ( 2 ) h_{d} \cdot x^{d}(k)(2) hd⋅xd(k)(2)就变成了下述对时间的求和。
∑ r = 0 N d − 1 h d ( r ) ⋅ x d ( k − r ) ( 3 ) \sum_{r=0}^{N_{d-1}} h_{d}(r) \cdot x^{d}(k-r)(3) r=0∑Nd−1hd(r)⋅xd(k−r)(3)
再代入到(2)式就有
y
(
k
)
=
∑
d
=
1
D
(
∑
r
=
0
N
d
−
1
h
d
(
r
)
⋅
x
d
(
k
−
r
)
)
(
4
)
y(k)=\sum_{d=1}^{D}\left(\sum_{r=0}^{N_{d}-1} h_{d}(r) \cdot x^{d}(k-r)\right)(4)
y(k)=d=1∑D(r=0∑Nd−1hd(r)⋅xd(k−r))(4)
(4)式就是记忆多项式模型,考虑了非线性和记忆效应。
最后,式(4)求和项 h d ( r ) ⋅ x d ( k − r ) h_{d}(r) \cdot x^{d}(k-r) hd(r)⋅xd(k−r)的 d d d阶项都是由同一个记忆时延构成,当我们考虑更复杂的情况时,即 x d ( k − r ) x^{d}(k-r) xd(k−r)项由任意记忆时延项构成时,就能够得到最一般的Volterra级数公式。
第一步, x d ( k − r ) x^{d}(k-r) xd(k−r)将变成 ∏ j = 1 d x ( k − r j ) \prod_{j=1}^{d} x\left(k-r_{j}\right) ∏j=1dx(k−rj),也就是 d d d个求积的各项,都可以自由的选择记忆时延,第 j j j项求积项选择的记忆时延是 r j r_{j} rj;
第二步, d d d阶的系数数量上不再是(4)式的 N d N_{d} Nd项,而变成了 ( N d ) d (N_{d})^{d} (Nd)d项,每项表示为 h ( r 1 , r 2 , … , r d ) h\left(r_{1}, r_{2}, \dots, r_{d}\right) h(r1,r2,…,rd);
第三步,对
d
d
d阶
h
(
r
1
,
r
2
,
…
,
r
d
)
∏
j
=
1
d
x
(
k
−
r
j
)
h\left(r_{1}, r_{2}, \ldots, r_{d}\right) \prod_{j=1}^{d} x\left(k-r_{j}\right)
h(r1,r2,…,rd)∏j=1dx(k−rj)各项求和就有
∑
r
1
=
0
N
d
−
1
∑
r
2
=
0
N
d
−
1
.
.
.
∑
r
d
=
0
N
d
−
1
h
(
r
1
,
r
2
,
…
,
r
d
)
∏
j
=
1
d
x
(
k
−
r
j
)
(
5
)
\sum_{r_{1}=0}^{N_{d}-1} \sum_{r_{2}=0}^{N_{d}-1}... \sum_{r_{d}=0}^{N_{d}-1} h\left(r_{1}, r_{2}, \ldots, r_{d}\right) \prod_{j=1}^{d} x\left(k-r_{j}\right)(5)
r1=0∑Nd−1r2=0∑Nd−1...rd=0∑Nd−1h(r1,r2,…,rd)j=1∏dx(k−rj)(5)
最后一步,再对各阶求和,就得到了(1)式。
不否认,有NB的一眼就能理解(1)并且理解的比咱分析半天还深刻得多,但没那智商我也就只能老老实实,一步步试着理解,特此记录防止过两天不看忘了个一干二净。