移动通信系统课设——OFDM系统仿真

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

移动通信系统课程设计报告

OFDM系统仿真

——

目录

移动通信系统课程设计报告 (1)

(一)题目要求: (2)

(二)相关原理: (2)

1)OFDM: (2)

2)QPSK调制: (3)

3)导频与均衡: (3)

4)循环前缀: (3)

5)分组交织: (4)

(三)基本思路: (4)

(四)结果: (10)

1)软解码与硬解码情况下不同信噪比的误码率: (10)

2)不同信噪比下译码相位图: (11)

(五)总结体会: (11)

(六)分工合作: (12)

(七)程序代码: (12)

(一)题目要求:

1)OFDM128路传输;

2)QPSK调制

3)AWGN信道

4)3径或4径瑞利衰落信道

(二)相关原理:

1)OFDM:

将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号

可以通过在接收端采用相关技术来分开,这样可以减少子信道

之间的相互干扰(ISI) 。每个子信道上的信号带宽小于信道的相

关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消

除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的

一小部分,信道均衡变得相对容易。

2) QPSK 调制:

将每两个相连比特组在一起形成双比特码元,它的四种状态用4个不同的相位表示;

3) 导频与均衡:

在OFDM 信息序列中插入已知的导频序列()x n ,通过信道后将其提取得()y n ,做频域除法得传输函数[][]z =[]

Y z H X z ,再通过线性插值后得到每个信道频率响应,均衡滤波传输函数[]1E []

z H z =; 4) 循环前缀:

循环前缀(Cyclic Prefix, CP)是将OFDM 符号尾部的信号搬移到头部构成的。用来消去码间干扰,通常取长度g T τ≥(τ为信道冲激响应持续时间)

5) 分组交织:

为了解决成串的比特差错问题,采用了交织技术:把一条消息中的相继比特分散开的方法,即一条信息中的相继比特以非相继方式发送,这样即使在传输过程中发生了成串差错,恢复成一条相继比特串的消息时,差错也就变成单个(或者长度很短)的错误比特,这时再用信道纠正随机差错的编码技术(FEC )消除随机差错。 纠错数max b D t =⋅ (三) 基本思路:

说明: 1) 编码:使用216卷积码;

相关代码:

%卷积编码%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ori_data_t_1=reshape(ori_data_t,num_inf,2*channell); %58*192 ori_data_t_2=zeros(num,2*channell); %128*192 信号产生卷积编码交织(32)QPSK 调制

(96路)插入导频信号(32路)

OFDM 调制

(IFFT )插入循环前缀(1/4长度)并串转换AWGN 信道3径瑞利信道串并转换OFDM 解调

(FFT )取导频信道估计与

均衡并串转换

QPSK 解调解交织卷积译码误码率统计

for i = 1:2*channell

seq = ori_data_t_1(:,i)';

seq_code = encode216(seq)';

ori_data_t_2(:,i) = seq_code;

end

ori_data=reshape(ori_data_t_2,1,2*num*channell); %1*24576 编码函数:

function code=encode216(m)%输入信息序列

%g1=[1,0,0,0,0,0];g2=[1,1,0,0,1,1];

trel=poly2trellis(6,[40 63]);%定义网格

m1=[m,0,0,0,0,0,0];

code=convenc(m1,trel);%卷积码编码

2)交织:交织深度为32;

相关代码:

%编码交织%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ori_data1=reshape(ori_data,deep,(2*num*channell)/deep)'; %768*32

ori_data2=reshape(ori_data1,1,2*num*channell); %1*24576

3)QPSK调制:转换为96路相位信号(复数);

代码:

%QPSK调制%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ori_data_0=reshape(ori_data2,2,channell*num); %拆分成两行12288列

ori_data_1=bi2de(ori_data_0','left-msb')'; %QPSK的未调制数据12288列M=4的数据

de_OFDM_1=modem.pskmod(4); %生成调制器对象,设置qpsk调制QPSK_data=modulate(de_OFDM_1,ori_data_1); %1*12288复数形式%channel_data=reshape(QPSK_data,channell,num); %拆分成128行,每行10个复数128*10

channel_data=reshape(QPSK_data,num,channell); %拆分成128行,每行96个复数128*96

4)插入导频:32路已知序列;

代码:

%插入导频信号%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% pliot_1=2*rand(128,32);

pliot_2=2*rand(128,32); %插入的导频信号,实数

pliot=pliot_1+pliot_2*1i; %插入的导频信号,复数

channel_data_1=zeros(128,128);

相关文档
最新文档