OFDM调制

本文深入探讨了OFDM(正交频分复用)技术中的基带信号生成,包括实数和复数两种形式。在频域采样点处,OFDM调制确保了子载波间的正交性,允许在有限带宽内传输多个数据子载波。通过IFFT(快速傅里叶逆变换)处理星座映射后的复数信息,可以生成包含负频率到正频率的基带信号。此外,讨论了如何通过调整子载波映射来确保数据符号按预期顺序出现在频谱中,以及在802.11a标准中OFDM的实现细节。
摘要由CSDN通过智能技术生成

基于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\{\begin{array}{ll} \mathrm{e}^{\mathrm{j} 2 \pi f_{k}\left(t-l T_{\mathrm{sym}}\right)}, & 0<t \leqslant T_{\mathrm{sym}} \\ 0, & \text { 其他 } \end{array}\right., l=0,1,2, \cdots, \infty,\\ k=0,1,2, \cdots, N-1 , f_{k}=\frac{k}{T_{\mathrm{sym}}} 。T_{\mathrm{sym}} Ψl,k(t)={ej2πfk(tlTsym),0,0<tTsym 其他 ,l=0,1,2,,,k=0,1,2,,N1,fk=TsymkTsym表示单个 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=0k=0N1Xl[k]ej2πfk(tlTsym)
子载波 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(tlTsym),0<tTsym的频谱可由时移后门函数的频谱与相应的冲激进行卷积得到,由时移特性知,门函数信号 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} }, ej2π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,kXl[k]ej2πfk(tlTsym)=al,kej2πfk(tlTsym)+jbl,kej2πfk(tlTsym),上式相当于门函数由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(tlTsym)的频谱为两个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} } ej2π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(tlTsym)里,所以当我们对比特流映射成的PSK或QAM符号序列 X l [ k ] X_{l}[k] Xl[k]进行处理(IFFT)时,就相当于对红色箭头处进行精确的频域采样,利用了红色箭头处的 X l [ k ] X_{l}[k] Xl[k]信息,从某种角度可以认为是已经在频域中对红色箭头处准确采样了。

综上,当我们由比特流进行星座调制后拿到复数信息时,相当于准确拿到上图红色位置(频域采样点)处的信息了

二、OFDM基带信号——实数和复数

2.1 OFDM基带实信号

有些资料中在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个复数信息数据。

2.2 OFDM基带复信号

还可以得到复数的 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 个复数信息数据。这两种方式频带效率是一样的。

三、生成 ( − f m , f m ) (-f_{m} ,f_{m} ) (fm,fm)OFDM基带信号

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(tlTsym),0<tTsym,k=0,1,2,,N1,频率 f 0 f_{0} f0 f N − 1 f_{N-1} fN1都是正频率,N个子载波叠加后频谱如下图3所示(在该部分未关注频谱的相位,重点关注频谱的幅值):
请添加图片描述 图 3 图3 3
但是利用OFDM调制的基带信号,如WIFI信号,其信号频谱都是负频率到正频率部分,类似为下图4所示:
在这里插入图片描述 图 4 图4 4

OFDM调制时做了什么操作可以从频率 f 0 f_{0} f0 f N − 1 f_{N-1} fN1都是正频率,得到负频率部分到正频率部分(零频在中心)?

在第一部分频域采样点中,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=0k=0N1Xl[k]ej2πfk(tlTsym)
在时刻 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=0N1Xl[k]ej2πkn/N,n=0,1,,N1,上式相当于数据符号 { X l [ k ] } k = 0 N − 1 \left\{X_{l}[k]\right\}_{k=0}^{N-1} {Xl[k]}k=0N1 的 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=ΔfN

需要注意的是数字频率 ω = 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=0N1后,如果用式 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=0k=0N1Xl[k]ej2πfk(tlTsym)产生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=0N1后,将 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=0k=0N1Yl[k]ej2πfk(tlTsym)产生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=ΔfN=312.5k64=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,,N1
请添加图片描述 图 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

  • 11
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
OFDM(正交频分复用)调制是一种在通信系统中常用的调制技术。它通过将信号分成多个较窄的子载波进行调制,以提高频谱效率和抗多径干扰能力。LabVIEW是一种集成开发环境(IDE),用于进行数据采集、信号处理和通信系统的设计。 在LabVIEW中进行OFDM调制可以通过以下步骤实现: 1. 生成子载波:首先确定所需的子载波数量和带宽,然后使用LabVIEW的信号生成工具生成相应数量的正弦波子载波。 2. 调制数据:将要传输的数据进行调制OFDM调制中通常使用各种调制方式,如QAM(正交振幅调制)或PSK(正交相移键控),使用LabVIEW的信号处理模块可以方便地完成这一步骤。 3. 对子载波进行调制:将调制后的数据分配到各个子载波上。可以使用LabVIEW的分支结构或循环结构来实现这一步骤。 4. 子载波的叠加:将所有子载波按照一定的规则叠加在一起。OFDM调制中通常使用IFFT(逆离散傅立叶变换)实现这一步骤。 5. 添加保护间隔:OFDM调制中还需要在子载波之间添加一定长度的保护间隔,以减小多径干扰对信号的影响。可以使用LabVIEW的信号处理工具实现这一步骤。 6. 发送信号:将调制后的OFDM信号发送出去。可以使用LabVIEW的数据采集和发送模块实现这一步骤。 通过以上步骤,我们可以在LabVIEW中实现OFDM调制。LabVIEW提供了丰富的信号处理和通信系统设计工具,可以方便地进行OFDM调制的各个环节的设计和实现。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值