OFDM系统设计与仿真

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OFDM系统设计
4.1 OFDM帧结构设计
和许多数字通信系统一样,在OFDM系统中,被发送的信号也是以帧来组织在一起的。

本文仿真时所采用的结构借鉴了802.11a标准,并对其进行了简化。

每一个OFDM帧由多个OFDM符号组成,对QPSK调制采用每帧6个符号,对16QAM调制采用每帧3个符号。

当FFT长度为64点时,每一个OFDM符号由一组长度等于52的子载波组成,其中48个子载波用来传输数据,4个子载波用来传输导频[35]。

这里不作导频方面考虑,52个子载波均用来传输数据,每个符号的持续时间为Ts。

每个符号由两部分组成:数据部分和保护间隔部分。

传输数据部分的持续时间长度为TU,保护间隔持续时间长度为Tg,这也是本文前面所提到的在OFDM系统中起到很大作用的循环前缀所占的时间段。

OFDM信号包含许多独立调制的载波,所以可以认为每一个OFDM符号是由许多个片组成,每一个符号中的一片可被看作是被调制在相应的子载波上。

OFDM系统参数见表4-1。

4.2系统仿真流程
图4-1给出了本次仿真的流程图,为了详细说明数据在OFDM系统中传输的全过程,系统从最原始的模拟信号考虑。

下面按照流程图介绍仿真过程的具体设计。

4.3信源编码
这里待传数据为一个模拟信号正弦波,从中均匀取出51个点,然后进行信源编码。

信源编码采用常用的是DPCM编码。

4.3.1 DPCM原理
由于语音信号的相邻抽样点之间有一定的幅度关联性,所以可根据以前时刻的样值来预测现时刻的样值,只要传预测值和实际值之差,而不需要每个样值都传输这种方法就是预测编码。

语音信号的样值可分为可预测和不可预测两部分。

可预测部分(相关部分)是由过去的一些权值加权后得到的;不可预测的部分(非相关部分)可看成是预测误差。

这样,在数字通信中就不用直接传送原始话音信号序列,而只传送差值序列。

因为差值序列的信息可以代替原始序列中的有效信息,而差值信号的能量远小于原样值,就可以使量化电平数减少,从而大大地压缩数码率[36]。

在接收端只要把差值序列叠加到预测序列上,就可以恢复原始
序列。

图4-2给出了差值脉码调制(DPCM)系统原理框图。

编码器中的预测器与解码器中的预测器完全相同。

因此,在无传输误码的情况下,解码器输出的重建信号m?(n)和编码器的m?(n)完全相同。

DPCM的总量化误差e(n)定义为,输入信号m(n)与解码器输出的重建信号m?(n)的差值。

即有:()~
量化误差只和差值信号的量化误差有关。

图4-3说明了预测的原理。

由图4-3可见,预测值跟踪输入信号抽样值变化。

4.3.2 DPCM编码过程
以两位编码N=2来说明DPCM的编码过程。

由于N=2,所以误差信号的量化电平数M=2N=4。

假设4个量化电平分别为+3 Δv,+Δv,-Δv和-3 Δv,它们分别由二进制脉冲(双极性信号)++,+-,-+,--表示。

误差信号ε(t)的抽样、量化和编码过程如图4-4所示。

图4-4(a)表示对误差信号的抽样、量化,图中的空心圆点表示误差信号的抽样值,图中的实心圆点表示误差信号量化后的值。

由图可见:当0≤ε(t)<2Δv,量化为Δv;当-2Δv≤ε(t)<0,量化为-Δv;当2Δv≤ε(t),量化为+3Δv;当ε(t)<-2Δv,量化为-3Δv。

图4-4(b)表示经抽样与量化后的信号波形,图4-4(c)是编码器输出的DPCM编码。

若设正脉冲表示二进制数字“0”,负脉冲表示“1”,则编码器输出的DPCM码为:010101000000000001101111。

Fig4-4 sketch map of coding of DPCM在进行DPCM编码时,采用MATLAB自带的库函数进行。

预测器采用一阶预测器,量化区间在[-1,1],量化间隔为0.1。

由于MATLAB自带的库函数dpcmenco.m将输入正弦波的采样点编码为十进制数字,需要编一个进制转换函数,将其转换为二进制的0、1代码。

根据库函数的输出结果,将每个十进制数字转换为6位二进制数字可以满足条件。

这样可以得到306个0、1代码,接下来进行信道编码。

4.4信道编码
4.4.1信道编码与误码率
误码率是衡量通信系统性能的一个重要的指标,信道编码的主要目的就是为了将误码率降低到系统所要求的程度。

