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

📄 vblast_decoder_mmse_ic.m

📁 关于分层空时码的matlab程序
💻 M
字号:
function decoder_output_demodu = vblast_decoder_MMSE(H,decoder_input,index,SNR)
% H : the channel matrix 
% the receiver know the channel perfectly
% decoder_input :signal passed channel with noise polluted
% index : the modulation index 1,2,4,6
%-----------------------------------------------------
[Rx_n,Tx_n] = size(H);
if Rx_n < Tx_n
	disp_str = ['error!!!---the Rx_n must no less than Tx_n'];
	disp(disp_str);
	return;
end
frame_length = length(decoder_input);
decoder_output = zeros(Tx_n,frame_length);
y = zeros(Tx_n,frame_length);
if SNR>50
	delta2 = 0;%noise free
else
	delta2 = 1/(10^(SNR/10));
end
%In =i_matrix(Tx_n);
r = decoder_input;
%ord = 1: Tx_n;
%tic;
for t = Tx_n:-1:1
	%get the linear combination coefficients matrix
	In = eye(t);
	WH = pinv(H'*H +delta2*In)*H';%
	y(t,:) = WH(t,:)*r;
	%decoder_output(line_num,:) = y(line_num,:);
	decoder_output(t,:) = modulation(demodulation(y(t,:), index),index);
	r = r - H(:,t)*decoder_output(t,:);
	H(:,t) = [];
end
%toc;
for t = 1:Tx_n
	decoder_output_demodu(t,:) = demodulation(decoder_output(t,:), index);
end

⌨️ 快捷键说明

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