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

📄 alamouti.asv

📁 Alamouti 在BPSK和QPSK下的性能仿真比较
💻 ASV
字号:
M=4;                               
M1=2;
SNR_db=3:2:18;                                                                %仿真信噪比范围
L=length(SNR_db);
SNR=10.^(SNR_db/10);
Fd=1;                                                                      %消息序列的采样速率
Fs=1;                                                                    %已调信号的采样速率
N=100;
Ns=200;
x=zeros(Ns,1);
z1=zeros(Ns,1);
z2=zeros(Ns,1);
format long,BER1=zeros(2,L);
format long,BER2=zeros(2,L);
for m=1:2
    for n=1:length(SNR)
        nstd=sqrt(1/(4*SNR(n)));         %QPSK调制下噪声方差
        nstd1=sqrt(1/(2*SNR(n)));         %BPSK调制下噪声方差
        bit_err1=0;
        bit_err2=0;
        for p=1:N
            noise=nstd*(randn(Ns,1)+i*randn(Ns,1));%产生噪声序列
            noise1=nstd1*(randn(Ns,1)+i*randn(Ns,1));%产生噪声序列
            H1=sqrt(0.5)*(randn(Ns,1)+i*randn(Ns,1));%产生信道矩阵系数
            A= randint(Ns,1,M);
            for i=1:Ns
                AA=NumToBit(A(i),2);
                AAA(2*i-1)=AA(1);
                AAA(2*i)=AA(2);
            end;
            A1= randint(Ns,1,M1);
            s1 =dmodce(A,Fd,Fs,'psk',M);         %QPSK调制
            s2 =dmodce(A1,Fd,Fs,'psk',M1);         %BPSK调制
            for q=1:Ns/2
                H=Trans_2Tx(H1(2*q-1:2*q));       % 等效信道矩阵
                r1=H*[s1(2*q-1);s1(2*q)]+noise(2*q-1:2*q);     %QPSK接收信号
                z1(2*q-1:2*q)=ddemodce(inv(H)*r1,Fd,Fs,'psk',M); %QPSK解调 
                
                r2=H*[s2(2*q-1);s2(2*q)]+noise1(2*q-1:2*q);     %BPSK接收信号
                z2(2*q-1:2*q)=ddemodce(inv(H)*r2,Fd,Fs,'psk',M1); %BPSK解调
            end;
           % for i=1:Ns
           %    BB=NumToBit(z1(i),2);
           %     BBB(2*i-1)=BB(1);
           %     BBB(2*i)=BB(2);
           % end;
            errors1 = biterr(A,z1);
            errors2 = biterr(A1,z2);
            bit_err1 = bit_err1 + errors1;
            bit_err2 = bit_err2 + errors2;
        end;
        BER1(m,n)= bit_err1/(N*Ns);  %误码率计算
        BER2(m,n)= bit_err2/(N*Ns);  %误码率计算
    end;
end
semilogy(SNR_db, mean(BER1,1),'r*-',SNR_db, mean(BER2,1),'bs-');
legend('QPSK Alamouti code','BPSK Alamouti code');
xlabel('SNR(dB)');
ylabel('BER'); 
grid on;

⌨️ 快捷键说明

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