📄 alamouti.m
字号:
clear all;
SNR=0:2:30;
snr=10.^(SNR/10);
sigma=sqrt(1./snr);%噪声与信号的幅度比值
K=200000;%未调制信号长度,信号越长,曲线越精确
data=randint(1,K);
%%%%%%%%%%%%%%%%%%%%设置参数%%%%%%%%%%%%%%%%%%%%%%%%
nt=2;%发射天线数
nr=2;%接收天线数
n=4; %调制方式nPSK
%%%%%%%%%%%%%%%%%%%%NPSK信号调制%%%%%%%%%%%%%%%%%%%%
npskdata=npsk(n,data);%调用调制方式子函数
x=npskdata; %调制后信号
%%%%%%%%%%%%%%%%%%%Alamouti%%%%%%%%%%%%%%%%%%%%%%%%
for k=1:length(SNR)
error_symbol=0;%对每一个信噪比下的误符号率清零
for i=1:length(npskdata)/2
x1=x(2*i-1);
x2=x(2*i); %对信源进行空时操作,每两个数据符号一起
X=[x1 -x2';x2 x1'];%空时发射信号矩阵
H=rey(nt,nr); %调用信道子函数
noise=sigma(k).*rey(nt,nr);
R=sqrt(1/2).*H*X+noise;%接收信号矩阵
y1=0;y2=0;
for i=1:nr
y1=H(i,1)'*R(i,1)+H(i,2)*R(i,2)'+y1;
y2=H(i,2)'*R(i,1)-H(i,1)*R(i,2)'+y2;
end
%进行最大似然检测
DEC_X=judge(n,y1,y2);
%统计符号错误的总数
if DEC_X(1)~=x1
error_symbol=error_symbol+1;
end
if DEC_X(2)~=x2
error_symbol=error_symbol+1;
end
end
SER(k)=error_symbol/length(npskdata);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%画图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
semilogy(SNR,SER,'b*-');
grid on
legend('Alamouti QPSK(2TX 2RX)')
title('QPSK调制下的Alamouti码方案在慢瑞利衰减信道上的误符号率性能')
xlabel('信噪比/dB');
ylabel('误符号率');
hold on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -