资源简介
多径信道下 简单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实现
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论