📄 dealamouti.m
字号:
%Alamouti decoder for MIMO-OFDM System
%Author: Hoang Nguyen
%*************************************************
function Dec_data = DeAlamouti(R_data,h_data,dh,M,numcarr,Nr,Nt,Num_Path)
%Cac thong so cua ham *****************************
%Dec_data: data after decoding with Alamouti
%R_data: data for decoder
%h_data: tham so kenh truyen
%dh: nhom tin hieu dieu che QAM
%M: kieu dieu che M-ary QAM
%numcarr: so song mang mang du lieu trong 1 ky tu OFDM
%Nr: the number of receive antenna
%Nt: the number of transmit antenna
%Num_Path: so da duong
%**************************************************
%tao ma tran duong cheo kenh F(LNum_RxAnt)
for i=1:numcarr
for l=1:Num_Path
F(i,l)=exp(-j*2*pi*(l-1)*(i-1)/numcarr);
end
end
I_matrix=eye(Nr,Nr);
Fl=kron(I_matrix,F);
%Fl_DeAlamouti=Fl
%Ma tran kenh truyen trong mien tan so
H=Fl*h_data;
R_data=reshape(R_data,numcarr,Nr);
%Tinh gia tri xap xi cua R, X_est
for k=1:numcarr
H_k_vector=[];
for RxAnt=1:Nr
H_k_row=[];
for TxAnt=1:Nt
H_k=H((RxAnt-1)*numcarr+k,TxAnt);
H_k_row=[H_k_row,H_k];
clear H_k;
end
H_k_vector=[H_k_vector;H_k_row];
clear H_k_row;
end
X_est=H_k_vector'*R_data(k,:)';
%tin_hieu_xap_xi_X_est=X_est
%ML algorithm for detecting QAM Symbols
X_dec_vector=[];
for RxAnt=1:Nr
temp=X_est(RxAnt);
d_vector=[];
for QAM_Sym=1:M
d=abs(temp-dh(QAM_Sym))^2;
d_vector=[d_vector,d];
clear d;
end
[val pos]=min(d_vector);
X_dec =dh(pos);
X_dec_vector=[X_dec_vector;X_dec];
clear val pos X_dec d_vector temp;
end
clear X_est H_k_vector;
end
Dec_data=X_dec_vector;
clear X_dec_vector;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -