clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
Tx_n = 4; %发送天线的数目
Rx_n = 4; %接收天线的数目
N_DLRB = 5; %资源块个数
N_OFDM = 7; %OFDM符号个数
a_length = 6720; %比特流的长度为3360
snr_dB=-5:2:15; %信噪比的取值情况
for i=1:length (snr_dB)
snr(i)=10^(snr_dB(i)/10);
blast_error_bit=0;
mlblast_error_bit=0;
mlblast1_error_bit=0;
mlblast2_error_bit=0;
for numm=1:2 %每一个SNR值计算多次,以增大数据量
a=rand(1,a_length);
for L=1:a_length
if a(L)>0.5
a(L)=1;
else a(L)=0;
end
end %产生比特流
a_mod=QAM(a_length,a); %进行调制,采用16QAM的方式
a_=reshape(a_mod,Tx_n,length(a_mod)/Tx_n); %映射至四个天线端口
m=1; %信号检测后输出信号的序列号,在这里对其进行初始化
for ll=1:N_OFDM
for kk=N_DLRB*12:-1:1
a1(kk,ll)=a_(1,(ll-1)*N_DLRB*12+abs(kk-N_DLRB*12)+1);
a2(kk,ll)=a_(2,(ll-1)*N_DLRB*12+abs(kk-N_DLRB*12)+1);
a3(kk,ll)=a_(3,(ll-1)*N_DLRB*12+abs(kk-N_DLRB*12)+1);
a4(kk,ll)=a_(4,(ll-1)*N_DLRB*12+abs(kk-N_DLRB*12)+1); %进行资源映射
a_all=[a1(kk,ll),a2(kk,ll),a3(kk,ll),a4(kk,ll)].'; %取出相同时频位置上的资源粒子,编为一组,进行信号检测
sigma = 1/sqrt(2*Rx_n*snr(i)); %噪声的标准差,假设信号的能量为1
awgn_noise = sigma/sqrt(2)*(randn(Rx_n,1)+j*randn(Rx_n,1)); %产生高斯白噪声
H=(randn(Rx_n,Tx_n)+j*randn(Rx_n,Tx_n))/sqrt(2); %信道冲击响应矩阵
r=H*a_all+awgn_noise ; %相同时频位置上接收到的数据
%基于ZF的排序V-BLAST算法
H=(randn(Rx_n,Tx_n)+j*randn(Rx_n,Tx_n))/sqrt(2);
r=H*a_all+awgn_noise; %相同时频位置上接收到的数据
mm=1:Tx_n;
for ii=1:Tx_n
G3=pinv(H); %滤波矩阵
G_=sum(abs(G3).^2,2);
[m_,ki]=min(G_); %找出功率最小的一行,该行的可靠性最高
Z=G3(ki,:)*r;
dec5(mm(ki),m)=quan_16QAM_1(Z); %量化判决过程
r=r-H(:,ki)*dec5(mm(ki),m);
H(:,ki)=[];
mm(ki)=[];
end
%基于ZF的有所保留的排序V-BLAST算法(1层,4个取值)
mlblast_16=mlblast_qam_1(m,a_all,awgn_noise,Rx_n,Tx_n);
dec6(:,m)=mlblast_16;
%基于ZF的有所保留的排序V-BLAST算法(1层,2个取值)
mlblast1_16=mlblast_qam_2(m,a_all,awgn_noise,Rx_n,Tx_n);
dec7(:,m)=mlblast1_16;
%基于ZF的有所保留的排序V-BLAST算法(1层,6个取值)
mlblast2_16=mlblast_qam_3(m,a_all,awgn_noise,Rx_n,Tx_n);
dec8(:,m)=mlblast2_16;
m=m+1;
end
end
dec5_=reshape(dec5,1,length(a_mod));
dec_blast_zf2=demod_QAM(dec5_); %解调过程,对应于QPSK
dec6__=reshape(dec6,1,length(a_mod));
dec_mlblast=demod_QAM(dec6__); %解调过程,对应于QPSK
dec7__=reshape(dec7,1,length(a_mod));
dec_mlblast1=demod_QAM(dec7__); %解调过程,对应于QPSK
dec8__=reshape(dec8,1,length(a_mod));
dec_mlblast2=demod_QAM(dec8__); %解调过程,对应于QPSK
err_num_blast_zf2=error_count(a,dec_blast_zf2); %统计基于MMSE的V-BLAST算法下错误比特个数
err_num_mlblast=error_count(a,dec_mlblast); %统计ZF算法下错误比特个数
err_num_mlblast1=error_count(a,dec_mlblast1); %统计ZF算法下错误比特个数
err_num_mlblast2=error_count(a,dec_mlblast2); %统计ZF算法下错误比特个数
blast_error_bit=blast_error_bit+err_num_blast_zf2;
mlblast_error_bit=mlblast_error_bit+err_num_mlblast;
mlblast1_error_bit=mlblast1_error_bit+err_num_mlblast1;
mlblast2_error_bit=mlblast2_error_bit+err_num_mlblast2;
end
err_ber_blast_zf2(i)=blast_error_bit/(length(a)*numm) %统计BLAST算法下错误比特率
err_ber_mlblast(i)=mlblast_error_bit/(length(a)*numm)
err_ber_mlblast1(i)=mlblast1_error_bit/(length(a)*numm)
err_ber_mlblast2(i)=mlblast2_error_bit/(length(a)*numm)
end
semilogy (snr_dB,err_ber_blast_zf2,'r-x')
hold on
semilogy (snr_dB,err_ber_mlblast,'b-*')
semilogy (snr_dB,err_ber_mlblast1,'r:+')
semilogy (snr_dB,err_ber_mlblast2,'g-o')
grid on;
axis([-5,15,0.0001,1]);
legend('vblast','ml-blast');
xlabel('Eb/No in dB');
ylabel('BER');
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.版本:matlab2021a,包含仿真操作录像,操作录像使用windows media player播放。 2.领域:V-BLAST 3.内容:基于V-BLAST的ML检测算法MATLAB仿真。 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
基于V-BLAST的ML检测算法MATLAB仿真.rar (25个子文件)
Runme1.m 4KB
untitled.jpg 36KB
Runme2.m 4KB
操作录像0040.avi 46.19MB
func
mlblast_qam_3.m 3KB
mlblast_qam_2.m 3KB
mlblast1_qpsk.m 3KB
demod_QAM.m 2KB
mlblast_qam.m 4KB
modulation.m 1KB
mod_.m 2KB
mlblast_qam1.m 4KB
quan_qpsk.m 393B
quan_16QAM_1.m 1KB
quan_16QAM.m 733B
quan.m 283B
error_count.m 180B
QAM_2YU2_quan.m 701B
mlblast_qpsk.m 2KB
QAM.m 3KB
demod_qpsk.m 402B
QAM_16.m 3KB
mlblast_qam_1.m 2KB
demodulation.m 2KB
mod_qpsk.m 2KB
共 25 条
- 1
资源评论
- weixin_519287192024-03-29这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
- 是个好同志2022-05-30用户下载后在一定时间内未进行评价,系统默认好评。
- askwk2022-07-05资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
fpga和matlab
- 粉丝: 16w+
- 资源: 2580
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功