⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blast_nerr_rx1.m

📁 用MATLAB编写的MIMO系统中的BLAST系统的接收程序
💻 M
字号:
function[y]=blast_Nerr_rx1(com_para,mod_b,r,HW,dec_order)
%%%  无错误传播  固定调制  

%%%%%%%%%% 修改纪录
%2005/01/25        % rx_modulate_3 变为rx_modulate_4, 可以调制4096QAM
%2005/07/08       在blast_ant_select_vblast_rx基础上改为有错误传播
%2006/03/22       在blast_ant_select_vblast_rx2基础上去掉天线选择
%2006/05/30        %毕业后整理完善 

%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Mt=com_para.Mt;             %发射天线数
Mr=com_para.Mr;            %接收天线数
rt=com_para.rt;            %发射比特总数
%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

temp_HW=HW;
temp_r=r;
y=zeros(rt,1);
temp_y=zeros(rt,1);

%blast 检测算法
if mod(rt,Mt)==0 ,   % rt 是M整数倍
    for m=1:Mt,
        dec_numb=dec_order(m);
        inv_temp_HW=pinv(temp_HW);
        HWr=sqrt(Mt)*inv_temp_HW(dec_numb,:)*temp_r;
  
        % 解调信号 &&  重构信号
        modu_size = 2^(rt/Mt);
        temp_y  = rx_demodulate_4(HWr,modu_size);
        %rebulid=tx_modulate_2(temp_y,modu_size);       %有错误传播
        rebulid=mod_b(dec_numb);                        %无错误传播  
        
        %减去 重构信号  
        temp_r=temp_r - 1/sqrt(Mt) *HW(:,dec_numb)*rebulid;
        temp_HW(:,dec_numb)=zeros(Mr,1);
        y( (dec_numb-1)*(rt/Mt) + (1:(rt/Mt)) )=temp_y;
    end;  
else    % rt 不是 M整数倍
    disp('rt 不是 Mt整数倍,请重新设置');
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -