📄 blast_nerr_rx1.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 + -