赞
踩
基于ZYNQ与AD9361的802.11a数据单元PPDU的OFDM发射实现
关于ofdm一些问题的思考,记录一下,有不对的地方希望大家在评论中指出。
一些资料讲解OFDM原理时,一开始都直接从频域出发解释正交的意思,如下图中频域采样点(红色箭头位置)只与当前载波有关,不受其他载波影响,子载波间不需要增加保护带宽。
从这个角度来开始学习OFDM,一直有个困惑的地方,图中的频域采样位置处确实是不受其他载波影响,但是在OFDM调制过程中什么时候对它采样了,也就是什么时候拿到了下图红色位置(频域采样点)处的信息,如果不能准确对红色箭头位置处采样,采样的位置偏一点就带来了其他子载波的影响。
图
1
图1
图1
令
Ψ
l
,
k
(
t
)
\Psi_{l, k}(t)
Ψl,k(t) 表示在第
k
k
k个子载波上的第
l
l
l个 OFDM 信号:
Ψ
l
,
k
(
t
)
=
{
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
,
0
<
t
⩽
T
s
y
m
0
,
其他
,
l
=
0
,
1
,
2
,
⋯
,
∞
,
k
=
0
,
1
,
2
,
⋯
,
N
−
1
,
f
k
=
k
T
s
y
m
。
T
s
y
m
\\ \Psi_{l, k}(t)=\left\{
OFDM基带信号可表示为:
x
l
(
t
)
=
∑
l
=
0
∞
∑
k
=
0
N
−
1
X
l
[
k
]
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
x_{l}(t)=\sum_{l=0}^{\infty} \sum_{k=0}^{N-1} X_{l}[k] e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)}
xl(t)=∑l=0∞∑k=0N−1Xl[k]ej2πfk(t−lTsym),
子载波
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
,
0
<
t
⩽
T
s
y
m
\mathrm{e}^{\mathrm{j} 2 \pi f_{k}\left(t-l T_{\mathrm{sym}}\right)},0<t \leqslant T_{\mathrm{sym}}
ej2πfk(t−lTsym),0<t⩽Tsym的频谱可由时移后门函数的频谱与相应的冲激进行卷积得到,由时移特性知,门函数信号
x
(
t
)
x(t)
x(t) 在时域中延迟
t
0
t_{0}
t0 等价于在频域中乘以因子
e
−
j
2
π
f
t
0
,
\mathrm{e}^{-\mathrm{j} 2 \pi f {t}_{0} },
e−j2πft0,模不变 ,其频谱幅度为Sa函数
图
2
图2
图2
令 X l [ k ] = a l , k + j b l , k , X l [ k ] e j 2 π f k ( t − l T s y m ) = a l , k ∗ e j 2 π f k ( t − l T s y m ) + j b l , k ∗ e j 2 π f k ( t − l T s y m ) X_{l}[k] =a_{l,k}+jb_{l,k}, X_{l}[k] e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)}=a_{l,k}*e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)}+jb_{l,k}*e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)} Xl[k]=al,k+jbl,k,Xl[k]ej2πfk(t−lTsym)=al,k∗ej2πfk(t−lTsym)+jbl,k∗ej2πfk(t−lTsym),上式相当于门函数由1变为 a l , k a_{l,k} al,k和 j b l , k jb_{l,k} jbl,k,所以相应频谱中Sa函数幅度变为之前的 a l , k a_{l,k} al,k和 b l , k b_{l,k} bl,k倍, j b l , k jb_{l,k} jbl,k同时引入了因子 j j j,可知 X l [ k ] e j 2 π f k ( t − l T s y m ) X_{l}[k] e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)} Xl[k]ej2πfk(t−lTsym)的频谱为两个Sa函数复数求和,其幅值还是Sa函数,同时Sa函数在最高点(即频域采样点)幅值为1,该位置频域值为 X l [ k ] ∗ 1 = X l [ k ] X_{l}[k]*1=X_{l}[k] Xl[k]∗1=Xl[k]。OFDM基带信号频谱为 k k k个子载波的频谱叠加,如果我们可以采到一些频域点数据,就可以通过IFFT求出OFDM基带信号时域波形,正好在上图频谱采样处,其他子载波幅值为零,被采样的子载波幅度为1,采样可得到 a l , k + j b l , k a_{l,k}+jb_{l,k} al,k+jbl,k(即 X l [ k ] ∗ 1 + 0 + . . . + 0 = X l [ k ] X_{l}[k]*1+0+...+0=X_{l}[k] Xl[k]∗1+0+...+0=Xl[k])与时延 带来的旋转因子 e − j 2 π f t 0 \mathrm{e}^{-\mathrm{j} 2 \pi f {t}_{0} } e−j2πft0信息,时延带来的影响在基带信号中已经体现在子载波 e j 2 π f k ( t − l T s y m ) \mathrm{e}^{\mathrm{j} 2 \pi f_{k}\left(t-l T_{\mathrm{sym}}\right)} ej2πfk(t−lTsym)里,所以当我们对比特流映射成的PSK或QAM符号序列— X l [ k ] X_{l}[k] Xl[k]进行处理(IFFT)时,就相当于对红色箭头处进行精确的频域采样,利用了红色箭头处的 X l [ k ] X_{l}[k] Xl[k]信息,从某种角度可以认为是已经在频域中对红色箭头处准确采样了。
综上,当我们由比特流进行星座调制后拿到复数信息时,相当于准确拿到上图红色位置(频域采样点)处的信息了
有些资料中在OFDM调制时会构造 X l [ k ] X_{l}[k] Xl[k] 的复共轭对称数据 X l ∗ [ k ] X_{l}^{*}[k] Xl∗[k],再拼接到一起,进行2N点IFFT,得到2N个实数数据(虚部为0),频谱带宽是 ( − f m , f m ) (-f_{m} ,f_{m} ) (−fm,fm)(实信号频谱对称的),这样得到实的 OFDM 信号。因为有些情况下信号用基带传输 (不用载波调制),这只能传输实信号,需要得到实的OFDM 信号。这种情况下,用基带传输,带宽为 fm,传递 N 个复数信息数据。如果用通带传输(RF 载波) ,带宽为 2fm,传递N个复数信息数据。
还可以得到复数的 OFDM基带信号,如直接从星座映射后取 2N 个复数,直接做2N点 IFFT 后得到2N个复数点(基带信号),再用IQ两路中的正弦信号和余弦信号分别传送OFDM基带信号的实部和虚部,详见正交采样(复频率域角度)。与OFDM基带实数信号相比,OFDM复数基带信号不需要产生共轭对称的频谱,负频率部分用来传送信息数据。但不能直接传输OFDM复数基带信号,只能利用RF 载波传输信号实部和虚部,其带宽为 2fm,传送 2N 个复数信息数据。(为了和实数对应,取的2N点,也可以取N个复数,做N点的IFFT变换,得到N个复数时域信号)
OFDM实基带信号,直接用基带传输,带宽为 fm,传递 N 个复数信息数据。OFDM复基带信号用RF载波(IQ两路)传输,带宽为2fm,可以传递2N 个复数信息数据。这两种方式频带效率是一样的。
OFDM调制时子载波为
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
,
0
<
t
⩽
T
s
y
m
,
k
=
0
,
1
,
2
,
⋯
,
N
−
1
,
\mathrm{e}^{\mathrm{j} 2 \pi f_{k}\left(t-l T_{\mathrm{sym}}\right)}, 0<t \leqslant T_{\mathrm{sym}}, k=0,1,2, \cdots, N-1,
ej2πfk(t−lTsym),0<t⩽Tsym,k=0,1,2,⋯,N−1,频率
f
0
f_{0}
f0到
f
N
−
1
f_{N-1}
fN−1都是正频率,N个子载波叠加后频谱如下图3所示(在该部分未关注频谱的相位,重点关注频谱的幅值):
图
3
图3
图3
但是利用OFDM调制的基带信号,如WIFI信号,其信号频谱都是负频率到正频率部分,类似为下图4所示:
图
4
图4
图4
在第一部分频域采样点中,OFDM基带信号是时间连续信号,而IFFT得到的是N个时间离散数据,必定要对OFDM时间连续信号进行采样,具体过程如下
OFDM基带信号为:
x
l
(
t
)
=
∑
l
=
0
∞
∑
k
=
0
N
−
1
X
l
[
k
]
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
x_{l}(t)=\sum_{l=0}^{\infty} \sum_{k=0}^{N-1} X_{l}[k] e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)}
xl(t)=∑l=0∞∑k=0N−1Xl[k]ej2πfk(t−lTsym),
在时刻
t
=
l
T
sym
+
n
T
s
,
T
s
=
T
s
y
m
/
N
,
f
k
=
k
/
T
s
y
m
,
t=l T_{\text {sym }}+n T_{\mathrm{s}}, \quad T_{\mathrm{s}}=T_{\mathrm{sym}} / N,f_{k}=k / T_{\mathrm{sym}} ,
t=lTsym +nTs,Ts=Tsym/N,fk=k/Tsym, 对时间连续的基带 OFDM 信号进行采样, 可以得到相应的离散时间的 OFDM 符号:
x
l
[
n
]
=
∑
k
=
0
N
−
1
X
l
[
k
]
e
j
2
π
k
n
/
N
,
n
=
0
,
1
,
⋯
,
N
−
1
,
x_{l}[n]=\sum_{k=0}^{N-1} X_{l}[k] \mathrm{e}^{\mathrm{j} 2 \pi kn / \mathrm{N}}, \quad n=0,1, \cdots, N-1,
xl[n]=∑k=0N−1Xl[k]ej2πkn/N,n=0,1,⋯,N−1,上式相当于数据符号
{
X
l
[
k
]
}
k
=
0
N
−
1
\left\{X_{l}[k]\right\}_{k=0}^{N-1}
{Xl[k]}k=0N−1 的 N 点 IDFT, 可利用 IFFT 算法。
对连续时间数据进行采样,那采样后离散时间信号的频谱相对于采样前的时间连续信号频谱相比会发生什么变换 ?根据离散时间傅里叶变换(DTFT),其频谱沿频率轴周期延拓,周期为 2 π 2\pi 2π (如果变量是数字频率 ω \omega ω )或 f s f_{s} fs (如果变量是模拟频率 f f f), f s = 1 T s y m / N f_{s} =\frac{1}{T_{\mathrm{sym}} / N} fs=Tsym/N1(由N点IFFT得到N个时域离散数据,产生N个数据用时为 T s y m T_{\mathrm{sym}} Tsym,所以 f s = 1 T s y m / N f_{s} =\frac{1}{T_{\mathrm{sym}} / N} fs=Tsym/N1,而 T s y m = 1 Δ f T_{\mathrm{sym}}=\frac{1}{\Delta f } Tsym=Δf1,即 f s = Δ f ⋅ N 。 f_{s} =\Delta f\cdot N。 fs=Δf⋅N。
需要注意的是数字频率 ω = 2 π f f s \omega=2\pi\frac{f}{f_{s} } ω=2πfsf是与采样频率 f s f_{s} fs联系在一起的,单位是弧度,表示相邻两个采样点弧度变化
假设OFDM基带时域连续信号
x
l
(
t
)
x_{l}(t)
xl(t)频谱示意图如下所示
图
5
图5
图5
采样后离散时间信号
x
l
[
n
]
x_{l}[n]
xl[n]频谱沿频率轴周期延拓,示意图如下
图
6
图6
图6
由于频谱是以
2
π
2\pi
2π为周期进行周期延拓的,通常我们取
(
−
π
,
π
)
(-\pi ,\pi )
(−π,π)范围内频谱来观察,所以我们生成的OFDM时域离散信号
x
l
[
n
]
x_{l}[n]
xl[n]其频谱一般如图4所示
当我们由比特流得到数据符号
{
X
l
[
k
]
}
k
=
0
N
−
1
\left\{X_{l}[k]\right\}_{k=0}^{N-1}
{Xl[k]}k=0N−1后,如果用式
x
l
(
t
)
=
∑
l
=
0
∞
∑
k
=
0
N
−
1
X
l
[
k
]
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
x_{l}(t)=\sum_{l=0}^{\infty} \sum_{k=0}^{N-1} X_{l}[k] e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)}
xl(t)=∑l=0∞∑k=0N−1Xl[k]ej2πfk(t−lTsym)产生OFDM基带信号,将
X
l
[
k
]
X_{l}[k]
Xl[k]信息调制到子载波
f
k
f_{k}
fk上,如下图所示
图
7
图7
图7
当我们在
(
−
π
,
π
)
(-\pi ,\pi )
(−π,π)范围内查看OFDM离散时间信号
x
l
[
n
]
x_{l}[n]
xl[n]频谱时,
X
l
[
k
]
X_{l}[k]
Xl[k]从左到右依次如下所示
图
8
图8
图8
对于图8,我们希望
X
l
[
k
]
X_{l}[k]
Xl[k]从左到右依次为
X
l
[
0
]
,
X
l
[
1
]
,
X
l
[
2
]
,
X
l
[
3
]
和
X
l
[
4
]
,
X
l
[
5
]
,
X
l
[
6
]
,
X
l
[
7
]
X_{l}[0],X_{l}[1],X_{l}[2],X_{l}[3]和X_{l}[4],X_{l}[5],X_{l}[6],X_{l}[7]
Xl[0],Xl[1],Xl[2],Xl[3]和Xl[4],Xl[5],Xl[6],Xl[7],需要我们得到数据符号
{
X
l
[
k
]
}
k
=
0
N
−
1
\left\{X_{l}[k]\right\}_{k=0}^{N-1}
{Xl[k]}k=0N−1后,将
X
l
[
k
]
X_{l}[k]
Xl[k]序列的前一半与后一半整体互换得到
Y
l
[
k
]
Y_{l}[k]
Yl[k],
即
Y
l
[
k
]
=
{
X
l
[
4
]
,
X
l
[
5
]
,
X
l
[
6
]
,
X
l
[
7
]
,
X
l
[
0
]
,
X
l
[
1
]
,
X
l
[
2
]
,
X
l
[
3
]
}
Y_{l}[k]=\left \{ X_{l}[4],X_{l}[5],X_{l}[6],X_{l}[7],X_{l}[0],X_{l}[1],X_{l}[2],X_{l}[3]\right \}
Yl[k]={Xl[4],Xl[5],Xl[6],Xl[7],Xl[0],Xl[1],Xl[2],Xl[3]},
通过式
y
l
(
t
)
=
∑
l
=
0
∞
∑
k
=
0
N
−
1
Y
l
[
k
]
e
j
2
π
f
k
(
t
−
l
T
s
y
m
)
y_{l}(t)=\sum_{l=0}^{\infty} \sum_{k=0}^{N-1} Y_{l}[k] e^{j 2 \pi f_{k}\left(t-l T_{ \mathrm{sym}}\right)}
yl(t)=∑l=0∞∑k=0N−1Yl[k]ej2πfk(t−lTsym)产生OFDM基带信号,在
y
l
[
n
]
y_{l}[n]
yl[n]频谱中,
X
l
[
k
]
X_{l}[k]
Xl[k]从左到右依次如下所示
图
9
图9
图9
在802.11a中物理层是用OFDM实现的,子载波间隔是312.5kHz,有64个可使用的子载波,所以其
f
s
=
Δ
f
⋅
N
=
312.5
k
∗
64
=
20
f_{s} =\Delta f\cdot N=312.5k*64=20
fs=Δf⋅N=312.5k∗64=20MHz,实际使用的子载波数目有52个,其中4个给导频使用,48个作为数据子载波。其余12个子载波不携带数据,用作保护带,主要是为了减少信道间的干扰(最中间的子载波作为DC偏置,左边的序号最低的6个子载波,以及最高的5个子载波),下图为基带信号在
(
−
π
,
π
)
(-\pi ,\pi )
(−π,π)范围内的频谱:
图
10
图10
图10
在图10中为了得到数据符号从左到右依次为
X
l
[
0
]
,
X
l
[
1
]
,
X
l
[
2
]
,
X
l
[
3
]
⋅
⋅
⋅
⋅
⋅
⋅
X
l
[
48
]
,
X
l
[
49
]
,
X
l
[
50
]
,
X
l
[
51
]
X_{l}[0],X_{l}[1],X_{l}[2],X_{l}[3]\cdot \cdot \cdot \cdot \cdot \cdot X_{l}[48],X_{l}[49],X_{l}[50],X_{l}[51]
Xl[0],Xl[1],Xl[2],Xl[3]⋅⋅⋅⋅⋅⋅Xl[48],Xl[49],Xl[50],Xl[51],在进行OFDM调制产生基带信号时,数据符号与子载波
f
k
f_{k}
fk映射关系如下图所示,
k
=
0
,
1
,
2
,
⋯
,
N
−
1
k=0,1,2, \cdots, N-1
k=0,1,2,⋯,N−1
图
11
图11
图11
图12很容易在802.11a资料中见到,结合图10和图11,很容易理解图中子载波标号-26 到 -1映射到 IFFT 输入端口的 38 到 63,1 到 26映射到 相同标号的IFFT 输入端口,(-26到26是从
(
−
π
,
π
)
(-\pi ,\pi )
(−π,π)出发映射到
(
0
,
2
π
)
(0,2\pi )
(0,2π))
图
12
图12
图12
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。