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

📄 alamouti.m

📁 with MISO, use by Alamouti
💻 M
字号:
clear;
clf;
frame=130; packet=4000; NTx=2; NRx=1; BIT=2;
EbN0=[0:2:30]; sq_NTx=sqrt(NTx); sq2=sqrt(2);
for i_SNR=1:length(EbN0)
    SNR=EbN0(i_SNR); sigma=0.5/(10^(SNR/10)); sq_sigma=sqrt(sigma);
    for p_count=1:length(packet)
        symbol_data=randint(frame*BIT, NTx);
        tx_bits=symbol_data.'; tmp=[]; tmp1=[];
        for i=1:NTx
            [tmp1,s,P]=modulator(tx_bits(i,:),BIT); tmp=[tmp; tmp1];
        end
        X=tmp.'; x0=X(:,1); x1=X; x2=[-conj(X(:,2)) conj(X(:,1))]; frlg=length(X);
        for n=1:NTx
            Hr(n,:,:)=(randn(frlg,NTx)+j*randn(frlg,NTx))/sq2;
        end
        H=reshape(Hr(n,:,:),frlg,NTx); Habs(:,n)=sum(abs(H).^2,2);
        r1=sum(H.*x1,2)/sq_NTx+sq_sigma*(randn(frlg,1)+j*randn(frlg,1));
        r2=sum(H.*x2,2)/sq_NTx+sq_sigma*(randn(frlg,1)+j*randn(frlg,1));
        z1=r1.*conj(H(:,1))+conj(r2).*H(:,2);
        z2=r1.*conj(H(:,2))-conj(r2).*H(:,1);
        for m=1:P
            d1(:,m)=abs(sum(z1,2)-s(m)).^2+(-1+sum(Habs,2))*abs(s(m))^2;
            d2(:,m)=abs(sum(z2,2)-s(m)).^2+(-1+sum(Habs,2))*abs(s(m))^2;
        end
        [y1,i1]=min(d1,[],2); s1d=s(i1).'; clear d1
        [y2,i2]=min(d2,[],2); s2d=s(i2).'; clear d2
        Xd=[s1d s2d]; tmp1=X>0; tmp2=Xd>0;
        error(p_count)=sum(sum(tmp1~=tmp2));
    end
    BER(i_SNR)=sum(error)/(packet*frame*BIT);
end
figure(1), semilogy(EbN0,BER,'s'), axis([EbN0([1 end]) 1e-6 1e0]); grid on; hold on;
xlabel('SNR(dB)');    ylabel('BER');
semilogy(EbN0,BER,'b'), axis([EbN0([1 end]) 1e-6 1e0]); hold on;

   
   

⌨️ 快捷键说明

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