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

📄 vblast_receiver.m

📁 用matlab对MIMO-OFDM通信系统的设计仿真的源代码
💻 M
字号:
function [BER]  = VBLAST_receiver(channelestime_est,YY_data,XX_data,antennatrans);
% ordered V-BLAST receiver
%
% Begin:  April 2007
% Last edited: Aug.8, 2007
%   Feng Wan    


enable_ordered=1;  % if 1, Make ordered MMSE receiver eanable

if(enable_ordered==1)  %%% Step1: sort the channel order

channel_vec_norm=zeros(antennatrans,1);
for n1=1:antennatrans
    channel_vec_norm(n1)=sum(abs(channelestime_est(:,n1)).^2);
end
        
[sort_channel_vec_norm,sort_index] = sort(channel_vec_norm);

Perturbation_matrix=zeros(antennatrans);
        
for n1=1:antennatrans
    index_value=sort_index(n1);
    Perturbation_matrix(index_value,n1)=1;
end


channel_ordered=channelestime_est*Perturbation_matrix;


else

    channel_ordered=channelestime_est;
    Perturbation_matrix=eye(antennatrans);
    
end  %%% Step1: sort the channel order


%%% Step2: get the V-BLAST receiver

[Q_matrix,R_matrix] = qr(channel_ordered);

YY_data_new=Q_matrix(:,1:antennatrans)'*YY_data;


ch_est_effective=Q_matrix(:,1:antennatrans)'*channel_ordered;


length_data=size(YY_data,2);

data_decoding_pre=zeros(antennatrans,length_data);

temp_data_row=YY_data_new(antennatrans,:)/ch_est_effective(antennatrans,antennatrans);

data_decoding_pre(antennatrans,:)=(sign(real(temp_data_row))+...
    sqrt(-1)*sign(imag(temp_data_row)))/sqrt(2);

for n1=antennatrans-1:-1:1
    pre_data_sum=zeros(1,length_data);
    for n2=n1+1:antennatrans
        pre_data_sum=pre_data_sum+ch_est_effective(n1,n2)*data_decoding_pre(n2,:);
    end
    temp_data_row=(YY_data_new(n1,:)-pre_data_sum)/ch_est_effective(n1,n1);
    data_decoding_pre(n1,:)=(sign(real(temp_data_row))+...
        sqrt(-1)*sign(imag(temp_data_row)))/sqrt(2);
end

data_decoding=Perturbation_matrix*data_decoding_pre;
bit_errors=0;
for n1=1:antennatrans
    bit_errors=bit_errors+length(find(XX_data(n1,:)~=data_decoding(n1,:)));
end
BER=2*bit_errors/(size(data_decoding_pre,1)*size(data_decoding_pre,2));

⌨️ 快捷键说明

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