OFDM技术仿真(MATLAB代码)
- 格式:doc
- 大小:4.04 MB
- 文档页数:33


无线通信原理-基于matlab的ofdm系统设计与仿真
基于matlab的ofdm系统设计与仿真
摘要
OFDM即正交频分复用技术,实际上是多载波调制中的一种。其主要思想是将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到相互正交且重叠的多个子载波上同时传输。该技术的应用大幅度提高无线通信系统的信道容量和传输速率,并能有效地抵抗多径衰落、抑制干扰和窄带噪声,如此良好的性能从而引起了通信界的广泛关注。
本文设计了一个基于IFFT/FFT算法与802.11a标准的OFDM系统,并在计算机上进行了仿真和结果分析。重点在OFDM系统设计与仿真,在这部分详细介绍了系统各个环节所使用的技术对系统性能的影响。在仿真过程中对OFDM信号使用QPSK调制,并在AWGN信道下传输,最后解调后得出误码率。整个过程都是在MATLAB环境下仿真实现,对ODFM系统的仿真结果及性能进行分析,通过仿真得到信噪比与误码率之间的关系,为该系统的具体实现提供了大量有用数据。
- 1 -
第一章 ODMF系统基本原理
1.1多载波传输系统
多载波传输通过把数据流分解为若干个子比特流,这样每个子数据流将具有较低的比特速率。用这样的低比特率形成的低速率多状态符号去调制相应的子载波,构成了多个低速率符号并行发送的传输系统。在单载波系统中,一次衰落或者干扰就会导致整个链路失效,但是在多载波系统中,某一时刻只会有少部分的子信道会受到衰落或者干扰的影响。图1,1中给出了多载波系统的基本结构示意图。
图1-1多载波系统的基本结构
多载波传输技术有许多种提法,比如正交频分复用(OFDM)、离散多音调制(DMT)和多载波调制(MCM),这3种方法在一般情况下可视为一样,但是在OFDM中,各子载波必须保持相互正交,而在MCM则不一定。
1.2正交频分复用
OFDM就是在FDM的原理的基础上,子载波集采用两两正交的正弦或余弦函
比较完整的OFDM仿真,供大家学习下载。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
%
%一个相对完整的OFDM通信系统的仿真设计,包括编码,调制,IFFT,
%上下变频,高斯信道建模,FFT,PAPR抑制,各种同步,解调和解码等模
%块,并统括系统性能的仿真验证了系统设计的可靠性。
clear all
close all
clc
%++++++++++++++++++++++++++全局变量++++++++++++++++++++++++++++++
% seq_num 表示当前帧是第几帧
% count_dds_up 上变频处的控制字的累加
% count_dds_down 下变频处的控制字的累加(整整)
% count_dds_down_tmp 下变频处的控制字的累加(小数)
% dingshi 定时同步的定位
% m_syn 记录定时同步中的自相关平台
global seq_num
global count_dds_up
global count_dds_down
global count_dds_down_tmp
global dingshi
global m_syn
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% SNR_Pre 设定用于仿真的信噪比的初值
% interval_SNR 设定用于仿真的信噪比间隔
% frame_num 每一个信噪比下仿真的数据帧数
% err_int_final 用于计算每帧出现的误比特数
% --------------------------------------------- %
% 参数定义 %
% --------------------------------------------- %
NumLoop = 1000;
NumSubc = 128;
NumCP = 8;
SyncDelay = 0;
% 子载波数 128
% 位数/ 符号 2
% 符号数/ 载波 1000
% 训练符号数 0
% 循环前缀长度 8 (1/16)*T
% 调制方式 4-QAM
% 多径信道数 3
% IFFT Size 128
% 信道最大时延 2
% --------------------------------------------- %
% QAM MODULATION %
% --------------------------------------------- %
% Generate the random binary stream for transmit test
BitsTx = floor(rand(1,NumLoop*NumSubc)*2);
% Modulate (Generates QAM symbols)
% input: BitsTx(1,NumLoop*NumSubc); output: SymQAM(NumLoop,NumSubc/2)
SymQAMtmp = reshape(BitsTx,2,NumLoop*NumSubc/2).';
SymQAMtmptmp = bi2de(SymQAMtmp,2,'left-msb');
.
'. 实验四 OFDM调制解调仿真
一、实验目的
(1)了解OFDM调制解调的原理。
(2)学会用星座图分析系统性能。
二、实验内容
(1)编写MATLAB程序,实现OFDM系统调制解调。
(2)绘制各步骤图形并分析系统特性。
三、实验代码
1、主代码如下:
clear all;
close all;
N=input('请输入码元数');
SNR=input('请输入信噪比');
xx=randint(1,4*N); %原序列
figure(1),stem(xx,'.k'); %原序列图形
title('原序列');
B=0;
for m=1:4:4*N
A=xx(m)*8+xx(m+1)*4+xx(m+2)*2+xx(m+3);
B=B+1;
ee(B)=A;
end
figure(2),stem(ee,'.b');
title('化为0~15的码元');
yy=star(ee,N);
figure(3),plot(yy,'.r'); %映射后的星座图
title('映射后的星座图');
ff=ifft(yy,N); %傅里叶反变换
N1=floor(N*1/4);
N3=floor(N*3/4);
N5=floor(N*5/4);
figure(4),stem(ff,'.m');
title('傅里叶反变换后');
for j=1:N1 %加循环前缀
ss(j)=ff(N3+j);
end
for j=1:N %变成长度为N*5/4的序列
ss(N1+j)=ff(j);
end
figure(5),stem(ss,'.k'); %画出图形
title('加N/4循环前后缀');