前言
该博客介绍了如何使用脉冲整形技术来降低OFDM系统的PAPR。通过对发射的子载波进行“预编码”映射,从而减小时域出现大功率峰值的概率,防止非线性功率放大器的失真。同时,文档给出了脉冲整形PS算法MATLAB的仿真结果。
一、引言
正交频分复用(OFDM)技术已经成为现代告诉无线通信中最常用的技术之一,是5G时代最重要的信号调制方式。它利用了时频正交的特性,能够应对多径衰落、频率漂移和干扰等问题。虽然OFDM技术在提高通信速率方面非常有效,但是它的信号峰均比(PAPR)偏大,在信号经过功放时,容易使功放进入饱和状态、从而导致信号失真。因此,如何降低信号的峰均比PAPR是OFDM技术中一个很重要的问题。降PAPR算法有很多,这里只介绍脉冲整形算法(Pulse Shaping, PS)。
二、脉冲整形算法
1.OFDM信号峰均比高的原因
设OFDM信号的子载波个数为
K
K
K个,调制后的OFDM频域信号为
S
(
k
)
,
k
∈
[
0
,
K
−
1
]
S(k),k \in [0,K - 1]
S(k),k∈[0,K−1],经过逆傅里叶变换IFFT之后,转换到时域为:
s
(
n
)
=
1
N
∑
k
=
0
K
−
1
S
(
k
)
e
j
⋅
2
π
⋅
k
n
N
,
n
∈
[
0
,
N
−
1
]
(1)
s(n){\rm{ = }}\frac{1}{{\sqrt N }}\sum\limits_{k = 0}^{K - 1} {S(k){e^{j \cdot 2\pi \cdot \frac{{kn}}{N}}}} ,n \in [0,N - 1]\tag{1}
s(n)=N1k=0∑K−1S(k)ej⋅2π⋅Nkn,n∈[0,N−1](1)
OFDM调制的过程可用下图表示:
经过调制后的频域信号 S ( k ) S(k) S(k)乘以与子载波 f k {f_k} fk混频的矩形脉冲 r e c t ( t , T ) {\rm{rect}}(t,T) rect(t,T),矩形脉冲时长为 T T T,然后所有子载波信号进行叠加,完成OFDM信号的调制。由于子载波之间的相关性,强相关的信号叠加后很可能出现较大功率的峰值,从而导致OFDM时域信号的峰均比(PAPR)较大。
2.算法思想
既然强相关子载波叠加后可能出现大功率峰值,能不能改变每个子载波的矩形脉冲波形,使得不同子载波脉冲波形的峰值都在不同的时域位置,这样就能避免出现相关性强的信号在同一时域位置出现的概率?脉冲整形算法就是根据这一思想,在进行OFDM调制之前,对频域的信号进行一个“预编码”操作,进而等效于特殊波形替换矩形脉冲,并且这种特殊波形在不同子载波的峰值位置相互错开,降低了强相关信号在同一时刻叠加出大功率峰值的概率。在接收端,只需将收到的数据乘以发送端中成形矩阵的逆矩阵即可恢复出原始数据。
3.脉冲整形算法原理
3.1 发射预编码
在发射端,用成形矩阵对频域信号
S
(
k
)
S(k)
S(k)进行“预编码”,将调制后的
K
K
K个子载波信号映射到
L
L
L个子载波上,一般情况下会映射到更多的资源上,即
L
≥
K
L \ge K
L≥K,
P
{\bf{P}}
P为
L
×
K
L \times K
L×K的预编码矩阵,定义如下:
P
=
[
p
0
,
0
p
0
,
1
⋯
p
0
,
K
−
1
p
1
,
0
p
1
,
1
⋯
p
1
,
K
−
1
⋮
⋮
⋱
⋮
p
L
−
1
,
0
p
L
−
1
,
1
⋯
p
L
−
1
,
K
−
1
]
\mathbf{P}=\left[ \begin{matrix} {{p}_{0,0}} & {{p}_{0,1}} & \cdots & {{p}_{0,K-1}} \\ {{p}_{1,0}} & {{p}_{1,1}} & \cdots & {{p}_{1,K-1}} \\ \vdots & \vdots & \ddots & \vdots \\ {{p}_{L-1,0}} & {{p}_{L-1,1}} & \cdots & {{p}_{L-1,K-1}} \\ \end{matrix} \right]
P=
p0,0p1,0⋮pL−1,0p0,1p1,1⋮pL−1,1⋯⋯⋱⋯p0,K−1p1,K−1⋮pL−1,K−1
预编码后的信号可以表示为:
Y
=
P
⋅
S
=
S
(
0
)
⋅
p
0
+
S
(
1
)
⋅
p
1
+
⋯
+
S
(
K
−
1
)
⋅
p
K
−
1
=
∑
k
=
0
K
−
1
S
(
k
)
⋅
p
k
(2)
\mathbf{Y=P}\cdot \mathbf{S}=S(0)\cdot {{\mathbf{p}}_{0}}\text{+}S(\text{1})\cdot {{\mathbf{p}}_{\text{1}}}\text{+}\cdots \text{+}S(K-1)\cdot {{\mathbf{p}}_{K-1}}=\sum\limits_{k=0}^{K-1}{S(k)\cdot {{\mathbf{p}}_{k}}}\tag{2}
Y=P⋅S=S(0)⋅p0+S(1)⋅p1+⋯+S(K−1)⋅pK−1=k=0∑K−1S(k)⋅pk(2)
式中,
p
k
=
[
p
0
,
k
,
p
1
,
k
,
⋯
,
p
L
−
1
,
k
]
T
{{\mathbf{p}}_{k}}={{\left[ {{p}_{0,k}},{{p}_{1,k}},\cdots ,{{p}_{L-1,k}} \right]}^{T}}
pk=[p0,k,p1,k,⋯,pL−1,k]T为矩阵
P
\mathbf{P}
P的第
k
k
k列,是
L
×
1
L\times 1
L×1维向量。
脉冲整形后的可得到基带OFDM信号:
s
′
(
n
)
=
1
L
∑
l
=
0
L
−
1
Y
(
l
)
e
j
⋅
2
π
⋅
l
n
L
,
l
∈
[
0
,
L
−
1
]
(3)
{s}'(n)\text{ =}\frac{1}{\sqrt{L}}\sum\limits_{l=0}^{L-1}{Y(l){{e}^{j\cdot 2\pi \cdot \frac{ln}{L}}}},l\in [0,L-1]\tag{3}
s′(n) =L1l=0∑L−1Y(l)ej⋅2π⋅Lln,l∈[0,L−1](3)
3.2 接收独立性检测
OFDM调制方式最重要的一个性质就是接收端的
K
K
K个传输符号的检测是相互独立的,对于PS-OFDM,由于发射端进行了预编码,所以在接收端也要进行对应的逆操作,用预编码矩阵的逆乘以接收频域采样信号。一般约定预编码矩阵
P
\mathbf{P}
P是正交矩阵,即:
P
H
P
=
I
(4)
{{\mathbf{P}}^{H}}\mathbf{P=I}\tag{4}
PHP=I(4)
式中,
I
\mathbf{I}
I是
N
×
N
N\times N
N×N维单位矩阵,
P
H
{{\mathbf{P}}^{H}}
PH是矩阵
P
\mathbf{P}
P的共轭转置矩阵。
3.3 预编码矩阵设计
结合式(2)和(3),发射的基带OFDM信号为:
s
′
(
n
)
=
1
L
∑
l
=
0
L
−
1
∑
k
=
0
K
−
1
S
(
k
)
⋅
p
k
(
l
)
e
j
⋅
2
π
⋅
l
n
L
=
∑
k
=
0
K
−
1
S
(
k
)
⋅
1
L
∑
l
=
0
L
−
1
p
k
(
l
)
e
j
⋅
2
π
⋅
l
n
L
=
∑
k
=
0
K
−
1
S
(
k
)
⋅
I
F
F
T
(
p
k
(
l
)
)
=
∑
k
=
0
K
−
1
S
(
k
)
⋅
U
k
(
n
)
(5)
\begin{array}{l} s'(n){\rm{ = }}\frac{1}{{\sqrt L }}\sum\limits_{l = 0}^{L - 1} {\sum\limits_{k = 0}^{K - 1} {S(k) \cdot {p_k}(l){e^{j \cdot 2\pi \cdot \frac{{ln}}{L}}}} } \\ = \sum\limits_{k = 0}^{K - 1} {S(k) \cdot } \frac{1}{{\sqrt L }}\sum\limits_{l = 0}^{L - 1} {{p_k}(l){e^{j \cdot 2\pi \cdot \frac{{ln}}{L}}}} \\ = \sum\limits_{k = 0}^{K - 1} {S(k) \cdot } {\rm{IFFT}}({p_k}(l))\\ = \sum\limits_{k = 0}^{K - 1} {S(k) \cdot } {U_k}(n) \end{array}\tag{5}
s′(n)=L1l=0∑L−1k=0∑K−1S(k)⋅pk(l)ej⋅2π⋅Lln=k=0∑K−1S(k)⋅L1l=0∑L−1pk(l)ej⋅2π⋅Lln=k=0∑K−1S(k)⋅IFFT(pk(l))=k=0∑K−1S(k)⋅Uk(n)(5)
式中:
U
k
(
n
)
=
I
F
F
T
(
p
k
(
l
)
)
=
1
L
∑
l
=
0
L
−
1
p
k
(
l
)
e
j
⋅
2
π
⋅
l
n
L
(6)
\begin{array}{c} {U_k}(n){\rm{ = IFFT}}({p_k}(l))\\ = \frac{1}{{\sqrt L }}\sum\limits_{l = 0}^{L - 1} {{p_k}(l){e^{j \cdot 2\pi \cdot \frac{{ln}}{L}}}} \end{array}\tag{6}
Uk(n)=IFFT(pk(l))=L1l=0∑L−1pk(l)ej⋅2π⋅Lln(6)
比较式(5)和式(1),当
U
k
(
n
)
=
1
N
⋅
e
j
⋅
2
π
⋅
k
n
N
{U_k}(n){\rm{ = }}\frac{1}{{\sqrt N }} \cdot {e^{j \cdot 2\pi \cdot \frac{{kn}}{N}}}
Uk(n)=N1⋅ej⋅2π⋅Nkn时,PS-OFDM就退回到原始的OFDM调制。如前所述,由于
e
j
⋅
2
π
⋅
k
n
N
{e^{j \cdot 2\pi \cdot \frac{{kn}}{N}}}
ej⋅2π⋅Nkn是恒幅的,当子载波之间的相关性较强时,不同子载波在同一时域位置可能叠加出大功率信号的概率是比较大的。那么如果
U
k
(
n
)
{U_k}(n)
Uk(n)非恒幅且
U
k
(
n
)
{U_k}(n)
Uk(n)的最大峰值随着下标
k
k
k的改变而不同,这样就能避免出现相关性强的信号在同一时域位置出现的概率!!!其中一个解决方案是:对于
U
k
(
n
)
{U_k}(n)
Uk(n),我们以
U
0
(
n
)
{U_0}(n)
U0(n)为基准,其他的序列都是
U
0
(
n
)
{U_0}(n)
U0(n)在时域上的循环移位序列,那么就避能免峰值幅度发生在同一时刻。
根据这一思想可得:
U
k
(
n
)
=
U
0
(
(
n
−
k
)
,
K
)
=
1
L
∑
l
=
0
L
−
1
p
0
(
l
)
e
−
j
⋅
2
π
⋅
l
⋅
k
K
e
j
⋅
2
π
⋅
l
⋅
n
L
(7)
\begin{array}{l} {U_k}(n){\rm{ }} = {U_0}((n - k),K)\\ = \frac{1}{{\sqrt L }}\sum\limits_{l = 0}^{L - 1} {{p_0}(l){e^{ - j \cdot 2\pi \cdot l \cdot \frac{k}{K}}}{e^{j \cdot 2\pi \cdot \frac{{l \cdot n}}{L}}}} \end{array}\tag{7}
Uk(n)=U0((n−k),K)=L1l=0∑L−1p0(l)e−j⋅2π⋅l⋅Kkej⋅2π⋅Ll⋅n(7)
式中,
U
0
(
(
n
−
k
)
,
K
)
{U_0}((n - k),K)
U0((n−k),K)表示函数
U
0
(
n
)
{U_0}(n)
U0(n)在
[
0
,
T
]
\left[ {0,T} \right]
[0,T]时间范围内向右循环移位
k
K
⋅
T
\frac{k}{K} \cdot T
Kk⋅T。
比较式(6)和式(7),可得:
p
k
(
l
)
=
p
0
(
l
)
e
−
j
⋅
2
π
⋅
l
⋅
k
K
(8)
{p_k}(l) = {p_0}(l){e^{ - j \cdot 2\pi \cdot l \cdot \frac{k}{K}}}\tag{8}
pk(l)=p0(l)e−j⋅2π⋅l⋅Kk(8)
式(8)完整地描述了预编码矩阵的每一个元素。由于矩阵中的每一列元素都是由首列元素得到的,因此,只要设计出矩阵
P
{\bf{P}}
P的首列元素即可,这就大大简化了设计过程。根据式(4)的约束,将式(8)带入其中,我们可以得到:
p
k
H
⋅
p
m
=
{
1
,
k
=
m
0
,
k
≠
m
⇒
∑
l
=
0
L
−
1
e
j
⋅
2
π
⋅
l
⋅
k
−
m
K
∣
p
0
(
l
)
∣
2
=
{
1
,
k
=
m
0
,
k
≠
m
(9)
\begin{array}{c} {{\bf{p}}_k}^H \cdot {{\bf{p}}_m} = \left\{ \begin{array}{l} 1,k = m\\ 0,k \ne m \end{array} \right.\\ \Rightarrow \sum\limits_{l = 0}^{L - 1} {{e^{j \cdot 2\pi \cdot l \cdot \frac{{k - m}}{K}}}} {\left| {{p_0}(l)} \right|^2} = \left\{ \begin{array}{l} 1,k = m\\ 0,k \ne m \end{array} \right. \end{array}\tag{9}
pkH⋅pm={1,k=m0,k=m⇒l=0∑L−1ej⋅2π⋅l⋅Kk−m∣p0(l)∣2={1,k=m0,k=m(9)
当
U
0
(
n
)
{U_0}(n)
U0(n)是升余弦函数时满足非恒幅要求,且式(9)能够满足,此时
p
0
(
l
)
=
F
F
T
(
U
0
(
n
)
)
{p_0}(l) = {\rm{FFT}}\left( {{U_0}(n)} \right)
p0(l)=FFT(U0(n)),具体可得:
p
0
(
l
)
=
{
1
N
⋅
sin
(
π
⋅
l
2
⋅
(
L
−
K
)
)
,
0
≤
l
<
L
−
K
1
N
,
L
−
K
≤
l
<
K
1
N
⋅
sin
(
π
⋅
(
l
−
K
)
2
⋅
(
L
−
K
)
+
π
2
)
,
K
≤
l
≤
L
−
1
(10)
{p_0}(l) = \left\{ \begin{array}{l} \frac{1}{{\sqrt N }} \cdot \sin \left( {\frac{{\pi \cdot l}}{{2 \cdot \left( {L - K} \right)}}} \right),0 \le l < L - K\\ \frac{1}{{\sqrt N }}{\rm{ }},L - K \le l < K\\ \frac{1}{{\sqrt N }} \cdot \sin \left( {\frac{{\pi \cdot \left( {l - K} \right)}}{{2 \cdot \left( {L - K} \right)}} + \frac{\pi }{2}} \right),K \le l \le L - 1 \end{array}\tag{10} \right.
p0(l)=⎩
⎨
⎧N1⋅sin(2⋅(L−K)π⋅l),0≤l<L−KN1,L−K≤l<KN1⋅sin(2⋅(L−K)π⋅(l−K)+2π),K≤l≤L−1(10)
再根据式(8),可以得到完整的预编码矩阵
P
{\bf{P}}
P的所有元素。这里需要说明,满足约束条件的情况有很多,这里给出升余弦函数只是一种常用的情况。后面会简单讨论一下“预编码”矩阵的几种情况。
4.仿真结果
子载波数
K
=
624
K = 624
K=624,总的预留子载波数
L
=
1024
L = 1024
L=1024,时域采样点数
N
=
1024
N = 1024
N=1024,调制方式为QPSK。图(4)是原始OFDM信号和脉冲整形PS-OFDM的信号时域幅度图。图中可以直观看出,PAPR得到了很大程度的降低。
考虑信道为高斯白噪声信道,图 (5) 是接收信噪比为无穷和30 dB时,接收端获取的信号星座图。
5.几点讨论
1)脉冲整形通常需要预留额外的子载波,才能够有效降低峰均比PAPR;
2)当考虑信道时,接收的信号为
y
=
P
H
H
P
S
{\bf{y}} = {{\bf{P}}^H}{\bf{HPS}}
y=PHHPS,由于信道
H
{\bf{H}}
H的不确定性,
P
H
H
P
{{\bf{P}}^H}{\bf{HP}}
PHHP不等于单位阵。因此这种降峰均比算法会由于信道的不确定性而引入干扰;
3)当“预编码”矩阵
P
{\bf{P}}
P为
L
L
L维DFT矩阵的前
K
K
K列时,脉冲整形算法PS-OFDM变为DFT-OFDM,即相当于单载波系统;
4)当“预编码”矩阵为单位阵时(此时
L
=
K
L = K
L=K),脉冲整形算法PS-OFDM回退为常规OFDM调制。
总结
脉冲整形降峰均比PAPR方法需要额外的子载波资源,当信道不确定性较大时,接收端会引入干扰。对于同样需要额外子载波的TR方法则不会受到信道的影响,详细可参考这篇子载波预留TR算法。
本文作者: 渺小的颗星
本文链接:https://blog.csdn.net/weixin_40319158/article/details/148067460?spm=1011.2415.3001.5331
版权声明: 转载请注明出处!
参考:
【1】https://blog.csdn.net/2301_78484069/article/details/131670981
【2】张媛媛.短波宽带OFDM系统降低峰均比技术研究[D].西安电子科技大学[2024-11-05].DOI:CNKI:CDMD:2.2010.082712