OFDM信号的时移特性(非整数采样点时移)

一、前言

在《利用DFT/FFT对序列位移—非整数时的陷阱》中,我们得出结论:当存在频谱泄露或频谱折叠时,无法利用FFT实现“非整数采样点”的时域序列位移。
幸运的是,对于OFDM信号,利用“其有效符号部分的子载波正交性”和“循环前缀”能够实现“精准”的非整数点时移,本文将阐述具体的方法。

二、OFDM信号模型

不妨将基带OFDM信号中第 l l l个符号记为 x l ( t ) x_l(t) xl(t),则有,
x l ( t ) = ∑ k = 0 K − 1 s l , k e j 2 π k t T u , 0 ≤ t ≤ T g + T u x_l(t)=\sum_{k=0}^{K-1} s_{l,k}e^{\frac{j2\pi kt}{T_u}}, 0 \leq t \leq T_g+T_u xl(t)=k=0K1sl,keTuj2πkt,0tTg+Tu
其中, l l l为符号索引, K K K为子载波总数, k k k为子载波索引; s l , k s_{l,k} sl,k为第 l l l个符号中第 k k k个子载波所携带的通信数据; T g T_g Tg为循环前缀持续时间, T u T_u Tu为有效符号部分的持续时间。显然, 0 ≤ t ≤ T g 0 \leq t \leq T_g 0tTg T u ≤ t ≤ T u + T g T_u \leq t \leq T_u + T_g TutTu+Tg对应的时域波形相同,故将 0 ≤ t ≤ T g 0 \leq t \leq T_g 0tTg对应的时域波形称之为“循环前缀”。
值得注意的是,由于循环前缀的存在,从 x l ( t ) x_l(t) xl(t)中任取长度为 T u T_u Tu的时域波形 x ^ l ( t ) \hat{x}_l(t) x^l(t),则 x ^ l ( t ) \hat{x}_l(t) x^l(t)中各个子载波仍然满足“正交性”,即不会产生频谱泄露。

三、OFDM信号的非整数点时移

以采样率 f s f_s fs x l ( t ) x_l(t) xl(t)进行采样,满足 n = t f s ∈ Z n = tf_s \in \mathbb{Z} n=tfsZ,则有,
x l [ n ] = x l ( n / f s ) = ∑ k = 0 K − 1 s l , k e j 2 π k n N u , 0 ≤ t ≤ N g + N u − 1 \begin{aligned} x_l[n] &= x_l(n/f_s) \\ &= \sum_{k=0}^{K-1} s_{l,k}e^{\frac{j2\pi kn}{N_u}}, 0 \leq t \leq N_g+N_u-1 \end{aligned} xl[n]=xl(n/fs)=k=0K1sl,keNuj2πkn,0tNg+Nu1
其中, N u = T u f s , N g = T g f s N_u = T_u f_s,N_g=T_g f_s Nu=Tufs,Ng=Tgfs。假设我们需要对 x l [ n ] x_l[n] xl[n]进行 n 0 n_0 n0点的位移,满足 n 0 = n i n t + n d e c n_0 = n_{int} + n_{dec} n0=nint+ndec;其中, n i n t ∈ Z , n d e c ∈ ( − 0.5 , 0.5 ] n_{int} \in \mathbb{Z},n_{dec} \in (-0.5,0.5] nintZ,ndec(0.5,0.5];则OFDM信号的非整数点时移可以划分为3个步骤:
(1) 利用FFT对OFDM符号的有效符号部分进行 n d e c n_{dec} ndec点的位移:
不妨令第 l l l个OFDM符号的“循环前缀”和“有效符号部分”分别为 x l , g [ n ] x_{l,g}[n] xl,g[n] x l , u [ n ] x_{l,u}[n] xl,u[n],则有,
x l , g [ n ] = x l [ n ] , 0 ≤ n ≤ N g − 1 x l , u [ n ] = x l [ n ] , N g ≤ n ≤ N g + N u − 1 \begin{aligned} x_{l,g}[n] &= x_l[n], 0 \leq n \leq N_g - 1 \\ x_{l,u}[n] &= x_l[n], N_g \leq n \leq N_g + N_u - 1 \end{aligned} xl,g[n]xl,u[n]=xl[n],0nNg1=xl[n],NgnNg+Nu1
显然,易得,
x l , u [ n − n d e c ] = ∑ k = 0 K − 1 s l , k e j 2 π k ( n − n d e c ) N u , 0 ≤ n ≤ N u − 1 x_{l,u}\left[n-n_{dec}\right] = \sum_{k=0}^{K-1} s_{l,k}e^{\frac{j2\pi k (n-n_{dec}) }{N_u}}, 0 \leq n \leq N_u - 1 xl,u[nndec]=k=0K1sl,keNuj2πk(nndec),0nNu1
综上,因为在 N u N_u Nu点的FFT中,子载波的正交性没有破坏,因此可以直接利用FFT完成非整数点时移,即对 x l , u [ n ] x_{l,u}[n] xl,u[n]进行 n d e c n_{dec} ndec点的位移。

(2) 计算进行 n d e c n_{dec} ndec点位移后的循环前缀时域波形:
不妨令 y l [ n ] = x l [ n − n d e c ] y_l[n]=x_l[n-n_{dec}] yl[n]=xl[nndec],则有,
y l [ n ] = y l ( n f s ) = x l [ n − n d e c ] = x l ( n − n d e c f s ) y_l[n]=y_l\left(\frac{n}{f_s}\right)=x_l[n-n_{dec}]=x_l\left( \frac{n-n_{dec}}{f_s} \right) yl[n]=yl(fsn)=xl[nndec]=xl(fsnndec)
a ) a) a):当 1 ≤ n ≤ N g − 1 1 \leq n \leq N_g - 1 1nNg1时,
y l [ n ] = y l ( n f s ) = x l ( n − n d e c f s ) = x l ( n + N u − n d e c f s ) = x l , u [ n − n d e c ] y_l[n] =y_l\left(\frac{n}{f_s}\right)=x_l\left( \frac{n-n_{dec}}{f_s} \right)=x_l\left( \frac{n+N_u-n_{dec}}{f_s} \right) = x_{l,u}\left[n-n_{dec}\right] yl[n]=yl(fsn)=xl(fsnndec)=xl(fsn+Nundec)=xl,u[nndec]
b ) b) b):当 n = 0 n = 0 n=0时,
y l [ n ] = x l ( − n d e c f s ) = x l − 1 ( N u + N g − n d e c f s ) = x l − 1 ( N g − n d e c f s ) = y l − 1 [ N g ] y_l[n] = x_l\left( \frac{-n_{dec}}{f_s} \right) = x_{l-1}\left( \frac{N_u+N_g-n_{dec}}{f_s} \right) = x_{l-1}\left( \frac{N_g-n_{dec}}{f_s} \right) = y_{l-1}[N_g] yl[n]=xl(fsndec)=xl1(fsNu+Ngndec)=xl1(fsNgndec)=yl1[Ng]
(3) 对整体信号波形进行 n i n t n_{int} nint点的位移:
对于整数点的位移,可以通过时域平移的方式直接实现,在此不再赘述;最终, z l [ n ] = y l [ n − n i n t ] z_l[n] = y_l\left[n-n_{int}\right] zl[n]=yl[nnint]为输出结果。

四、程序源代码

点击获取MATLAB源代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌哒哒虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值