夏班长谈OFDM通信系统仿真。

起因是这样的。最近刚写完专利,脑洞巨大,想写点文章陶冶情操。但是我不会写言情小说,这让我很痛苦。我唯一知道的就是matlab,那就写篇文章放纵一下自己吧,哈哈哈。。

?最近也是晴多雾少。最痛苦的是下周OFDM的通信系统测试。想必同学的脑洞都比我大,很多同学问我这个OFDM怎么做。我也简单说说高斯信道下的OFDM系统,其实我也说说瑞利和莱斯信道下的OFDM。不过别问了,有点难。

他们跟我们沟通就是装修宽带和电线,其实不是。是该拼实力,还是该懂点常识?

信源编码:注重信号容量压缩,提高传输效率。

信道编码:为可变信道插入冗余信息,增加传输稳定性(在设计的OFDM中插入CP(循环前缀),导频信号为冗余信息)。

信号调制:将比特流转换成稳定的波形以便传输。

比如:sint?然后呢。sin2t?是一对正交信号,因为sint*sin2t在区间内;%输入序列xk

sn = IFFT(xk);?%IFFT后的序列号序列输出

?可以得到输入序列后的IFFT曲线。

%////////////////////////////////////////////////////////////////////////////////////////////////////

使用公式:f(t)=∑fk e(j . 2πδf kt)。

对于QPSK调制,OFDM符号中有两个比特。

(对应于OFDM符号和调制方案的比特数:(QPSK: 2),(16QAM: 4),(64QAM: 6)?)

根据公式找出副载波。

副载波百分比

e 1 = exp(1i * 2 * pi * f * t);

E2 = exp(1i * 2 * pi * f * t * 2);

E3 = exp(1i * 2 * pi * f * t * 3);

E4 = exp(1i * 2 * pi * f * t * 4);

OFDM基带复信号的表达

ST = d 1 * e 1+D2 * E2+D3 * E3+D4 * E4;?%展开上面的公式。

画一幅圣彼得的画像。

我们比较上面的st和sn图像。

(上图为实部,下图为虚部)

令人惊讶的发现,IFFT之后的图是公式图的离散值!所以OFDM系统和傅立叶级数有着亲密不可分的感情,比如牛郎织女,杨贵妃和唐玄宗,葫芦娃和爷爷。。。。。这似乎有点奇怪

?所以IFFT模块的作用相当于说:不用费心发N个副载波信号,我直接计算你在空中会叠加什么;FFT模块的作用相当于说:不要用老式的积分法去掉其他正交的子载波,让我帮你一下子把N个载波信号全部算出来。

最后,设计要进行了。前面太多了,我都打累了。原来写文章这么辛苦,我觉得司马迁比牛。。

先说最简单的高斯信道。我们走吧。

如上所述,傅立叶变换在OFDM系统中起着重要的作用,所以我们在OFDM系统的仿真中使用了IFFT和FFT算法。

高斯信号就是通过这个信道在信号中加入高斯白噪声。

在maltab通信系统的仿真中,我们使用AWGN (TRDATA 1,SNR,'实测');向信号TrData1添加高斯白噪声的函数。

信号经过无线信道后,其信号幅度是随机的,即衰落,其包络服从瑞利分布。

接收到的信号有四个效果:1。暗影2。距离3。多路4。多普勒频移。

简单地说,莱斯信道比瑞利信道多一个DC分量。

就是我们所说的循环前缀,那为什么还要加上CP循环前缀的冗余信息呢?为了抵抗由多径效应引起的ICI(载波间干扰),还应该注意,CP占用每个OFDM符号的大约1/15资源。

通过训练序列插入导频信号的信息,实时估计信道,然后对信号进行校正,以降低解调时的误码率。

发件人:

第一步:生成随机序列?Signal=rand(1,para*Ns*2)>0.5

其中,我们设置并行传输的子载波的数量。

Ns是帧结构中OFDM信号的数量。

第二步:进行串并转换。

串并行转换成一个非常重要的函数整形函数

它的用法是:SIG para = shape(signal,para,ns * 2);将原始信号信号转换成并行Ns*2列信号。

重塑(a,m,n);首先将矩阵A分成列,然后拼接成m * n大小的向量..

第三步:QPSK调制。

(1)将数据分为两个通道,I通道和Q通道。

该功能如下所示:

对于j=1:Ns

ich(:,j)=SigPara(:,2 * j-1);

qch(:,j)=SigPara(:,2 * j);

结束

(2)根据QPSK映射关系,获得输入数据。

kmod=1。/sqrt(2);

ich1=ich。* kmod

qch1=qch。* kmod?%QPSK映射关系

步骤4:插入保护间隔

ich3=[ich2(fl-gl+1:fl,);ich 2];

qch3=[qch2(fl-gl+1:fl,:);qch 2];

我们选择gl = 32:复制信号的最后32组数据,加到原信号上——加强容错。

步骤5:并行-串行转换

ich4=reshape(ich3,1,(fl+GL)* Ns);

qch4=reshape(qch3,1,(fl+GL)* Ns);

形成多个传输数据:trdata1 = ich4+qch4。* sqrt(-1);

第六步:在传输的数据中加入高斯白噪声。

ReData=awgn(TrData1,SNR,'实测');

%///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

接收端:

步骤1:移除保护间隔。

(1)来复制数据。

idata = real(ReData);添加噪声后的实部百分比

qdata = imag(ReData);添加噪声后的虚部百分比

(2)数据的串并行转换

idata1 = reshape(idata,fl+gl,Ns);

qdata1 = reshape(qdata,fl+gl,Ns);

(3)移除保护间隔

idata 2 = idata 1(GL+1:GL+fl,);

qdata 2 = qdata 1(GL+1:GL+fl,);

idata1的每一列从gl+1到gl+fl的数据构成iadta2。

第二步:快速傅立叶变换

步骤3: QPSK解调:

(1)FFT转换后的数据/komd?

?(2)并行-串行转换

(3)重组信号

第四步:抽样判断

ReSig = Res & gt0.5;对上述重组信号进行分析后,大于0.5的信号赋为1,小于0.5的信号赋为0。

第五步:计算出错的概率。

err = 0;

对于I = 1:para * Ns * 2;

if (Signal(i)~=ReSig(i))

err = err+1;%获取错误代码的数量。

结束

结束

PE = err/(para * Ns * 2);

取多组信噪比值,加入高斯信道,可以得到snr-Pe曲线

%///////////////////////////////////////////////////////////////////////////////////////

图为瑞利信道下的OFDM(无信道估计)。

可以看出,当加入多径和多普勒频移时,信道误码率从3%上升到30%左右,瑞利信道完全破坏了信号传输。

引入导频信号

我们正在添加排飞行员和排飞行员。

A =[A;R]插入该行?插值

在行之间添加引导:

ich2= [zeros(fl,1) ich21(:,[1:Ns/2]) zeros(fl,1) ich21(:,[Ns/2+1:Ns]) zeros(fl,1)];

在行间添加导频:

ich 2 =[零(1,(Ns+3));ich2(1:fl/2,);零(1,(Ns+3));ich2((fl/2)+1:fl,);零(1,(Ns+3))];?

加入的结果:

在添加导频信号之后,可以使用LS算法来估计信道。

LS算法的基本原理:Y = HX+N?其中n是噪声信号,h是通道的频率响应,y和x是输出和输入信号的响应。

在理想信道下:H’= Y/X输入除以输出(其中Y为通过瑞利信道后的信号),即可得到频率响应H’的估计。

我们用得到的H '依次计算X的估计:X' = Y/H '?获取新输入。x’经受去导频的后续处理。

对于j = 1:(Ns+3)

对于i = 1:(para+3)

Hls(i,j) = idata21(i,j)。/ich2(i,j);

ixg(i,j) = idata21(i,j)。/ Hls(i,j);

hls(i,j) = qdata21(i,j)。/qch2(i,j);

qxg(i,j) = qdata21(i,j)。/ hls(i,j);

结束

结束

添加信道估计后的误码率示意图:

在OFDM系统中,只有高斯白噪声时OFDM系统的影响很小,在高斯信道中OFDM设计的优势很小。

但是在瑞利信道中,OFDM导频信号、CP和信道估计保护了传输的信号。在接收多径和多普勒频移的情况下,可以有效地恢复原始信号。

在没有信道估计的OFDM - Rayleigh系统中,多径、距离、阴影和多普勒频偏对信号造成了严重的干扰。不能正常传输,误码率严重。

。。。。。。。我厌倦了打字。里面可能有些错误。请指正。