/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
第一章 梳状导频与信道估计
1.1 OFDM 频域模型
在忽略噪声、频偏、定时误差,且循环前缀不短于多径时延的前提下,OFDM 第
k
k
k 个子载波上的接收符号为
Y
[
k
]
=
H
[
k
]
X
[
k
]
,
k
=
0
,
1
,
…
,
N
−
1
Y[k]=H[k]X[k],\\qquad k=0,1,\\dots,N-1
Y[k]=H[k]X[k],k=0,1,…,N−1
其中
X
[
k
]
X[k]
X[k] 是发射符号,
H
[
k
]
H[k]
H[k] 是信道频率响应。设信道冲激响应为
h
[
l
]
,
l
=
0
,
1
,
…
,
L
−
1
h[l],\\quad l=0,1,\\dots,L-1
h[l],l=0,1,…,L−1
即最大时延对应
L
−
1
L-1
L−1 个采样点,则
H
[
k
]
=
∑
l
=
0
L
−
1
h
[
l
]
e
−
j
2
π
k
l
/
N
H[k]=\\sum_{l=0}^{L-1}h[l]\\,e^{-j2\\pi kl/N}
H[k]=l=0∑L−1h[l]e−j2πkl/N
这里的
N
N
N 是 FFT 点数,
L
L
L 是信道有效抽头数。
举个例子:取
N
=
8
N=8
N=8、
h
=
[
1
,
0.5
,
0.2
]
h=[1,\\ 0.5,\\ 0.2]
h=[1, 0.5, 0.2](
L
=
3
L=3
L=3)。真实信道频率响应为
H
[
k
]
=
1
+
0.5
e
−
j
2
π
k
/
8
+
0.2
e
−
j
4
π
k
/
8
H[k]=1+0.5e^{-j2\\pi k/8}+0.2e^{-j4\\pi k/8}
H[k]=1+0.5e−j2πk/8+0.2e−j4πk/8
计算得:
|
H [ k ] H[k] H[k] |
1.7000 + j 0.0000 1.7000+j0.0000 1.7000+j0.0000 |
1.3536 − j 0.5536 1.3536-j0.5536 1.3536−j0.5536 |
0.8000 − j 0.5000 0.8000-j0.5000 0.8000−j0.5000 |
0.6464 − j 0.1536 0.6464-j0.1536 0.6464−j0.1536 |
0.7000 + j 0.0000 0.7000+j0.0000 0.7000+j0.0000 |
0.6464 + j 0.1536 0.6464+j0.1536 0.6464+j0.1536 |
0.8000 + j 0.5000 0.8000+j0.5000 0.8000+j0.5000 |
1.3536 + j 0.5536 1.3536+j0.5536 1.3536+j0.5536 |
1.2 梳状导频
梳状导频在频域每隔
P
P
P 个子载波放置一个已知符号,导频子载波集合为
K
p
=
{
k
p
(
m
)
=
m
P
,
m
=
0
,
1
,
…
,
M
−
1
}
\\mathcal{K}_p=\\{k_p(m)=mP,\\ m=0,1,\\dots,M-1\\}
Kp={kp(m)=mP, m=0,1,…,M−1}
其中
P
P
P 是导频间隔,
M
M
M 是导频个数。当
P
P
P 整除
N
N
N 时,导频在频域均匀分布;当
P
P
P 不整除
N
N
N 时,导频分布变成“准均匀”,频带边缘的间隔会与中间不同。
设导频符号为已知的
X
p
X_p
Xp,接收端在导频位置做最小二乘(LS)估计:
H
^
[
k
p
(
m
)
]
=
Y
[
k
p
(
m
)
]
X
[
k
p
(
m
)
]
=
H
[
k
p
(
m
)
]
X
p
X
p
=
H
[
k
p
(
m
)
]
\\hat H[k_p(m)] =\\frac{Y[k_p(m)]}{X[k_p(m)]} =\\frac{H[k_p(m)]X_p}{X_p} =H[k_p(m)]
H^[kp(m)]=X[kp(m)]Y[kp(m)]=XpH[kp(m)]Xp=H[kp(m)]
在无噪声条件下,导频点上的 LS 估计是精确的。
举个例子:把
N
=
8
N=8
N=8 代进
k
p
(
m
)
=
m
P
k_p(m)=mP
kp(m)=mP 看看。
m
m
m 从 0 开始逐个取,只要
m
P
<
8
mP<8
mP<8,这个
m
P
mP
mP 就还在 8 点索引范围内,是一个有效导频;再往后取就超出去了。因此导频个数是
M
=
⌈
8
/
P
⌉
M=\\lceil 8/P\\rceil
M=⌈8/P⌉:
|
K p \\mathcal{K}_p Kp |
{ 0 , 1 , … , 7 } \\{0,1,\\dots,7\\} {0,1,…,7} |
{ 0 , 2 , 4 , 6 } \\{0,2,4,6\\} {0,2,4,6} |
{ 0 , 3 , 6 } \\{0,3,6\\} {0,3,6} |
{ 0 , 4 } \\{0,4\\} {0,4} |
| 导频数
M M M |
8 | 4 | 3 | 2 |
| 沿圆周的相邻间隔 | 全为 1 |
2 , 2 , 2 , 2 2,2,2,2 2,2,2,2 |
3 , 3 , 2 3,3,2 3,3,2 |
4 , 4 4,4 4,4 |
P
=
1
P=1
P=1 是全插,8 个子载波全放导频。
P
=
2
P=2
P=2 和
P
=
4
P=4
P=4 都整除 8,最后一个导频绕回
k
=
0
k=0
k=0 时,间隔仍然是 2 和 4,整圈均匀。
P
=
3
P=3
P=3 不整除 8:
m
=
0
,
1
,
2
m=0,1,2
m=0,1,2 给出
0
,
3
,
6
0,3,6
0,3,6,
m
=
3
m=3
m=3 就是 9,超出范围,于是尾部
6
→
0
6\\to0
6→0 只剩
8
−
6
=
2
8-6=2
8−6=2 个间隔,比中间的 3 短,这就是前面说的“准均匀”。
0
∼
7
0\\sim7
0∼7 里扣掉
K
p
\\mathcal{K}_p
Kp,剩下的就是非导频子载波,需要在这些子载波位置重建信道估计结果,下一节的三种重建方式要做的就是往这些空位上填
H
^
[
k
]
\\hat H[k]
H^[k]。
1.3 从导频点到全频带:三种重建方式
方式一:频域线性插值。 对相邻两个导频点之间的子载波,按频率距离做线性内插:
H
^
[
k
]
=
H
^
[
k
0
]
+
k
−
k
0
k
1
−
k
0
(
H
^
[
k
1
]
−
H
^
[
k
0
]
)
,
k
0
<
k
<
k
1
\\hat H[k]=\\hat H[k_0]+ \\frac{k-k_0}{k_1-k_0} \\bigl(\\hat H[k_1]-\\hat H[k_0]\\bigr), \\quad k_0<k<k_1
H^[k]=H^[k0]+k1−k0k−k0(H^[k1]−H^[k0]),k0<k<k1
频带两端按循环边界处理。线性插值实现简单,但真实的
H
[
k
]
H[k]
H[k] 随频率是弯的,用直线把相邻两个导频连起来,中间的点就会偏离真值,这就是“曲率误差”,导频加密只能把它压小。
举个例子:取
P
=
2
P=2
P=2,导频集合为
{
0
,
2
,
4
,
6
}
\\{0,2,4,6\\}
{0,2,4,6}。没有导频的
k
=
1
k=1
k=1 夹在
k
=
0
,
2
k=0,2
k=0,2 之间,按上式算得
H
^
[
1
]
=
(
1.7
+
0.8
−
0.5
j
)
/
2
=
1.25
−
0.25
j
\\hat H[1]=(1.7+0.8-0.5j)/2=1.25-0.25j
H^[1]=(1.7+0.8−0.5j)/2=1.25−0.25j。
方式二:DFT 补零重建。 当
P
P
P 整除
N
N
N 时,导频值
H
[
m
P
]
H[mP]
H[mP] 恰好是
h
h
h 的
N
/
P
N/P
N/P 点 DFT(
L
L
L 超过
N
/
P
N/P
N/P 时会先折叠,见 2.1)。对导频序列做
N
/
P
N/P
N/P 点 IDFT 得到时域信道估计,补零到
N
N
N 点后再做
N
N
N 点 FFT,就得到全部子载波上的
H
^
[
k
]
\\hat H[k]
H^[k]。
举个例子:换用 DFT 补零方法求
k
=
1
k=1
k=1 下的频率响应。IDFT 之前的四个导频值(取自 1.1 的表)是
|
H [ k p ] H[k_p] H[kp] |
1.7000 1.7000 1.7000 |
0.8000 − j 0.5000 0.8000-j0.5000 0.8000−j0.5000 |
0.7000 0.7000 0.7000 |
0.8000 + j 0.5000 0.8000+j0.5000 0.8000+j0.5000 |
对这四个值做 4 点 IDFT,得
[
1
,
0.5
,
0.2
,
0
]
[1,\\ 0.5,\\ 0.2,\\ 0]
[1, 0.5, 0.2, 0];末尾补四个零到 8 点,得
[
1
,
0.5
,
0.2
,
0
,
0
,
0
,
0
,
0
]
[1,\\ 0.5,\\ 0.2,\\ 0,\\ 0,\\ 0,\\ 0,\\ 0]
[1, 0.5, 0.2, 0, 0, 0, 0, 0]。再做 8 点 FFT:
|
H ^ [ k ] \\hat H[k] H^[k] |
1.7000 + j 0.0000 1.7000+j0.0000 1.7000+j0.0000 |
1.3536 − j 0.5536 1.3536-j0.5536 1.3536−j0.5536 |
0.8000 − j 0.5000 0.8000-j0.5000 0.8000−j0.5000 |
0.6464 − j 0.1536 0.6464-j0.1536 0.6464−j0.1536 |
0.7000 + j 0.0000 0.7000+j0.0000 0.7000+j0.0000 |
0.6464 + j 0.1536 0.6464+j0.1536 0.6464+j0.1536 |
0.8000 + j 0.5000 0.8000+j0.5000 0.8000+j0.5000 |
1.3536 + j 0.5536 1.3536+j0.5536 1.3536+j0.5536 |
与 1.1 的真实
H
[
k
]
H[k]
H[k] 逐点相同,
k
=
1
k=1
k=1 上就是
H
^
[
1
]
=
1.3536
−
j
0.5536
\\hat H[1]=1.3536-j0.5536
H^[1]=1.3536−j0.5536。
方式三:时域 LS 重建。 该方法不要求
P
P
P 整除
N
N
N:设信道抽头数上界为
L
^
\\hat L
L^,构造导频位置的观测矩阵
A
m
,
l
=
e
−
j
2
π
k
p
(
m
)
l
/
N
,
m
=
0
,
…
,
M
−
1
,
l
=
0
,
…
,
L
^
−
1
A_{m,l}=e^{-j2\\pi k_p(m)l/N}, \\quad m=0,\\dots,M-1,\\ l=0,\\dots,\\hat L-1
Am,l=e−j2πkp(m)l/N,m=0,…,M−1, l=0,…,L^−1
解最小二乘
h
^
=
arg
min
h
∥
A
h
−
H
^
p
∥
2
\\hat{h}=\\arg\\min_{h}\\Vert Ah-\\hat{H}_p\\Vert^2
h^=arghmin∥Ah−H^p∥2
再算
H
^
[
k
]
=
∑
l
h
^
[
l
]
e
−
j
2
π
k
l
/
N
\\hat H[k]=\\sum_l \\hat h[l]e^{-j2\\pi kl/N}
H^[k]=l∑h^[l]e−j2πkl/N
当导频数
M
≥
L
^
M\\ge \\hat L
M≥L^ 且导频频率点互异时,
A
A
A 列满秩,无噪声下可精确恢复。
举个例子:仍取
P
=
2
P=2
P=2 的四个导频、设
L
^
=
3
\\hat L=3
L^=3,按上面的公式把
k
=
1
k=1
k=1 完整算一遍。
第一步,列出观测值。导频位置的 LS 估计值取自 1.1 的表:
|
k p ( m ) k_p(m) kp(m) |
0 | 2 | 4 | 6 |
|
H ^ p [ m ] \\hat H_p[m] H^p[m] |
1.7000 1.7000 1.7000 |
0.8000 − j 0.5000 0.8000-j0.5000 0.8000−j0.5000 |
0.7000 0.7000 0.7000 |
0.8000 + j 0.5000 0.8000+j0.5000 0.8000+j0.5000 |
第二步,构造
A
A
A。把
N
=
8
N=8
N=8、
L
^
=
3
\\hat L=3
L^=3 代进
A
m
,
l
=
e
−
j
2
π
k
p
(
m
)
l
/
N
A_{m,l}=e^{-j2\\pi k_p(m)l/N}
Am,l=e−j2πkp(m)l/N,四个导频对应的相位因子依次是
1
1
1、
e
−
j
π
l
/
2
e^{-j\\pi l/2}
e−jπl/2、
e
−
j
π
l
e^{-j\\pi l}
e−jπl、
e
−
j
3
π
l
/
2
e^{-j3\\pi l/2}
e−j3πl/2;让
l
l
l 取
0
,
1
,
2
0,1,2
0,1,2,得到
A
=
[
1
1
1
1
−
j
−
1
1
−
1
1
1
j
−
1
]
,
H
^
p
=
[
1.7
0.8
−
0.5
j
0.7
0.8
+
0.5
j
]
A=\\begin{bmatrix}1&1&1\\\\1&-j&-1\\\\1&-1&1\\\\1&j&-1\\end{bmatrix},\\qquad \\hat H_p=\\begin{bmatrix}1.7\\\\0.8-0.5j\\\\0.7\\\\0.8+0.5j\\end{bmatrix}
A=
11111−j−1j1−11−1
,H^p=
1.70.8−0.5j0.70.8+0.5j
比如第二行
k
p
=
2
k_p=2
kp=2 的两个相位因子是
e
−
j
π
/
2
=
−
j
e^{-j\\pi/2}=-j
e−jπ/2=−j、
e
−
j
π
=
−
1
e^{-j\\pi}=-1
e−jπ=−1,该行乘
h
h
h 得
1
−
0.5
j
−
0.2
=
0.8
−
0.5
j
1-0.5j-0.2=0.8-0.5j
1−0.5j−0.2=0.8−0.5j;第四行
k
p
=
6
k_p=6
kp=6 是
e
−
j
3
π
/
2
=
j
e^{-j3\\pi/2}=j
e−j3π/2=j、
e
−
j
3
π
=
−
1
e^{-j3\\pi}=-1
e−j3π=−1,乘
h
h
h 得
1
+
0.5
j
−
0.2
=
0.8
+
0.5
j
1+0.5j-0.2=0.8+0.5j
1+0.5j−0.2=0.8+0.5j。两行分别与表中的
H
^
p
[
1
]
\\hat H_p[1]
H^p[1]、
H
^
p
[
3
]
\\hat H_p[3]
H^p[3] 对得上,矩阵没构造错。
第三步,解最小二乘。这里
M
=
4
>
L
^
=
3
M=4>\\hat L=3
M=4>L^=3,方程比未知数多一个;但无噪声下
H
^
p
\\hat H_p
H^p 恰好落在
A
A
A 的列空间里,所以仍有精确解。走正规方程
A
H
A
h
^
=
A
H
H
^
p
A^{H}A\\hat h=A^{H}\\hat H_p
AHAh^=AHH^p:
A
A
A 的三列两两正交,每列模方都是 4,故
A
H
A
=
4
I
,
A
H
H
^
p
=
[
4
,
2
,
0.8
]
T
A^{H}A=4I,\\qquad A^{H}\\hat H_p=[4,\\ 2,\\ 0.8]^T
AHA=4I,AHH^p=[4, 2, 0.8]T
h
^
=
(
A
H
A
)
−
1
A
H
H
^
p
=
1
4
[
4
,
2
,
0.8
]
T
=
[
1
,
0.5
,
0.2
]
T
\\hat h=(A^{H}A)^{-1}A^{H}\\hat H_p=\\frac{1}{4}[4,\\ 2,\\ 0.8]^T=[1,\\ 0.5,\\ 0.2]^T
h^=(AHA)−1AHH^p=41[4, 2, 0.8]T=[1, 0.5, 0.2]T
三个抽头与真实
h
h
h 逐个相同。这里的
1
4
A
H
\\frac{1}{4}A^{H}
41AH 正是 4 点 IDFT 的前三行,所以
P
P
P 整除
N
N
N 时,方式三解出的抽头和方式二 4 点 IDFT 得到的序列前三项是同一组数。
第四步,代回求
H
^
[
1
]
\\hat H[1]
H^[1]。
k
=
1
k=1
k=1 时
e
−
j
2
π
l
/
8
e^{-j2\\pi l/8}
e−j2πl/8 在
l
=
0
,
1
,
2
l=0,1,2
l=0,1,2 上依次是
1
1
1、
e
−
j
π
/
4
=
0.7071
−
0.7071
j
e^{-j\\pi/4}=0.7071-0.7071j
e−jπ/4=0.7071−0.7071j、
e
−
j
π
/
2
=
−
j
e^{-j\\pi/2}=-j
e−jπ/2=−j,于是
H
^
[
1
]
=
1
+
0.5
(
0.7071
−
0.7071
j
)
+
0.2
(
−
j
)
=
1.3536
−
j
0.5536
\\hat H[1]=1+0.5(0.7071-0.7071j)+0.2(-j)=1.3536-j0.5536
H^[1]=1+0.5(0.7071−0.7071j)+0.2(−j)=1.3536−j0.5536
与 1.1 的真实值相同,误差为 0。其余 7 个子载波照此代回,得到的
H
^
[
k
]
\\hat H[k]
H^[k] 与方式二那张表逐点相同。
真实值
H
[
1
]
=
1.3536
−
j
0.5536
H[1]=1.3536-j0.5536
H[1]=1.3536−j0.5536,方式二和方式三算出的
H
^
[
1
]
\\hat H[1]
H^[1] 与它完全相同,方式一的误差模值是
0.3207
0.3207
0.3207。同一组导频、同一个子载波,差别只来自重建方式;第三章会用线性插值和 DFT 补零把整条频带上的误差统计出来。
第二章 导频间隔与信道估计的无混叠恢复条件
2.1 频域采样等价于时域周期延拓
设
P
P
P 整除
N
N
N,记
M
=
N
/
P
M=N/P
M=N/P(这时它正好是 1.2 里那个导频数),只保留
k
=
m
P
k=mP
k=mP 上的频域值。把
k
=
m
P
k=mP
k=mP 代进 1.1 的频率响应式:
H
[
m
P
]
=
∑
l
=
0
L
−
1
h
[
l
]
e
−
j
2
π
m
P
l
/
N
=
∑
l
=
0
L
−
1
h
[
l
]
e
−
j
2
π
m
l
/
M
H[mP]=\\sum_{l=0}^{L-1}h[l]\\,e^{-j2\\pi mPl/N}=\\sum_{l=0}^{L-1}h[l]\\,e^{-j2\\pi ml/M}
H[mP]=l=0∑L−1h[l]e−j2πmPl/N=l=0∑L−1h[l]e−j2πml/M
把
N
/
P
N/P
N/P 写成
M
M
M 只是记号。真正起作用的是指数里的
e
−
j
2
π
m
l
/
M
e^{-j2\\pi ml/M}
e−j2πml/M:它在
l
l
l 上加
M
M
M 的整数倍不变,因为
e
−
j
2
π
m
(
l
+
M
)
/
M
=
e
−
j
2
π
m
l
/
M
⋅
e
−
j
2
π
m
=
e
−
j
2
π
m
l
/
M
e^{-j2\\pi m(l+M)/M}=e^{-j2\\pi ml/M}\\cdot e^{-j2\\pi m}=e^{-j2\\pi ml/M}
e−j2πm(l+M)/M=e−j2πml/M⋅e−j2πm=e−j2πml/M
也就是对导频来说,抽头下标
l
l
l 只有除以
M
M
M 的余数有意义,
l
=
0
l=0
l=0 与
l
=
M
l=M
l=M、
l
=
2
M
l=2M
l=2M 给出的相位因子完全一样,光看导频分不出来。
既然只认余数,就把每个下标写成
l
=
l
′
+
q
M
l=l'+qM
l=l′+qM(
0
≤
l
′
<
M
0\\le l'<M
0≤l′<M),再把余数相同的抽头并成一项:
H
[
m
P
]
=
∑
l
′
=
0
M
−
1
(
∑
q
h
[
l
′
+
q
M
]
)
e
−
j
2
π
m
l
′
/
M
H[mP]=\\sum_{l'=0}^{M-1}\\left(\\sum_q h[l'+qM]\\right)e^{-j2\\pi ml'/M}
H[mP]=l′=0∑M−1(q∑h[l′+qM])e−j2πml′/M
括号里那串
h
[
l
′
]
+
h
[
l
′
+
M
]
+
h
[
l
′
+
2
M
]
+
⋯
h[l']+h[l'+M]+h[l'+2M]+\\cdots
h[l′]+h[l′+M]+h[l′+2M]+⋯ 就是
h
per
[
l
′
]
h_{\\text{per}}[l']
hper[l′]。代回去能看出,
M
M
M 个导频值恰好是
h
per
h_{\\text{per}}
hper 的
M
M
M 点 DFT;反过来,对导频值做
M
M
M 点 IDFT,拿到的就是括号里的序列:
h
per
[
l
]
=
∑
q
h
[
l
+
q
M
]
=
h
[
l
]
+
h
[
l
+
M
]
+
h
[
l
+
2
M
]
+
⋯
,
l
=
0
,
…
,
M
−
1
h_{\\text{per}}[l]=\\sum_q h[l+qM]=h[l]+h[l+M]+h[l+2M]+\\cdots,\\qquad l=0,\\dots,M-1
hper[l]=q∑h[l+qM]=h[l]+h[l+M]+h[l+2M]+⋯,l=0,…,M−1
式子到这里就出来了,来路只有两步:
M
M
M 点 DFT 只认
l
l
l 除以
M
M
M 的余数,余数相同的抽头合成一格。原来的
h
h
h 有
L
L
L 个抽头,被摊进
M
M
M 个格子,各按自己的余数入座,落进同一格的直接相加。
换个方向验一遍也成立:把
h
per
[
l
′
]
=
1
M
∑
m
=
0
M
−
1
H
[
m
P
]
e
j
2
π
m
l
′
/
M
h_{\\text{per}}[l']=\\frac{1}{M}\\sum_{m=0}^{M-1}H[mP]e^{j2\\pi ml'/M}
hper[l′]=M1∑m=0M−1H[mP]ej2πml′/M 展开、代入上面
H
[
m
P
]
H[mP]
H[mP] 的表达式、交换求和次序,内层就是
1
M
∑
m
=
0
M
−
1
e
j
2
π
m
(
l
′
−
l
)
/
M
=
{
1
,
l
′
−
l
=
q
M
0
,
其他
\\frac{1}{M}\\sum_{m=0}^{M-1}e^{j2\\pi m(l'-l)/M}=\\begin{cases}1, & l'-l=qM\\\\ 0, & \\text{其他}\\end{cases}
M1m=0∑M−1ej2πm(l′−l)/M={1,0,l′−l=qM其他
它只放行余数相同的项,其余全被抵消。每个抽头
h
[
l
]
h[l]
h[l] 因此只落进
l
′
l'
l′ 这一格,与上面的结论一致。
再说“周期延拓”这个叫法。把上式里的
l
l
l 放开到任意整数,令
h
p
[
l
]
=
∑
q
h
[
l
+
q
M
]
h_p[l]=\\sum_q h[l+qM]
hp[l]=∑qh[l+qM](就是把
h
per
h_{\\text{per}}
hper 向两侧无限复制),那么
h
p
[
l
+
M
]
=
h
p
[
l
]
h_p[l+M]=h_p[l]
hp[l+M]=hp[l],
h
p
h_p
hp 就是以
M
M
M 为周期的序列。
M
M
M 点 IDFT 给出的只是它的一个周期,把这个周期反复复制铺满时间轴才是完整的
h
p
h_p
hp;换句话说,
h
h
h 里每个抽头都在相隔
M
M
M 个点的位置上各出现一次,副本间距就是
M
M
M。
M
≥
L
M\\ge L
M≥L 时一格里最多落进一个抽头,延拓的结果只是把抽头挪了位置、空处补零;
M
<
L
M<L
M<L 时一格里挤进两个以上抽头,相加之后再也分不开,这就是混叠。
也就是说:
频域每隔
P
P
P 个点采样一次,等价于时域以
N
/
P
N/P
N/P 个采样点为周期做周期延拓。
举个例子:仍取
N
=
8
N=8
N=8、
h
=
[
1
,
0.5
,
0.2
]
h=[1,\\ 0.5,\\ 0.2]
h=[1, 0.5, 0.2]。先看
P
=
2
P=2
P=2,此时周期
N
/
P
=
4
N/P=4
N/P=4,把
H
[
0
]
,
H
[
2
]
,
H
[
4
]
,
H
[
6
]
H[0],H[2],H[4],H[6]
H[0],H[2],H[4],H[6] 做 4 点 IDFT,例如
h
per
[
0
]
=
1.7
+
(
0.8
−
0.5
j
)
+
0.7
+
(
0.8
+
0.5
j
)
4
=
1
h_{\\text{per}}[0]=\\frac{1.7+(0.8-0.5j)+0.7+(0.8+0.5j)}{4}=1
hper[0]=41.7+(0.8−0.5j)+0.7+(0.8+0.5j)=1
h
per
[
3
]
=
1.7
+
(
−
0.5
−
0.8
j
)
−
0.7
+
(
−
0.5
+
0.8
j
)
4
=
0
h_{\\text{per}}[3]=\\frac{1.7+(-0.5-0.8j)-0.7+(-0.5+0.8j)}{4}=0
hper[3]=41.7+(−0.5−0.8j)−0.7+(−0.5+0.8j)=0
四个位置的结果是
|
h per [ l ] h_{\\text{per}}[l] hper[l] |
1 1 1 |
0.5 0.5 0.5 |
0.2 0.2 0.2 |
0 0 0 |
这就是
h
=
[
1
,
0.5
,
0.2
]
h=[1,\\ 0.5,\\ 0.2]
h=[1, 0.5, 0.2] 末尾补一个零。因为
L
=
3
≤
N
/
P
=
4
L=3\\le N/P=4
L=3≤N/P=4,求和式
∑
q
h
[
l
+
q
⋅
4
]
\\sum_q h[l+q\\cdot4]
∑qh[l+q⋅4] 里只有
q
=
0
q=0
q=0 那一份非零,切出的第二段全是零,叠了等于没叠。所以这一组数看着就是普通补零,确实看不出“周期延拓”。
把
P
P
P 换成 4,周期缩到
N
/
P
=
2
N/P=2
N/P=2,比
h
h
h 还短,延拓就藏不住了。这时导频只剩
H
[
0
]
=
1.7
H[0]=1.7
H[0]=1.7、
H
[
4
]
=
0.7
H[4]=0.7
H[4]=0.7,做 2 点 IDFT:
h
per
[
0
]
=
1.7
+
0.7
2
=
1.2
,
h
per
[
1
]
=
1.7
−
0.7
2
=
0.5
h_{\\text{per}}[0]=\\frac{1.7+0.7}{2}=1.2,\\qquad h_{\\text{per}}[1]=\\frac{1.7-0.7}{2}=0.5
hper[0]=21.7+0.7=1.2,hper[1]=21.7−0.7=0.5
对照折叠式,
l
=
0
l=0
l=0 收的是
h
[
0
]
+
h
[
2
]
=
1
+
0.2
=
1.2
h[0]+h[2]=1+0.2=1.2
h[0]+h[2]=1+0.2=1.2,
l
=
1
l=1
l=1 收的只有
h
[
1
]
=
0.5
h[1]=0.5
h[1]=0.5。下标 2 已经落在第二段里,抽头
h
[
2
]
h[2]
h[2] 被搬回
l
=
0
l=0
l=0,和
h
[
0
]
h[0]
h[0] 加在一起变成
1.2
1.2
1.2,这两个抽头从此再也分不开:换成
h
[
0
]
=
0.8
h[0]=0.8
h[0]=0.8、
h
[
2
]
=
0.4
h[2]=0.4
h[2]=0.4,格 0 仍是
0.8
+
0.4
=
1.2
0.8+0.4=1.2
0.8+0.4=1.2,
H
[
0
]
=
0.8
+
0.5
+
0.4
=
1.7
H[0]=0.8+0.5+0.4=1.7
H[0]=0.8+0.5+0.4=1.7、
H
[
4
]
=
0.8
−
0.5
+
0.4
=
0.7
H[4]=0.8-0.5+0.4=0.7
H[4]=0.8−0.5+0.4=0.7,两个导频值一个都没变。可见 2 点 IDFT 给出的正是折叠相加的结果,而不是原来的
h
h
h——这就是周期延拓带来的混叠。
2.2 无混叠条件
真实信道只在
l
=
0
,
…
,
L
−
1
l=0,\\dots,L-1
l=0,…,L−1 上非零。要让周期延拓的各副本互不重叠,必须
L
≤
N
P
L\\le \\frac{N}{P}
L≤PN
等价地
P
≤
N
L
P\\le \\frac{N}{L}
P≤LN
满足该条件时,一个周期内的
h
per
[
l
]
h_{\\text{per}}[l]
hper[l] 就等于原
h
[
l
]
h[l]
h[l],可以由导频值无失真地恢复全部
H
[
k
]
H[k]
H[k]。不满足时,不同时延抽头会折叠到同一位置,产生混叠,任何插值都无法区分。
当
L
=
N
/
P
L=N/P
L=N/P 时是临界情形:副本首尾相接但不重叠,理论上仍可恢复,但没有留任何余量。
对于
P
P
P 不整除
N
N
N 的情况,均匀 DFT 补零的判据不能直接套用;此时要看导频数
M
M
M 是否不少于未知抽头数,以及导频频率点构造的观测矩阵是否列满秩。若
M
<
L
M<L
M<L,则必然无法精确恢复。
举个例子:把
N
=
8
N=8
N=8、
L
=
3
L=3
L=3 代进
L
≤
N
/
P
L\\le N/P
L≤N/P:
|
N / P N/P N/P |
8 | 4 | 2 |
| 与
L = 3 L=3 L=3 比较 |
≥ \\ge ≥ |
≥ \\ge ≥ |
< < < |
| 副本是否重叠 | 否 | 否 | 是 |
P
=
1
,
2
P=1,2
P=1,2 都不混叠,
P
=
2
P=2
P=2 只留一个抽头的余量;
P
=
4
P=4
P=4 时周期长度只有 2,装不下 3 个抽头,
h
[
2
]
h[2]
h[2] 会折到
l
=
0
l=0
l=0 上(2.1 已经用 2 点 IDFT 算出折叠后的
1.2
1.2
1.2)。
P
=
3
P=3
P=3 不整除
N
N
N,这张表判不了,改看导频数:
M
=
3
M=3
M=3 不小于
L
=
3
L=3
L=3,三个导频频率点又互异,剩下的就是
A
A
A 是否列满秩,如果满秩则可以解出信道估计结果。
2.3 线性插值为什么还会额外出错
无混叠条件只保证“存在一种理想重建方式可以精确恢复”,它并不保证线性插值精确。线性插值只用了相邻两个导频点,相当于用一个分段直线去逼近
H
[
k
]
H[k]
H[k] 的曲线。
H
[
k
]
H[k]
H[k] 是
L
L
L 个复指数的叠加,其频率选择性越强,曲线弯曲越厉害,线性插值的曲率误差就越大。
因此实际误差由两部分组成:
直接量一下
P
=
2
P=2
P=2 时
H
[
k
]
H[k]
H[k] 的弯曲程度。线性插值在
k
=
1
,
3
k=1,3
k=1,3 处取的就是两端导频的中点,与真实值相减:
H
[
0
]
+
H
[
2
]
2
−
H
[
1
]
=
−
0.1036
+
j
0.3036
,
H
[
2
]
+
H
[
4
]
2
−
H
[
3
]
=
0.1036
−
j
0.0964
\\frac{H[0]+H[2]}{2}-H[1]=-0.1036+j0.3036,\\qquad \\frac{H[2]+H[4]}{2}-H[3]=0.1036-j0.0964
2H[0]+H[2]−H[1]=−0.1036+j0.3036,2H[2]+H[4]−H[3]=0.1036−j0.0964
模分别是
0.3207
0.3207
0.3207 和
0.1415
0.1415
0.1415。
P
=
2
P=2
P=2 满足
L
=
3
≤
N
/
P
=
4
L=3\\le N/P=4
L=3≤N/P=4,本不该有混叠,可这两处偏差都不为零,大小还不一样——它们正是线性插值丢掉的曲率。换用 DFT 补零,这两个点上的
H
^
[
k
]
\\hat H[k]
H^[k] 与
H
[
k
]
H[k]
H[k] 逐点相等。可见这部分误差与混叠无关,加密导频只能把它压小,只要还有非导频点就消不干净。
第三章 计算实例
3.1 用于对比的信道频率响应例子
1.1 已经给出
N
=
8
N=8
N=8、
h
=
[
1
,
0.5
,
0.2
]
h=[1,\\ 0.5,\\ 0.2]
h=[1, 0.5, 0.2](
L
=
3
L=3
L=3)和 8 个
H
[
k
]
H[k]
H[k] 的具体数值,这里沿用,不再重复。
由 Parseval 关系:
∑
k
=
0
7
∣
H
[
k
]
∣
2
=
8
∑
l
=
0
2
∣
h
[
l
]
∣
2
=
8
(
1
+
0.25
+
0.04
)
=
10.32
\\sum_{k=0}^{7}\\vert H[k]\\vert^2=8\\sum_{l=0}^{2}\\vert h[l]\\vert^2=8(1+0.25+0.04)=10.32
k=0∑7∣H[k]∣2=8l=0∑2∣h[l]∣2=8(1+0.25+0.04)=10.32
后文归一化 MSE 均除以
10.32
10.32
10.32。
3.2 隔 1 插 1(P=2):4 个导频
导频在
k
=
0
,
2
,
4
,
6
k=0,2,4,6
k=0,2,4,6,非导频点是
k
=
1
,
3
,
5
,
7
k=1,3,5,7
k=1,3,5,7。
线性插值: 非导频点取相邻两个导频的中点,例如
H
^
[
1
]
=
H
[
0
]
+
H
[
2
]
2
=
1.7
+
(
0.8
−
0.5
j
)
2
=
1.25
−
0.25
j
\\hat H[1]=\\frac{H[0]+H[2]}{2}=\\frac{1.7+(0.8-0.5j)}{2}=1.25-0.25j
H^[1]=2H[0]+H[2]=21.7+(0.8−0.5j)=1.25−0.25j
真实值
H
[
1
]
=
1.3536
−
j
0.5536
H[1]=1.3536-j0.5536
H[1]=1.3536−j0.5536,误差模值约
0.3207
0.3207
0.3207。四个点全算出来:
| 1 |
1.3536 − j 0.5536 1.3536-j0.5536 1.3536−j0.5536 |
1.2500 − j 0.2500 1.2500-j0.2500 1.2500−j0.2500 |
0.3207 |
| 3 |
0.6464 − j 0.1536 0.6464-j0.1536 0.6464−j0.1536 |
0.7500 − j 0.2500 0.7500-j0.2500 0.7500−j0.2500 |
0.1415 |
| 5 |
0.6464 + j 0.1536 0.6464+j0.1536 0.6464+j0.1536 |
0.7500 + j 0.2500 0.7500+j0.2500 0.7500+j0.2500 |
0.1415 |
| 7 |
1.3536 + j 0.5536 1.3536+j0.5536 1.3536+j0.5536 |
1.2500 + j 0.2500 1.2500+j0.2500 1.2500+j0.2500 |
0.3207 |
误差平方和:
∑
∣
e
k
∣
2
=
0.2458
\\sum \\vert e_k \\vert^2=0.2458
∑∣ek∣2=0.2458
归一化 MSE:
MSE
P
=
2
,
linear
=
0.2458
10.32
=
2.38
×
10
−
2
\\text{MSE}_{P=2,\\text{linear}} =\\frac{0.2458}{10.32} =2.38\\times10^{-2}
MSEP=2,linear=10.320.2458=2.38×10−2
DFT 补零: 导频值
H
[
0
]
,
H
[
2
]
,
H
[
4
]
,
H
[
6
]
H[0],H[2],H[4],H[6]
H[0],H[2],H[4],H[6] 做 4 点 IDFT,得到
h
per
[
0..3
]
h_{\\text{per}}[0..3]
hper[0..3]。因为
L
=
3
≤
N
P
=
4
L=3\\le \\frac{N}{P}=4
L=3≤PN=4
延拓不重叠,
h
per
[
0..2
]
=
h
[
0..2
]
h_{\\text{per}}[0..2]=h[0..2]
hper[0..2]=h[0..2],补零到 8 点再做 FFT,得到全部
H
^
[
k
]
\\hat H[k]
H^[k],与真实值逐点相等。八个点的数值就是 1.3 方式二那张 FFT 结果表,这里不再重列。
MSE
P
=
2
,
DFT
=
0
\\text{MSE}_{P=2,\\text{DFT}}=0
MSEP=2,DFT=0
3.3 隔 3 插 1(P=4):2 个导频
导频在
k
=
0
,
4
k=0,4
k=0,4,此时
M
=
2
<
L
=
3
M=2<L=3
M=2<L=3
抽头数比导频数多,混叠已经无法避免,两种方法都回不到零误差。
线性插值: 导频间距是 4,两段都是走 4 步、高度差
1.0
1.0
1.0,斜率大小相同、符号相反:
H
^
[
k
]
=
1.7
+
0.7
−
1.7
4
d
=
1.7
−
0.25
d
\\hat H[k]=1.7+\\frac{0.7-1.7}{4}d =1.7-0.25d
H^[k]=1.7+40.7−1.7d=1.7−0.25d
第一段以
k
=
0
k=0
k=0 为起点,
d
d
d 取 1 到 3 依次是
k
=
1
,
2
,
3
k=1,2,3
k=1,2,3;第二段从
k
=
4
k=4
k=4 的
0.7
0.7
0.7 出发往上走,
d
d
d 取 1 到 3 对应
k
=
5
,
6
,
7
k=5,6,7
k=5,6,7。计算得:
| 1 |
1.3536 − j 0.5536 1.3536-j0.5536 1.3536−j0.5536 |
1.4500 + j 0.0000 1.4500+j0.0000 1.4500+j0.0000 |
0.5619 |
| 2 |
0.8000 − j 0.5000 0.8000-j0.5000 0.8000−j0.5000 |
1.2000 + j 0.0000 1.2000+j0.0000 1.2000+j0.0000 |
0.6403 |
| 3 |
0.6464 − j 0.1536 0.6464-j0.1536 0.6464−j0.1536 |
0.9500 + j 0.0000 0.9500+j0.0000 0.9500+j0.0000 |
0.3402 |
| 5 |
0.6464 + j 0.1536 0.6464+j0.1536 0.6464+j0.1536 |
0.9500 + j 0.0000 0.9500+j0.0000 0.9500+j0.0000 |
0.3402 |
| 6 |
0.8000 + j 0.5000 0.8000+j0.5000 0.8000+j0.5000 |
1.2000 + j 0.0000 1.2000+j0.0000 1.2000+j0.0000 |
0.6403 |
| 7 |
1.3536 + j 0.5536 1.3536+j0.5536 1.3536+j0.5536 |
1.4500 + j 0.0000 1.4500+j0.0000 1.4500+j0.0000 |
0.5619 |
误差平方和:
∑
∣
e
k
∣
2
=
1.6829
\\sum \\vert e_k \\vert^2=1.6829
∑∣ek∣2=1.6829
归一化 MSE:
MSE
P
=
4
,
linear
=
1.6829
10.32
=
1.63
×
10
−
1
\\text{MSE}_{P=4,\\text{linear}} =\\frac{1.6829}{10.32} =1.63\\times10^{-1}
MSEP=4,linear=10.321.6829=1.63×10−1
DFT 补零: 2 个导频值
H
[
0
]
=
1.7
H[0]=1.7
H[0]=1.7、
H
[
4
]
=
0.7
H[4]=0.7
H[4]=0.7 做 2 点 IDFT:
h
per
[
0
]
=
1.7
+
0.7
2
=
1.2
,
h
per
[
1
]
=
1.7
−
0.7
2
=
0.5
h_{\\text{per}}[0]=\\frac{1.7+0.7}{2}=1.2, \\qquad h_{\\text{per}}[1]=\\frac{1.7-0.7}{2}=0.5
hper[0]=21.7+0.7=1.2,hper[1]=21.7−0.7=0.5
这正是
h
[
0
]
+
h
[
2
]
=
1
+
0.2
=
1.2
h[0]+h[2]=1+0.2=1.2
h[0]+h[2]=1+0.2=1.2、
h
[
1
]
=
0.5
h[1]=0.5
h[1]=0.5 的混叠结果。补零到 8 点再做 FFT:
H
^
[
k
]
=
1.2
+
0.5
e
−
j
2
π
k
/
8
\\hat H[k]=1.2+0.5e^{-j2\\pi k/8}
H^[k]=1.2+0.5e−j2πk/8
与真实值的误差为
e
[
k
]
=
0.2
−
0.2
e
−
j
π
k
/
2
e[k]=0.2-0.2e^{-j\\pi k/2}
e[k]=0.2−0.2e−jπk/2
∣
e
[
k
]
∣
2
=
0.08
(
1
−
cos
(
π
k
/
2
)
)
\\vert e[k]\\vert^2=0.08\\bigl(1-\\cos(\\pi k/2)\\bigr)
∣e[k]∣2=0.08(1−cos(πk/2))
对
k
=
0
,
…
,
7
k=0,\\dots,7
k=0,…,7 求和:
∑
∣
e
[
k
]
∣
2
=
0.64
\\sum \\vert e[k]\\vert^2=0.64
∑∣e[k]∣2=0.64
因此
MSE
P
=
4
,
DFT
=
0.64
10.32
=
6.20
×
10
−
2
\\text{MSE}_{P=4,\\text{DFT}} =\\frac{0.64}{10.32} =6.20\\times10^{-2}
MSEP=4,DFT=10.320.64=6.20×10−2
虽然比线性插值的
1.63
×
10
−
1
1.63\\times10^{-1}
1.63×10−1 好,但已经回不到零误差。
3.4 汇总对比
| 2 |
0 , 2 , 4 , 6 0,2,4,6 0,2,4,6 |
4 | 0.2458 |
2.38 × 10 − 2 2.38\\times10^{-2} 2.38×10−2 |
0 0 0 |
| 4 |
0 , 4 0,4 0,4 |
2 | 1.6829 |
1.63 × 10 − 1 1.63\\times10^{-1} 1.63×10−1 |
6.20 × 10 − 2 6.20\\times10^{-2} 6.20×10−2 |
三条结论:
P
=
2
P=2
P=2 满足无混叠条件,
2.38
×
10
−
2
2.38\\times10^{-2}
2.38×10−2 纯粹是曲率误差;
P
=
4
P=4
P=4 的
1.63
×
10
−
1
1.63\\times10^{-1}
1.63×10−1 里既有
M
=
2
<
L
=
3
M=2<L=3
M=2<L=3 的信息缺口,也有间距从 2 拉到 4 之后更厉害的曲率,约为
P
=
2
P=2
P=2 的 6.85 倍。
P
=
2
P=2
P=2 时
L
=
3
≤
N
/
P
=
4
L=3\\le N/P=4
L=3≤N/P=4,重建结果与真实值逐点相等;
P
=
4
P=4
P=4 时
N
/
P
=
2
<
L
=
3
N/P=2<L=3
N/P=2<L=3,抽头在时域已经折到一起,
6.20
×
10
−
2
6.20\\times10^{-2}
6.20×10−2 这笔误差是混叠的代价,换哪种重建方式都消不掉。
方式三(时域 LS)没有单列进来:
P
=
2
P=2
P=2 时
M
=
4
≥
L
^
=
3
M=4\\ge\\hat L=3
M=4≥L^=3,它解出的抽头与 DFT 补零是同一组数(1.3 已经算过);
P
=
4
P=4
P=4 时
M
=
2
<
L
=
3
M=2<L=3
M=2<L=3,按
L
^
=
3
\\hat L=3
L^=3 建的矩阵是 2 个方程解 3 个未知数,解不唯一,误差也没法和另外两种摆在一起比——真把
L
^
\\hat L
L^ 降到 2,它就退化成方式二,误差同样是
6.20
×
10
−
2
6.20\\times10^{-2}
6.20×10−2。
如果本文恰好能帮到你,那是我的荣幸,欢迎点赞收藏。
相关阅读(本专栏系列)
本专栏是一个程序员从工程实践的角度对无线通信物理层原理产生的一些思考:
网硕互联帮助中心


评论前必须登录!
注册