clear all;
% close all;
clc;
rand('seed',0);
randn('seed',0);
SNR_array = 0:3:21;
N_FFT=64; %FFT点数
N_SYMBOL=2;
N_BPSC=2; %映射选择, 2:QPSK
RATE=1/3; %编码码率,
Multipath=6; %多径条数
Tx=2; %发射天线 二者相等
Rx=2; %接收天线
CyclicNum=16; %前缀长度
PACKET=1000; %包数
DecodeDepth=28; %译码深度
Interleave_Length=16; %交织深度
Code_Zero=6; %编码补零
%开关标记
BIT_RANDN = 1; % 0:全0序列;1:随机序列
CHANNEL_ESTI=0; %1时加SVD;0时不加
GAUSS_NOISE = 1; %1时加噪声,0不加
CODE=0; %1时编码;0时不加
INTERLEAVE=0; %1时交织;0时不加
CHANNEL_flag=2; %CHANNEL_flag= 1:AWGN;2:平衰落;3:多径
CODE_UNQUANT=0; %1:unquant方式译码,不做解映射,直接译码
EST_CHANNEL = 1; % 1:加训练序列,做信道估计
EST_MODE = 3; % 1:LMMSE;2:频域LS;3:时频精估计;4:角度域估计
CORRE_CHANNEL = 0.2; % 0:i.i.d; 0<rou<1: 相关信道
if CODE==0
N=N_BPSC*N_SYMBOL*N_FFT; %每根天线上每包中的码元个数(N_FFT)
else
if floor(N_BPSC*RATE)==N_FFT*RATE
N=(N_FFT*N_SYMBOL)*N_FFT*RATE-Code_Zero; %每根天线上每包中的码元个数(N_CBPS的整数倍)
else
N=floor(N_FFT*N_SYMBOL*N_FFT*RATE)-Code_Zero;
end
end
global STRU; %卷积码生成矩阵
global INTERLEAVE_TABLE; %交织映射表
global AddZero; %编码后补零个数
for SNR_i = 1:length(SNR_array)
SNR = SNR_array(SNR_i)
for Packet = 1:PACKET
X_bit=BitGenerate(N,Tx,CODE,Code_Zero, BIT_RANDN);
X_code=code(X_bit,RATE,CODE,N_FFT);
X_interleave=interleave(X_code,INTERLEAVE,Interleave_Length);
X_map=modulation(X_interleave,N_BPSC);
H=Channel(Multipath,Tx,Rx,CHANNEL_flag, CORRE_CHANNEL); %信道产生,信道已经归一化
if CHANNEL_ESTI==1
X_SVD=TxSVD(X_map,H,N_FFT);
else
X_SVD=X_map;
end
X_IFFT=IFFT(X_SVD,N_FFT);
X_Cycle=cycle(X_IFFT,CyclicNum); %加前缀后,即是发送数据(二维矩阵)
X_Pre = AddPreamble(X_Cycle, EST_CHANNEL, N_FFT);
Y=AddChannel(X_Pre,H,GAUSS_NOISE,SNR); %加信道(多径、白高斯噪声)
if EST_CHANNEL == 1
[Est_H, Yin, MSE_Ave] = ChanEsti(Y, EST_MODE, H);
else
Yin = Y;
MSE_Ave=0;
for i=1:Rx
for j=1:Tx
Est_H(i,j,:)=fft(H(i,j,:),N_FFT);
end
end
end
Y_Noncycle=noncycle(Yin,CyclicNum,N_FFT); %去拖尾,去前缀
Y_FFT=FFT(Y_Noncycle); %FFT后,再经过并串转换后
if CHANNEL_ESTI==1
X_Esti=SVD_Rx(Y_FFT,N_FFT,Tx,H,GAUSS_NOISE,SNR,CODE_UNQUANT); %Y乘以U'后,再进行MMSE检测,得到的是对调制后信号的估计
else
X_Esti=Lmmse(Y_FFT,N_FFT,Est_H,GAUSS_NOISE,SNR);
end
if CODE_UNQUANT==0
X_Demap=Demodulation(X_Esti,N_BPSC);
X_Deinterleave=deinterleave(X_Demap,INTERLEAVE,Interleave_Length,CODE_UNQUANT);
X_Decode=decode(X_Deinterleave,RATE,CODE,DecodeDepth,CODE_UNQUANT); %X_Decode与X_bit对应
else
X_Demap=X_Esti;
X_Deinterleave=deinterleave(X_Demap,INTERLEAVE,Interleave_Length,CODE_UNQUANT);
X_Decode=decode(X_Deinterleave,RATE,CODE,DecodeDepth,CODE_UNQUANT);
end
MSE(Packet) = MSE_Ave;
BER(Packet)=countBER(X_Decode,X_bit,N);
% BER_PerRx(Packet,:)=countBER_PerRx(X_Decode,X_bit);
end
FinalMSE(SNR_i) = sum(MSE)/PACKET;
BERaverage(SNR_i)=sum(BER)/PACKET;
end
没有合适的资源?快使用搜索试试~ 我知道了~
MIMO-OFDM系统matlab仿真,包括了接收端与发射端的分集,各种复用技术.zip
共39个文件
m:31个
asv:7个
mat:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 55 浏览量
2023-12-21
17:51:44
上传
评论
收藏 38KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a/2021a,内含运行结果,不会运行可私信 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
资源推荐
资源详情
资源评论
收起资源包目录
MIMO-OFDM系统matlab仿真,包括了接收端与发射端的分集,各种复用技术.zip (39个子文件)
MIMO-OFDM系统matlab仿真,包括了接收端与发射端的分集,各种复用技术
OFDM_MIMO0305
countBER_PerRx.m 287B
ifftofdm.m 477B
ChanEsti.m 1KB
interleave.m 721B
Demodulation.m 193B
BITMAP.m 2KB
IFFT.m 558B
countBER.m 317B
DeBitMap.m 1KB
X_IFFT.mat 923B
Channel.asv 986B
modulation.m 200B
Channel.m 968B
noncycle.m 523B
AddPreamble.m 393B
main.m 4KB
ChanEsti.asv 1KB
mmse_SVD.m 602B
Plot_Week1.asv 4KB
BitGenerate.asv 171B
Plot_Week1.m 4KB
main.asv 4KB
Lmmse.asv 747B
TxSVD.m 376B
fftofdm.m 332B
IdealChannelEsti.m 366B
BitGenerate.m 245B
FFT.m 304B
cycle.m 450B
AddChannel.m 865B
SVD_Rx.m 887B
Lmmse.m 892B
ps.m 273B
sp.m 873B
countPER.m 188B
decode.m 672B
IFFT.asv 605B
code.m 681B
deinterleave.m 1KB
共 39 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 3w+
- 资源: 7796
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Проекты и скрипты.zip
- 公开整理-中国各省市级信用体系建设匹配数据集(2010-2024).xls
- [한빛미디어]“与파스트다和파스썬”전체소스코드저장소입니다 .zip
- 汽车行业车载网络安全认证协议 UDS Service 29 解析与应用
- .raw 文件打开方式.pdf
- 760964449620474KivaIxaBeltAllRiderSeries_1.1_apkcombo.com.apk
- 开源的跨平台计算机视觉库opencv-4.10.0-windows
- qt-opensource-windows-x86-msvc2013-5.6.3.rar
- 基于 crossbeam-channel + JNI 实现 Java 与 Rust 的消息传递
- 酒店管理客房管理系统源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功