资源简介
这是帮别人做毕业设计的代码,主要是验证OFDM是如何抗多径干扰的,代码采用了802.11a标准,采用了两种调制方式,QPSK,16QAM做的仿真,是可以运行的,最终有运行figure,
代码片段和文件信息
clear all
%%%%%%%%%%%%% 参数设置部分 %%%%%%%%%%%%%%%%%
Nsp=52; %系统子载波数(不包括直流载波)
Nfft=64; % FFT 长度
Ncp=16; % 循环前缀长度
Ns=Nfft+Ncp; % 1个完整OFDM符号长度
noc=53; % 包含直流载波的总的子载波数
Nd=6; % 每帧包含的OFDM符号数(不包括训练符号)
M1=4; % QPSK调制
M2=16; % 16-QAM调制
sr=250000; % OFDM符号速率
EbNo=0:2:30; % 归一化信噪比
Nfrm=100; % 每种信噪比下的仿真帧数
ts=1/sr/Ns; % OFDM符号抽样时间间隔 产生一个点所需要的时间
t=0:ts:(Ns*(Nd+1)*Nfrm-1)*ts; % 抽样时刻
fd=100; % 最大多普勒频移
h=rayleigh(fdt); % 生成单径Rayleigh衰落信道
h1=sqrt(2/3)*h;
h2=sqrt(1/3)*rayleigh(fdt);
h2=[zeros(14) h2(1:end-4)];% 延时4个采样周期
h3=sqrt(3/4)*rayleigh(fdt);%加了第三径
h3=[zeros(18) h3(1:end-8)];% 延时8个采样周期
%训练符号频域数据采用802.11a中的长训练符号数据
Preamble=[1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 ...
1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1];
Preamble1=zeros(1Nfft);
Preamble1(2:27)=Preamble(27:end); % 前导重排后的数据 后26个拿到前面
Preamble1(39:end)=Preamble(1:26);
preamble1=ifft(Preamble1); % 训练符号时域数据
preamble1=[preamble1(Nfft-Ncp+1:end) preamble1]; % 加入循环前缀
%%%%%%%%%%%%%%%%%%%%% 仿真循环 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for ii=1:length(EbNo)
%**************************发射机部分 *****************************
msg1=randsrc(NspNd*Nfrm[0:M1-1]); % QPSK信息数据 /randsrc 产生均布数组
msg2=randsrc(NspNd*Nfrm[0:M2-1]); % 16-QAM信息数据
data1=pskmod(msg1M1pi/4); % QPSK调制
data2=qammod(msg2M2)/sqrt(10); % 16-QAM调制并归一化
data3=zeros(NfftNd*Nfrm); % 根据FFT要求,对数据重排
data4=zeros(NfftNd*Nfrm);
data3(2:27:)=data1(27:end:);
data3(39:end:)=data1(1:26:);
data4(2:27:)=data2(27:end:);
data4(39:end:)=data2(1:26:);
% clear data1 data2; % 清除不需要的临时变量
data3=ifft(data3); % IFFT变换
data4=ifft(data4);
data3=[data3(Nfft-Ncp+1:end:);data3]; % 加入循环前缀
data4=[data4(Nfft-Ncp+1:end:);data4];
% data3=[zeros(16600);data3]; % 不加循环前缀
% data4=[zeros(16600);data4];
spow1=norm(data3‘fro‘).^2/(Nsp*Nd*Nfrm); % 计算符号能量
spow2=norm(data4‘fro‘).^2/(Nsp*Nd*Nfrm);
data5=zeros(Ns(Nd+1)*Nfrm); % 加入训练符号
data6=data5; %data6存第二路数据
%data7=data5; %data7存第三路数据
for indx=1:Nfrm%把训练符号加入到数据前面,组成训练和符号的结合体,一共100个
data5(:(indx-1)*(Nd+1)+1)=preamble1.‘;
data5(:(indx-1)*(Nd+1)+2:indx*(Nd+1))=data3(:(indx-1)*Nd+1:indx*Nd);%data3是QPSK经ifft后的数据
data6(:(indx-1)*(Nd+1)+1)=preamble1.‘;
data6(:(indx-1)*(Nd+1)+2:indx*(Nd+1))=data4(:(indx-1)*Nd+1:indx*Nd);%data4是16QAM经ifft后的数据
% data7(:(indx-1)*(Nd+1)+1)=preamble1.‘;
% data7(:(indx-1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9639 2013-04-13 17:08 新建文件夹\ofdmcode.m
文件 1156 2010-07-31 14:01 新建文件夹\rayleigh.m
目录 0 2013-05-05 20:41 新建文件夹\
相关资源
- OFDM系统中定时和频偏估计的设计与实
- ofdm tutorial国外大牛写的OFDM技术入门
- Alamouti OFDM STBC-2X1
- MIMO-OFDM仿真程序
- ofdm系统仿真完整程序很详细的
- ofdm系统仿真程序
- OFDM时空编码和MIMO的结合在瑞丽频率选
- mimo-ofdm系统
- OFDM中的自适应调制
- OFDM频谱载波图
- OFDM调制中加循环前缀CP
- A New PTS OFDM Scheme with Low Complexity for
- OFDM频偏估计算法的仿真
- OFDM的频偏估计算法及其仿真结果
- OFDM系统中的定时和频率同步
- OFDM系统简化的lmmse信道估计算法
- MIMO-OFDM的源代码
- 通信系统的完整OFDM代码
- OFDM信道估计:经典的LS和MMSE估计,以
- 完整的QPSK-MSK-QAM-OFDM调制解调m程序.
- 详细注释的MIMO-OFDM信道估计
- ls信道估计算法
- OFDM及信道估计的程序
- LS & MMSE channel estimators for OFDM
- OFDM注水算法仿真实现,有吞吐量
- OFDM的参数设置
- ofdma 系统中的各种资源分配算法仿真
- 论文研究-AWGN信道中一种改进OFDM系统
- OFDM完整仿真过程与教程.zip
- 单载波频域均衡SC-FDE仿真
评论
共有 条评论