误码率与多种因素有关系。

根据信道编码定理可知:每个信道具有确定的信道容量(C),对于码率(R)和码长(n)都一定的分组码,若信道容量越大,则误码率越低。

由信息论的基本理论可知,高斯白噪声信道的信道容量为:
式中:W是信道所能提供的带宽,Ps=Es/T是信号功率,Es是信号的能量,T是信号时长,Ps/W是单位信号的功率,N0是噪声功率谱密度,Ps/(W*N0)是信噪比
Fig4-6 relation a
由以上的分析可知,为了满足一定的误码率,有两种方法,一种是增加C,增加C的方法是增加带宽和信噪比。

图4-5,图4-6显示了三者的关系。

随着信噪比的增加,信道容量不断增大;随着带宽的增加,信道容量开始也是不断增加,但当带宽增加到一定时,信道容量逐渐趋于某一极限。

然而,通信系统带宽通常是一定的,增加信噪比则必须增加发射机的功率。

另一种是增加码长。

在码率一定的情况下,误码率将随着码长的增加而指数下降。

然而码长的增加,由于码率一定,可用码字的数量也增加了,从而会增加译码设备的复杂性。

因此,整个通信系统需要在多种因素中折中。

当各种因素一定时,通过采用合适的纠错编码方式,大约可以获得零点几到几个的编码增益。

也就是说,相同误码率的情况下,采用了好的编码技术的系统的信噪比要低几个分贝[37]。

数字信号在传输过程中,差错的类型主要有二种。

(1)随机差错:由随机噪声所造成的差错。

(2)突发差错:指成串出现的差错,差错分布比较密集,差错之间有相关性。

为了达到规定的误码率,提高数字通信的可靠性,通常采用的信道编码也称为差错控制编码。

其基本做法是:发送端在传输的信息码元序列中附加
一些冗余的监督码元,这些监督码元和信息码元之间按照编码规则形成一定的关系,接收端则通过这种关系来发现和纠正可能产生的误码。

信道编码的目的主要有两点:
(1)要求码序列的频谱特性适应通道频谱特性,从而使传输过程中能
量的损失最小,提高信号能量与噪声能量的比例,减小发生差错的可能性,
提高传输速率。

(2)增加纠错能力,使得既便出现差错,也能得到纠正。

差错控制方式常用的有下面所给出的三种:
(1)检错重发方式(ARQ):发送端发出检错码,接收端收到后经检验
如果发现传输中有错码,但不知错码的准确位置,则通过反向信道把这一判
断结果发送给发送端。

(2)前向纠错方式(FEC):发送端发送纠错码,接收端在收到信码中不仅能发现错码,而且还能够确定错码的准确位置,并纠正错码。

(3)混合纠错方式(HEC):该方式是前两种方式的结合,发端发送的码不仅能够检测错误,而且还具有一定纠错能力
4.4.2卷积码
本文采用的是前向纠错方式,并参照802.11a,采用卷积码。

卷积码是1955年
由爱里斯提出,它与分组编码不同。

分组码中本组中的n-k个校验元仅与本组中的k个信息元有关,与其他组的码元无关。

分组码译码时,也只从本组中提取有关译码信息。

但卷积编码中,编码码字不仅与本组的信息有关,而且与以前时刻的其他组的信息有关。

同样,译码时不仅从此时刻收到的码组中提取译码信息,而且还利用以前一段时刻收到的码字。

卷积码以“位”为单位进行,因此编码设备结构比分组码简单。

在卷积码中,每k0个信息比特序列映射为一个长为n0的信息输入序列,但是这个信道输入序列不仅决定于最当前的k0个信息比特,而且还与编码的前(L-1)k0个输入有关。

因此,这种编码器有一种有限状态机的结构,在这里每一时刻,输出序列不但与输入序列有关,而且还与编码器的状态有关,这个状态是由编码器的前(L—1)k0个输入决定的。

参数L称为该卷积码的约束长度。

因此,一个二进制卷积码就是—个具有个状态的有限状态机。

图4-7示出k0=2,n0=3和L=4的一种卷积码在这个卷积编码器中,信息比特是每次2比特送入这个移位寄存器,而在该移位寄存器中最后2个信息比特移出。

这3个编码比特然后按图示计算出并在信道上传输。

因此,这个码的速率是R=2/3。

注意,在信道上传输的这3个编码器输出既决定于输入到这个移位寄存器的2个信息比特,也与该移位寄存器前三级(6比特)的内容有关。

最后一级(2比持)的内容在输出上没有影响,出为一旦2信息比特一输人进去,它们就从该移位寄存器出去了,所以没有任何的影响。

