MIMO通信系统分层空时码

  • JISOOE
    了解作者
  • matlab
    开发工具
  • 1.4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2022-06-06 08:29
    上传日期
MIMO通信系统分层空时码通过MMSE算法进行仿真
Untitled2MMSE.zip
  • Untitled2MMSE.m
    4.6KB
内容介绍
clear all;close all;clc; tran_ant = 4; % 发射天线数 recv_ant = 4; %接收天线数 frame_len = 1; % 每帧的长度 frame_num = 3; % 仿真的总帧数 SNR = 0:2:20; % 信噪比 modu_order = 4; % QPSK 调制方式 bit_stream = randi(frame_len*frame_num,tran_ant,modu_order); % 信源数据 modu_sym = pskmod(bit_stream,modu_order,pi/4); % QPSK调制 for indx = 1:length(SNR) fprintf('正在仿真的信噪比为%d dB\n',SNR(indx)); no_intf_canl = []; non_ideal_intf_canl = []; ideal_intf_canl = []; for indx1 = 1:frame_num chan_coef = randn(tran_ant,recv_ant)+1j*randn(tran_ant,recv_ant); % Rayleigh衰落信道 chan_coef = chan_coef./sqrt(2); % 信道系数归一化 sigma1 = sqrt(1/(10.^(SNR(indx)/10))); %每根接收天线的高斯白噪声标准差 noise = sigma1*(randn(frame_len,recv_ant)+1j*randn(frame_len,recv_ant)); % 每根接收天线的高斯白噪声 w = chan_coef'*inv(chan_coef*chan_coef'+2*sigma1.^2*diag(ones(1,tran_ant))); % w的最优解 y = modu_sym((indx1-1)*frame_len+1:indx1*frame_len,:)*chan_coef+noise; % 信号通过信道 yy = y; y1 = y*w; % 无干扰消除时的MMSE检测 temp1 = pskdemod(y1,modu_order,pi/4); % 无干扰消除时的解调 no_intf_canl = [no_intf_canl;temp1]; %无干扰消除时的解调结果 temp2(:,tran_ant) = temp1(:,tran_ant); y = y-pskmod(temp2(:,tran_ant),4,pi/4)*chan_coef(tran_ant,:); %非理想干扰消除时,接收信号矩阵的更新 temp3(:,tran_ant) = temp1(:,tran_ant); yy = yy-modu_sym((indx1-1)*frame_len+1:indx1*frame_len,tran_ant)*chan_coef(tran_ant,:); % 理想干扰消除时,接收信号矩阵的更新 chan_coef = chan_coef(1:tran_ant-1,:); % 信道矩阵更新 for ii = tran_ant-1:-1:1 w = chan_coef'*inv(chan_coef*chan_coef'++2*sigma1.^2*diag(ones(1,ii))); %信道矩阵更新后的w y1 = y*w; % 非理想干扰消除的检测与调制 temp2(:,ii) = pskdemod(y1(:,ii),modu_order,pi/4); y = y-pskmod(temp2(:,ii),4,pi/4)*chan_coef(ii,:); yy1 = yy*w; % 理想干扰消除的检测与调制 temp3(:,ii) = pskdemod(yy1(:,ii),modu_order,pi/4); yy = yy-modu_sym((indx1-1)*frame_len+1:indx1*frame_len,ii)*chan_coef(ii,:); chan_coef = chan_coef(1:ii-1,:); end non_ideal_intf_canl = [non_ideal_intf_canl;temp2]; % 非理想干扰消除的解调结果 ideal_intf_canl = [ideal_intf_canl;temp3]; % 理想干扰消除的解调结果 end [temp,ber1(indx)] = biterr(bit_stream,no_intf_canl,log2(modu_order)); %无干扰消除时的系统误码率 [temp,ber2(indx)] = biterr(bit_stream,non_ideal_intf_canl,log2(modu_order)); %非理想干扰消除时系统总的误码率 [temp,ber3(indx)] = biterr(bit_stream,ideal_intf_canl,log2(modu_order)); %理想干扰消除时系统总的误码率 [temp,ber24(indx)] = biterr(bit_stream(:,1),non_ideal_intf_canl(:,1),log2(modu_order)); % ·非理想干扰消除时第四根发送天线的误码率 [temp,ber23(indx)] = biterr(bit_stream(:,2),non_ideal_intf_canl(:,2),log2(modu_order)); % ·非理想干扰消除时第三根发送天线的误码率 [temp,ber22(indx)] = biterr(bit_stream(:,3),non_ideal_intf_canl(:,3),log2(modu_order)); % ·非理想干扰消除时第二根发送天线的误码率 [temp,ber21(indx)] = biterr(bit_stream(:,4),non_ideal_intf_canl(:,4),log2(modu_order)); % ·非理想干扰消除时第一根发送天线的误码率 [temp,ber34(indx)] = biterr(bit_stream(:,1),ideal_intf_canl(:,1),log2(modu_order)); %理想干扰消除时第四根发送天线的误码率 [temp,ber33(indx)] = biterr(bit_stream(:,2),ideal_intf_canl(:,2),log2(modu_order)); %理想干扰消除时第三根发送天线的误码率 [temp,ber32(indx)] = biterr(bit_stream(:,3),ideal_intf_canl(:,3),log2(modu_order)); %理想干扰消除时第二根发送天线的误码率 [temp,ber31(indx)] = biterr(bit_stream(:,4),ideal_intf_canl(:,4),log2(modu_order)); %理想干扰消除时第一根发送天线的误码率 end figure(1) semilogy(SNR,ber1,'-rs',SNR,ber2,'-bo',SNR,ber3,'-gd');grid on; legend('无干扰消除','非理想干扰消除','理想干扰消除') xlabel('信噪比(dB)') ylabel('误比特率') title('基于QPSK调制的四发四收MMSE检测算法性能') figure(2) semilogy(SNR,ber34,'-r*',SNR,ber33,'-bo',SNR,ber32,'-gd',SNR,ber31,'-k^');grid on; legend('第1层','第2层','第3层','第4层') xlabel('信噪比(dB)') ylabel('误比特率') axis([min(SNR)-0.01, max(SNR) + 0.01, 10^(-4),1]) title('基于QPSK调制的四发四收理想干扰消除时MMSE检测算法各层性能') figure(3) semilogy(SNR,ber24,'-r*',SNR,ber23,'-bo',SNR,ber22,'-gd',SNR,ber21,'-k^');grid on; legend('第1层','第2层','第3层','第4层') xlabel('信噪比(dB)') ylabel('误比特率') title('基于QPSK调制的四发四收非理想干扰消除时MMSE检测算法各层性能')
评论
    相关推荐
    • mimo_ofdm.zip
      MIMO-OFDM 含pdf,写的很详细,通信相关可以看看
    • MIMO
      MIMO雷达可以跑的,实际应用的数据资源
    • mimo-ofdm
      里面用ofdm技术和MIMO进行模型的简单搭建,适合初学者。
    • MIMO系统.zip
      这是一个MIMO系统的整体仿真,你们可以看看
    • MIMO课程课件
      MIMO课程课件,适用于无线通信mimo初学者
    • MIMO+DOA
      A Higher-Order Propagator Method for 2D-DOA Estimation in Massive MIMO Systems
    • mimo仿真
      mimo仿真代码,超级使用的代码,欢迎下载
    • MIMO
      这是一个关于通信原理MIMO的matlab代码。
    • mimo_channel.zip
      里面包含了MIMO的信道估计代码,可以通过matlab完整实现。
    • libiconv-1.1.tar.gz
      字符集转换程序