资源简介
多径信道下 简单OFDM matlab仿真 移动通信课程作业,瑞利3径信道
代码片段和文件信息
clear all;
close all;
clc;
%---------------- 参数设置部分----------------%
Nsp=52; %系统子载波数(不包括直流载波)
Nfft=64; % FFT 长度
Ncp=16; % 循环前缀长度
Ns=Nfft+Ncp; % 1个完整OFDM符号长度
noc=53; % 包含直流载波的总的子载波数
Nd=6; % 每帧包含的OFDM符号数(不包括训练符号)
M1=4; % QPSK调制
sr=250000; % OFDM符号速率
SNR=20; % 信噪比
ts=1/sr/Ns; % OFDM符号抽样时间间隔
t=0:ts:(Ns*(Nd+1)-1)*ts; % 抽样时刻
fd=100; % 最大多普勒频移
%----------------三径信道的参数----------------%
h=rayleigh(fdt); % 生成单径Rayleigh衰落信道
h1=sqrt(1/2)*h; % 第一径的功率是总功率的1/2
h2=sqrt(1/3)*h; % 第二径的功率是总功率的1/3
h3=sqrt(1/6)*h; % 第三径的功率是总功率的1/6
h2=[zeros(14) h2(1:end-4)]; % 第二径延时4个点
h3=[zeros(18) h2(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); % 1X64全零矩阵
Preamble1(2:27)=Preamble(27:end); % 交织
Preamble1(39:end)=Preamble(1:26);
preamble1=ifft(Preamble1); % 训练符号时域数据
preamble1=[preamble1(Nfft-Ncp+1:end) preamble1]; % 加入16个点的循环前缀
%-------------------发射机部分-------------------%
msg1=randsrc(NspNd[0:M1-1]); % QPSK信息数据(52X6的矩阵)
data1=qammod(msg1M1)/sqrt(2); % QPSK调制并归一化
data2=zeros(NfftNd); % 根据FFT要求,对数据重排(64X6的矩阵)
data2(2:27:)=data1(27:end:);
data2(39:end:)=data1(1:26:);
data2=ifft(data2); % IFFT变换
data2=[data2(Nfft-Ncp+1:end:);data2]; % 加入循环前缀
spow1=norm(data2‘fro‘).^2/(Nsp*Nd); % 计算符号能量
%下面进行的是加入导频的工作,加入导频后,每一帧含有7个符号,每个符号中由于
%加入了循环前缀,因此含有80个点
data3=zeros(Ns(Nd+1)); % 加入训练符号(80X7的矩阵)
data3(:1)=preamble1.‘; % 在每一帧的开头加入导频序列
data3(:2:(Nd+1))=data2(:1:Nd);
% 在导频序列之后加入6个符号构成一帧
data3=reshape(data31Ns*(Nd+1)); % 并串变换(1X560的矩阵)
data31=zeros(1length(data3));
data32=zeros(1length(data3));
data31(5:end)=data3(1:end-4); % 第二径接收到的符号
data32(9:end)=data3(1:end-8); % 第三径接收到的符号
sigma1=sqrt(1/2*spow1/log2(M1)*10.^(-SNR/10)); % 根据SNR计算噪声标准差
dd1=data3(1:Ns*(Nd+1)); %取出第一径每一帧的数据
dd2=data31(1:Ns*(Nd+1));%取出第二径每一帧的数据
dd3=data32(1:Ns*(Nd+1));%取出第三径每一帧的数据
hh1=h1(1:Ns*(Nd+1)); % 当前帧的3径信道参数
hh2=h2(1:Ns*(Nd+1));
hh3=h3(1:Ns*(Nd+1));
% 信号通过3径衰落信道,并加入高斯白噪声
r1=hh1.*dd1+hh2.*dd2+hh3.*dd3+sigma1*(randn(1length(dd1))+j*randn(1length(dd1)));
%-------------------接收机部分-------------------%
r1=reshape(r1NsNd+1); % 串并变换(80X7的矩阵)
r1=r1(Ncp+1:end:); % 移除循环前缀
R1=fft(r1); % fft运算
R1=[R1(39:end:);R1(2:27:)]; % 数据重排(解交织)
HH1=(Preamble.‘)./R1(:1);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-15 15:34 代码\
文件 705654 2018-06-15 15:34 代码\1.bmp
文件 705654 2018-06-15 15:34 代码\2.bmp
文件 705654 2018-06-15 15:34 代码\3.bmp
文件 4461 2018-06-15 15:33 代码\OFDM.m
文件 1009 2017-05-11 10:07 代码\rayleigh.m
文件 91 2018-06-15 15:36 代码\说明.txt
- 上一篇:FastSLAMmatlab仿真算法
- 下一篇:DFS优先算法matlab实现
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论