一个卷积码通常是用该卷积码的生成序列(generator sequences)来定义的,它们记为g1,g2,……,gn。

如果这个移位寄存器的第i个单元是连到对应于输出中的第j个比特的相加器上,那么gj中的第i个元素就是1,否则就是0,这里1<i<k0L 和1<j<n。

例如,在图4-7中表示的卷积码,其生成序列为:
g1=[0 0 1 0 1 0 0 1](4-6)
g2=[0 0 0 0 0 0 0 1](4-7)
g3=[1 0 0 0 0 0 0 1](4-8)
一旦g1,g2,……,gn给定,卷积码就唯一的被确定。

也定义卷积码的生成矩阵为:一般,这是一个n×k0L的矩阵。

对于图4-7所示的卷积码,其生成矩阵如
式(4-10)所示:??
10000001
假定产生卷积码的移位寄存器在进入第1个信息比持之前全都是0输入(也即该编码器初始为0状态),并且假定将信息比特序列补上(L—1)k0个0,以便将该卷积编码器又带回到0状态,这样做是有用的。

另外还假设信息比特序列(卷积编码器的输入)的长度是k0的倍数,如果这个信息比特序列的长度不是k0的倍数,就给它补0以使所得到的长度是k0的倍数。

这个要在本段先前指出的补(L—1)k0个0之前完成。

如果在第1次补0之后,这个输入序列的长度是nk0,那么输出序列将是(n+L—1)n0。

实际中,n要比L大得多,上式就能很好地近似为:Rc=k0/n0(4-11)
802.11a采用的是删余卷积码。

这种编码的母码是基于码率为1/2、有64种状态的卷积编码。

该卷积编码的结构如图4-8所示。

卷积编码的输入是以位为单位的二进制数据。

1/2卷积码的输入只有一路,相继经过6个移位寄存器,每个寄存器延时1位(Bit)。

两路输出X,Y分别根据各自的生成多项式计算本路输出的数
据。

Fig4-8(2,1,7)convolution encoder
如果是码率为2/3,3/4等其他码率时,先要进行删余处理。

表4-2是卷积码删余图样。

在此仿真方案中,不进行删余处理,只进行并串变换。

码率为1/2,仿真时设置k0=1,G=[1 0 1 1 0 1 1;1 1 1 1 0 0 1],并将信源编码输出的306个0、1代码recode 作为编码器输入,按照上述方案经过信道编码后可得624个0、1代码channelencode。

4.5串并变换
624个0、1代码要使用OFDM系统进行传输,因为子载波数为52,所以要通过串并变换变为52行、12列的数据。

4.6子载波调制和解调
在2.3.1已经介绍了多进制调制的基本原理,下面就仿真中所使用的QPSK、16QAM两种调制方式及在OFDM中仿真的原理再分别做一详细介绍。

OFDM子载波在进行调制时,是将编码后的数据按照调制度分为长度为n=2(QPSK)、n=4(16QAM)的组,按照格雷编码的方式进行映射,映射后的数据分别作为I信道和Q信道的数据,相加后数据再乘以归一化因子即为调制的结果d:
d=(dI+jdQ)?Kmod(4-12)
对于QPSK调制,归一化因子为12,而16QAM调制为110。

4.6.1 QPSK
数字基带信号的频谱集中分布在低频段,不适合直接在带通信道中传输,为了在带通信道中传输数字信号,必须采用数字调制技术将基带信号的频谱搬移到适合信道传输的频段,再进行传输,这种通信方式称为数字信号的载波传输(调制传输)[38]。

QPSK调制的原理是把相继两个码元的四种组合(00,01,10,11)对应于正弦波的四个相位。

Si(t)=cos(ωct+Qi)i=1,2,3,4;-T/2≤t≤T/2当Qi=0,±π/2,π,±π/4,±3π/4时,Si(t)=b0cosωct+b1sinωct
相应的Qi是±π/4,±3π/4时,(b0,b1)=(1,1),(1,-1),(-1,1),(-1,-1)。

用(b0,b1)在二维平面上表示:
通过上面的星座图可以发现,0映射为-1。

所以仿真时只要将相邻的两列数据分别映射到I信道和Q信道上,并将0映射为-1,并将此二列进行复数相加,再乘以归一化因子12,即可得到式(4-12)中的d。

对于QPSK,d为52行6列的复数。

解调时,只要进行相反的过程,并将0作为判决电平,即可实现数据的解调恢复。

4.6.2 16QAM
16QAM是正交移幅键控的一种调制方式,有很高的频道利用率。

正交移幅键控信号是一种载波键控信号,它有同相和正交两路载波,以幅度键控方式独立地传送数字信息。

它的复包络可以写成:u(t)=x(t)+jy(t)(4-13)其中,x(t)、y(t)是多电平基带信号,它们所带的数字信息是独立的,这是正交幅度键控区别于多相移相键控和连续相位键控的一个主要特征。

若由四电平正交调幅形成幅度键控信号,其等效基带信号在复平面上的数目为16,称为16QAM(16个信号状态)。

图4-
11是16QAM信号矢量端点图,图中16个信号状态排成4×4方阵,每点表示一种状态,每一状态为一矢量(包括幅度与相位)。

由图可见共有三种不同的幅度(标量)和12个不同的相位(每个象限有3个)其星座映射图如图4-12:
由映射图可以发现,00映射为-3,01映射为-1,10映射为3,11映射为1。

因此仿真时可以采用如下方式进行:将每四列的数据b0b1b2b3分为两组,前两列b0b1为第一组,后两列b2b3为第二组。

令:aI=2×b0+b1(4-14),aQ=2×b2+b3(4-15) 设C=[-3-1 3 1]。

令dI=C(aI+1),dQ=C(aQ+1)即可实现格雷码映射。

最后可以得到d=(dI+jdQ)?Kmod即为调制结果输出。

其为52行3列的数据。

解调时,可以先将数据的实部、虚部分开。

分别先以0为判决电平,如果dI、dQ大于0,则b0、b2为1,否则为0。

如果dI、dQ大于0,再以2为判决电平,如果大于2,则b1、b3为0,否则为1。

如果dI、dQ小于0,再以-2为判决电平,如果大于-2,则b1、b3为1,否则为0。

4.7 IFFT
调制后所得数据d送入到IFFT的端口。

在实际应用中,对一个OFDM符号进行N次采样,或者N点IFFT运算所得到的N个输出样值往往不能真正地反映连续OFDM符号的变化特性。

其原因在于:由于没有使用过采样,当这些样值点被送到模/数转换器(A/D)时,就有可能导致生成伪信号(aliasing),这是系统中所不能允许的。

这种伪信号的表现就是,当采样点数较少时,即当采样值被还原之后,信号中将不再含有原有信号中的高频成分,呈现出虚假的低频信号。

因此针对这种伪信号现象,一般都需要对OFDM符号进行过采样,即在原有的采样点之间在添加一些采样点、构成更多个采样值。

这种过采样的实施也可以通过利
用IFFT/FFT的方法来实现实施。

IFFT运算时,需要在原始的N个输入值中添加一些零即可。

此外,以T为采样间隔得到的时域采样信号的傅里叶变换是由时域连续信号的傅里叶变换周期重复构成的,其重复周期为1/T。

如果对时域信号实施p倍过采样,即采样间隔为T/p,则其相应的傅里叶变换的重复周期就会变为p/T,而时域连续信号的频谱宽度又保持不变,因此从频域来看,也相当于在连续信号带宽之外补零。

而在IFFT运算中,相当于在频域数据中插入零[39]。

802.11a中,在IFFT变换中的插零方式如图4-13所示。

IFFT后的数据为一复数,参照3.2.1节的方案二,实部、虚部分别取出,作为I 信道和Q信道的数据Ich2和Qch2。

对于QPSK为64×6,对于16QAM为64×
3。

4.8加入保护间隔和并串转换
802.11a的保护间隔长度为FFT时间的1/4,所以只需要将FFT的输出结果I信道和Q信道的数据Ich2和Qch2后1/4的部分拷贝到前端即可。

加保护间隔后的I信道和Q信道数据经过并串转换后,在实际传输过程中调制到一个高频载波上进入信道。

4.9信道
本次仿真时,采用了两种信道模型RAYLEIGH和AWGN。

4.9.1 AWGN信道
定义传输信号,白高斯噪声,和接收信号为s(t),n(t),r(t)。

其间的关系如下:r(t)=s(t)+n(t)(4-16)n(t)是AWGN过程的样本函数,概率密度函数和功率谱密度的关系如
下:N0是常数,通常被叫做噪声功率密度。

在用MATLAB仿真时,我们使用内建函数randn。

由此可以产生随机数矩阵,其均值为0,方差为1。

所果我们给带有同相和正交信道的数字调制信号idata和qdata 加入
AWGN噪声带有功率1时,关系如下: 然而,仿真时
我们通常计算不同噪声功率时的BER表现,我们把噪声功率定义为变量npow,但是idata和qdata是电压,不是功率。

所以我们必须把变量npow换算成电压,
我们定义变量attn,其与npow的关系为:所以修改后,
受功率为npow的噪声影响的输出数据为:所编程序中只要输入idata,qdata,attn三个变量就可以得到噪声影响的输出信号。

在OFDM系统仿真中,我们要作出Eb/N0与BER的关系,因此我们必须计算出Eb/N0与attn的关系。

首先定义每比特能量Eb和噪声功率谱密度N0:
spow是每个OFDM符号每个载波的信号功率,br是每个载波的比特率
sr为OFDM符号速率,也为每个子载波上的符号传输速率,近似为带宽。

由式(4-21),式(4-22)可得:
因为Eb/N0一般是以分贝形式给出,式(4-24)可以写为:
由此我们可以计算出npow。

在计算出spow后就可以得到npow,再由式(4-19)就可以得到attn,加入噪声。

4.9.2 RAYLEIGH信道
在陆地移动通信中,基站和移动台间的路径存在各种障碍和反射。

这对接收信号有很大影响,当射频信号从基站向移动台传输时就是如此。

传输特性如图4-14所示,射频信号从基站分出很多路径,包括由反射波、散射波、衍射波。

在这种情况下,不同到达波的路径长度不同,到达移动台的时间也会不同。

此外,附加波的相位也会因为反射而呈现出不同结果,接收机所收到的是由不同相位和到达时间的许多波的合成。

由延迟波所造成的不同波合成的传输环境称作多径传输环境。

在多径传输环境,接收信号时而加强时而削弱,这种现象称作多径衰落。

多径衰落增加了接收信号的误码率[40]。

带有附加角度θn的延迟波由式(4-26)给
出,其从基站发出时的频率为fc。

具体的仿真过程为,首先将输入的信号按照参数延迟。

然后,瑞利衰落加入每径的信号中。

当所有的信号波都经历以上过程后,再按照功率的相对大小进行累加,
就可以获得多径瑞利衰落。

通常,每径的瑞利分布应该是相互独立的。

由于使用相同的fade.m函数来产生瑞利衰落,因此为了实现相互独立的瑞利衰落,本仿真中使用了一个衰落计数器counter,使得每径衰落产生的开始时间不同,这样每径的衰落波形都不相同,我们就可以仿真独立分布的多径瑞利衰落环境了。

4.10串并转换和去保护间隔经信道后的串行数据在实际传输中,从射频波上解调下后,重新恢复成I信道和Q信道两路数据。

再经过串并转换后,变成并行数据。

I,Q两路数据在QPSK下为80×6,在16QAM下为80×3。

然后将前1/4的保护间隔
去除,对于QPSK变为64×6,16QAM变为64×3。

4.11 FFT
在进行FFT时,先将I信道和Q信道两路数据复数相加,然后进行FFT变换。

变换后的数据再将实部、虚部分别取出,按照IFFT的插零方式,进行一个相反的逆过程,重新分配在所在的52个载波上,再存入I信道和Q信道。

这样,I 信道和Q信道的数据在QPSK下变为52×6,在16QAM下变为52×3。

然后将此两路数据送入解调模块,分别除以归一化因子后按照4.5节的叙述进行解调,解调输出为52×12的数据。

4.12信道解码
解调输出的数据经过并串变换后成为串行代码demodata1。

由于信道编码使用的是卷积码。

一般说来,卷积编码的译码有两种方式:一种是代数解码,它利用编码本身的代数结构进行解码,不考虑信道的统计特性;一种是概率解码,这种解码方法在计算时要用到信道的统计特性。

Viterbi译码属于概率解码,它的基本思想是最大似然算法:把接收到的序列与所有可能的发送序列进行比较,选择一种距离最小的序列作为发送序列。

802.11a的OFDM中Viterbi译码采用的是硬判决,所以采用的是汉明距离。

按照参考文献[37]所述的解码原理,得到解码输出记为channeldecode。

4.13信源解码经过信道解码后的数据channeldecode为二进制数字,将其相邻的6位作为一组变为十进制数字,按照4.3节给出的DPCM原理框图的解码部分可以恢复出原始数据。

仿真时使用MATLAB自带的dpcmdeco.m 函数即可还原出原始的模拟信号。

4.14本章小结
本章按照仿真的流程详细介绍了所设计的OFDM系统,对其仿真的思路和设计的机理做了详细的论述。

调制时采用QPSK、16QAM两种方式,信道编码使用卷积码,信道解码采用Viterbi算法,最终建立了一个基带OFDM系统。

其间,介绍了本次仿真中要使用的信道模型AWGN和RAYLEIGH,并对其仿真的原理进行了详细的论述。

相关文档
最新文档