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

📄 stbc4c.m

📁 4发射天线1接收天线BPSK调制下的正交空时编码
💻 M
字号:
clear all;
SNR=0:1:30;
snr=10.^(SNR/10);
sigma=sqrt(2./snr);%噪声与信号的幅度比值
K=400000;           %未调制信号长度,信号越长,曲线越精确
data=randint(1,K);
%%%%%%%%%%%%%%%%%%%%设置参数%%%%%%%%%%%%%%%%%%%%%%%%
nt=4;%发射天线数
nr=1;%接收天线数
n=4; %调制方式QPSK

%%%%%%%%%%%%%%%%%%%%QPSK信号调制%%%%%%%%%%%%%%%%%%%%

npskdata=npsk(n,data);%调用调制方式子函数
x=npskdata;           %调制后信号

%%%%%%%%%%%%%%%%%%%Alamouti%%%%%%%%%%%%%%%%%%%%%%%%
for k=1:length(SNR)
    error_symbol=0;%对每一个信噪比下的误符号率清零
	for i=1:length(npskdata)/4
    	x1=x(4*i-3);
        x2=x(4*i-2);         %对信源进行空时操作,每两个数据符号一起
     	x3=x(4*i-1);
        x4=x(4*i);         %对信源进行空时操作,每两个数据符号一起
        X=[x1 -x2 -x3 -x4 x1' -x2' -x3' -x4'
           x2  x1  x4 -x3 x2'  x1'  x4' -x3'
           x3 -x4  x1  x2 x3' -x4'  x1'  x2'
           x4  x3 -x2  x1 x4'  x3' -x2'  x1'];%空时发射信号矩阵
		h=rey(nt,nr);      %调用信道子函数
		noise=sigma(k).*rey(8,nr);
        R=sqrt(1/2).*h*X+noise;%接收信号矩阵
        
%         y=zeros(1,nt);
%         y(1)= r(1,1)*H(1,1)'+r(1,2)*H(1,2)'+r(1,3)*H(1,3)'+r(1,4)*H(1,4)'+r(1,5)'*H(1,1)+r(1,6)'*H(1,2)+r(1,7)'*H(1,3)+r(1,8)'*H(1,4);
%         y(2)= r(1,1)*H(1,2)'-r(1,2)*H(1,1)'-r(1,3)*H(1,4)'+r(1,4)*H(1,3)'+r(1,5)'*H(1,2)-r(1,6)'*H(1,1)-r(1,7)'*H(1,4)+r(1,8)'*H(1,3);
%         y(3)= r(1,1)*H(1,3)'+r(1,2)*H(1,4)'-r(1,3)*H(1,1)'-r(1,2)*H(1,2)'+r(1,5)'*H(1,3)+r(1,6)'*H(1,4)-r(1,7)'*H(1,1)-r(1,8)'*H(1,2);
%         y(4)=-r(1,1)*H(1,4)'-r(1,2)*H(1,3)'+r(1,3)*H(1,2)'-r(1,2)*H(1,1)'-r(1,5)'*H(1,4)-r(1,6)'*H(1,3)+r(1,7)'*H(1,2)-r(1,8)'*H(1,1);
        H=[h(1)   h(2)   h(3)   h(4)
           h(2)  -h(1)   h(4)  -h(3)
           h(3)  -h(4)  -h(1)   h(2)
           h(4)   h(3)  -h(2)  -h(1)
           h(1)'  h(2)'  h(3)'  h(4)'
           h(2)' -h(1)'  h(4)' -h(3)'
           h(3)' -h(4)' -h(1)'  h(2)'
           h(4)'  h(3)' -h(2)' -h(1)'];
        r=zeros(1,8);
        r=[R(1) R(2) R(3) R(4) R(5)' R(6)' R(7)' R(8)'];
        y=zeros(nt,1);
        y=H'*r.';
        y=y.';
	    %进行最大似然检测
	    DEC_X=judge(y);

        %统计符号错误的总数
	    if DEC_X(1)~=x1
	    error_symbol=error_symbol+1;
	    end
	    if DEC_X(2)~=x2
	    error_symbol=error_symbol+1;
        end
        if DEC_X(3)~=x3
	    error_symbol=error_symbol+1;
	    end
	    if DEC_X(4)~=x4
	    error_symbol=error_symbol+1;
	    end
	end
     SER(k)=error_symbol/length(npskdata);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%画图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
semilogy(SNR,SER,'b*-');
grid on
legend('STBC4C QPSK(4TX 1RX)')
title('QPSK调制下的速率为1/2的4天线复信号STBC在慢瑞利衰减信道上的误符号率性能')
xlabel('信噪比/dB');
ylabel('误符号率');
hold on

⌨️ 快捷键说明

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