📄 sftest.m
字号:
function STBC_OFDM_CSI()
%clc;
Nt=2;
Nr=1;
%---------------------------
% Data for STBC demodulation
%---------------------------
data_for_destbc = [];
data_qpsk = [1+j -1+j -1-j 1-j]/sqrt(2);
for k=1:4
for m=1:4
data_qpsk_block = [data_qpsk(k) data_qpsk(m)];
data_for_destbc = [data_for_destbc;data_qpsk_block];
end
end
framebits=64;
for snr=20:20
BitFrame=(2*round(rand(Nt,framebits/2))-1)/sqrt(Nt);
QpskData=BitFrame(1,:)+j*BitFrame(2,:);
sig = sqrt(0.5/(10^(snr/10))); %Varianza del rumore
n = sig * (randn(1,2,framebits/2) + j*randn(1,2,framebits/2)); %Rumore
H=rey(2,2);
for k=1:2:framebits/2
X=[QpskData(k) -conj(QpskData(k+1)); QpskData(k+1) conj(QpskData(k))]; %Coded data
R1=H(1,:)*X(:,1) + n(1,1,k);
R2=H(2,:)*X(:,2) + n(1,2,k);
R2conj = conj(R2);
Rconj=[R1;R2conj];
H_n2l = [H(1,1) H(1,2);conj(H(2,2)) -conj(H(2,1))];
minNorm = 10000;
num_min = 0;
for m=1:16
dec_norm = norm(Rconj-H_n2l*data_for_destbc(m,:)')^2;
if dec_norm<minNorm
minNorm = dec_norm;
num_min = m;
end
end
deStbc = data_for_destbc(num_min,:)';
pause
if deStbc==X(:,1)
disp('ok');
else
disp('No');
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -