说明
本学期的通信原理课程设计,要做一个OFDM调制解调的仿真,现在基本上理解了OFDM调制的过程,并且参照实验平台上的代码,自己仿写了个简化突出的代码,因此,梳理一下思路,写个小小总结,方便后面写课设报告之用,也希望能方便其他OFDM初学者。
本文简要介绍OFDM原理和优势,并利用数学公示推导,着重讨论IFFT相关内容,参考《移动通信 第五版》(其实也有很多地方没看懂或者觉得有错,这里写的仅是我的理解内容)。
本人也是OFDM初学者,可能有些地方理解不到位或者错误,希望各位老哥在线交流~
1.OFDM简介
OFDM全称正交频分复用,是一种高级的频分复用的调制技术。相对于传统FDM,它的频谱利用率更高,抗干扰能力更强。其基本思路是:
将串行数据并行,将并行的数据分别调制到各自的载波上去,且这些载波是正交的,然后合成各个已调的载波信号成为已调信号;在接收端,收到已调信号后,分别乘以对应的载波信号后积分,由于正交性,只有与自己相乘后积分才不为零,可以分别解调出对应的数据。
两大明显优势:
- 正交载波 ,由于载波正交,因此即便是载波间有重叠,也能还原出各载波信号。
- 串行数据并行化,串行数据传输过程中,一个比特数据错误,可能导致很大的前后误差,而并行数据传输就不一样了。
2.OFDM原理
串行原始数据,单个码元长度
t
s
t_{s}
ts,将串行数据分组,一组N(载波数)个,
T
s
=
N
∗
t
s
T_{s}=N*t_{s}
Ts=N∗ts,N个子载波:
f
n
=
f
0
+
n
∗
Δ
f
,
n
=
0
,
1
,
2
,
…
N
−
1
f_{n}=f_{0}+n*\Delta f,n=0,1,2,…N-1
fn=f0+n∗Δf,n=0,1,2,…N−1;
载波间隔取
Δ
f
=
1
/
T
s
=
1
/
(
N
∗
t
s
)
\Delta f = 1/T_{s}=1/(N*t_{s})
Δf=1/Ts=1/(N∗ts);
d
(
n
)
d(n)
d(n)即并行的一组的N个数据,用以给N个载波进行调制;
由上图OFDM原理框图可知:
OFDM实际发射的信号:
D ( t ) = ∑ n = 0 N − 1 d ( n ) ∗ c o s ( 2 π f n t ) (1.1) D(t)=\sum_{n=0}^{N-1}d(n)*cos(2\pi f_{n}t)\tag{1.1} D(t)=n=0∑N−1d(n)∗cos(2πfnt)(1.1)
在接收端也是接收信号 D ( t ) D(t) D(t),乘以对应的频率后积分有:
d
′
(
k
)
=
∫
0
T
s
D
(
t
)
∗
2
c
o
s
(
w
k
t
)
d
t
=
∫
0
T
s
∑
n
=
0
N
−
1
d
(
n
)
2
c
o
s
(
w
k
t
)
2
d
t
=
d
(
k
)
d^{'}(k)=\int_{0}^{T_{s}}D(t)*2cos(w_{k}t)dt=\int_{0}^{T_{s}}\sum_{n=0}^{N-1}d(n)2cos(w_{k}t)^{2}dt=d(k)
d′(k)=∫0TsD(t)∗2cos(wkt)dt=∫0Tsn=0∑N−1d(n)2cos(wkt)2dt=d(k)
补充:正交性:如果
f
(
t
)
与
g
(
t
)
正
交
f(t)与g(t)正交
f(t)与g(t)正交
∫
f
(
t
)
∗
g
(
t
)
d
t
=
0
\int f(t)*g(t) dt=0
∫f(t)∗g(t)dt=0
因此通过正交性能够恢复出原始信号。
实现OFDM一般在产生叠加的已调信号的时候有两种方法:
(1)叠加法 (2)IDFT 法。
2.1叠加法
很简单,就是单纯的将各个载波调制的信号加起来,也就是式子(1-1)所表达内容,这里就不赘述了。
2.2IDFT
一般为了更加高效的调制,通常会进行一些数字调制、多进制调制,如QPSK、16QAM等,通过幅度和相位进行保存数据信息来进行调制。
D
(
t
)
=
∑
n
=
0
N
−
1
A
(
n
)
∗
c
o
s
(
2
π
f
n
t
+
ϕ
n
)
=
∑
n
=
0
N
−
1
A
(
n
)
c
o
s
(
ϕ
n
)
c
o
s
(
2
π
f
n
t
)
−
A
(
n
)
s
i
n
(
ϕ
n
)
s
i
n
(
2
π
f
n
t
)
=
∑
n
=
0
N
−
1
a
(
n
)
c
o
s
(
2
π
f
n
t
)
−
b
(
n
)
s
i
n
(
2
π
f
n
t
)
D(t)=\sum_{n=0}^{N-1}A(n)*cos(2\pi f_{n}t+\phi_{n}) \\ =\sum_{n=0}^{N-1}A(n)cos(\phi_{n})cos(2\pi f_{n}t)-A(n)sin(\phi_{n})sin(2\pi f_{n}t)\\ =\sum_{n=0}^{N-1}a(n)cos(2\pi f_{n}t)-b(n)sin(2\pi f_{n}t)
D(t)=n=0∑N−1A(n)∗cos(2πfnt+ϕn)=n=0∑N−1A(n)cos(ϕn)cos(2πfnt)−A(n)sin(ϕn)sin(2πfnt)=n=0∑N−1a(n)cos(2πfnt)−b(n)sin(2πfnt)
写成复数形式如下:
D
(
t
)
=
R
e
[
∑
n
=
0
N
−
1
(
a
(
n
)
+
j
b
(
n
)
)
∗
e
j
2
π
f
n
t
]
(1.2)
D(t)=Re[ \sum_{n=0}^{N-1}(a(n)+jb(n))*e^{j2\pi f_{n}t}] \tag{1.2}
D(t)=Re[n=0∑N−1(a(n)+jb(n))∗ej2πfnt](1.2)
根据数字调制里面的知识,原始序列
d
(
n
)
d(n)
d(n)经过映射成为
a
(
n
)
+
j
b
(
n
)
a(n)+jb(n)
a(n)+jb(n),也就是星座图里面的实轴、虚轴值。
由于
d
(
n
)
映
射
成
a
(
n
)
+
j
b
(
n
)
d(n)映射成a(n)+jb(n)
d(n)映射成a(n)+jb(n),故而式子(1.2)可写成下面形式:
D
(
t
)
=
R
e
[
∑
n
=
0
N
−
1
d
(
n
)
∗
e
j
2
π
f
n
t
]
(1.3)
D(t)=Re[ \sum_{n=0}^{N-1}d(n)*e^{j2\pi f_{n}t}] \tag{1.3}
D(t)=Re[n=0∑N−1d(n)∗ej2πfnt](1.3)
将
f
n
=
f
0
+
Δ
f
f_{n}=f_{0}+\Delta f
fn=f0+Δf带入上式有:
D
(
t
)
=
R
e
[
∑
n
=
0
N
−
1
d
(
n
)
∗
e
j
2
π
f
0
t
∗
e
j
2
π
n
Δ
f
t
]
D(t)=Re[ \sum_{n=0}^{N-1}d(n)*e^{j2\pi f_{0}t}*e^{j2\pi n\Delta ft}]\\
D(t)=Re[n=0∑N−1d(n)∗ej2πf0t∗ej2πnΔft]
如果对
D
(
t
)
D(t)
D(t)以采样频率
F
s
Fs
Fs进行采样得到离散序列:
D
(
m
)
=
R
e
[
∑
n
=
0
N
−
1
d
(
n
)
∗
e
j
2
π
f
0
m
/
F
s
∗
e
j
2
π
n
Δ
f
m
/
F
s
]
(1.4)
D(m)=Re[ \sum_{n=0}^{N-1}d(n)*e^{j2\pi f_{0}m/Fs}*e^{j2\pi n\Delta fm/Fs}] \tag{1.4}
D(m)=Re[n=0∑N−1d(n)∗ej2πf0m/Fs∗ej2πnΔfm/Fs](1.4)
若
Δ
f
/
F
s
=
1
/
N
,
即
F
s
=
N
Δ
f
=
N
∗
1
/
T
s
=
N
∗
1
/
(
N
∗
t
s
)
=
1
/
t
s
\Delta f/Fs=1/N ,\\即Fs =N\Delta f=N*1/T_{s}=N*1/(N*t_{s})=1/t_{s}
Δf/Fs=1/N,即Fs=NΔf=N∗1/Ts=N∗1/(N∗ts)=1/ts,则(1.4)可写为:
D
(
m
)
=
R
e
[
∑
n
=
0
N
−
1
d
(
n
)
∗
e
j
2
π
f
0
m
/
F
s
∗
e
j
2
π
n
m
/
N
]
=
R
e
[
∑
n
=
0
N
−
1
I
D
F
T
(
d
(
n
)
)
∗
e
j
2
π
f
0
m
/
F
s
]
=
R
e
[
∑
n
=
0
N
−
1
I
D
F
T
(
d
(
n
)
)
]
(
若
f
0
=
0
)
(1.5)
D(m)=Re[ \sum_{n=0}^{N-1}d(n)*e^{j2\pi f_{0}m/Fs}*e^{j2\pi nm/N}] \tag{1.5}\\=Re[ \sum_{n=0}^{N-1}IDFT(d(n))*e^{j2 \pi f_{0}m/Fs}]\\=Re[ \sum_{n=0}^{N-1}IDFT(d(n))] (若f_{0}=0)
D(m)=Re[n=0∑N−1d(n)∗ej2πf0m/Fs∗ej2πnm/N]=Re[n=0∑N−1IDFT(d(n))∗ej2πf0m/Fs]=Re[n=0∑N−1IDFT(d(n))](若f0=0)(1.5)
IDFT定义为: x ( n ) = ∑ k = 0 N − 1 X ( k ) e j 2 π n k / N = I D F T ( X ( k ) ) x(n)=\sum_{k=0}^{N-1}X(k)e^{j2\pi nk/N}=IDFT(X(k)) x(n)=∑k=0N−1X(k)ej2πnk/N=IDFT(X(k))
因此,可用并行序列的数字调制映射的IDFT得到叠加后的时域信号的采样的离散信号。当采样频率足够高,满足奈奎斯特速率,即可无失真,不损失频率分量,可见IDFT的可行高效。
3.OFDM仿真结果
进行MATLAB仿真,可得如下结果:
4.Problem
1.为什么IDFT法得到的合成波形和叠加法的波形差别比较大?
答:IDFT得到的波形是连续信号的采样,可用通过对叠加法以同样频率采样得到信号在与IDFT的信号比较,不出意外,应该是相同的。
我也是刚刚写博客才想到这个问题的可能答案,还没来得及写代码验证,稍后有时间我会写代码看看。
2.前面分析IDFT里面采样频率 F s = N Δ f Fs=N\Delta f Fs=NΔf,而合成信号最大频率是 f m a x = f 0 + N Δ f f_{max}=f_{0}+N\Delta f fmax=f0+NΔf,并不满足 F s > 2 f m a x F_{s}>2f_{max} Fs>2fmax,何解?