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

📄 spead_multipath.m

📁 关于通信基本原理的仿真
💻 M
字号:
clc;
clear all;

EbNodB=3:2:26;
sigma2=1./(2.*10.^(EbNodB./10));

sf=31;
fbconnection=[0 1 0 0 1];
spead=m_sequence(fbconnection);
%spead=randint(1,sf);
spead=1-2*spead;
spead=spead./sqrt(sf);
spead_(1)=spead(31);
spead_(2:31)=spead(1:30);

N=100;
errLim=50;
totalN=1000000;

chan=[0.4 0.4 0.2];
rev_spead=conv(spead,chan);
rev_spead=rev_spead(1,1:length(spead));
for l=1:length(EbNodB)
    errCount=0;
    totalSim=0;
    while errCount<errLim && totalSim<totalN
        u1=randint(1,N);
        u2=1-2*u1;      
        
        for k=1:length(u2)
            u3((k-1)*sf+1:k*sf)=u2(k).*spead;
        end
        
        ray1=chan(1)*abs(sqrt(1/2)*randn()+sqrt(1/2)*i*randn());
        ray2=chan(2)*abs(sqrt(1/2)*randn()+sqrt(1/2)*i*randn());
        ray3=chan(2)*abs(sqrt(1/2)*randn()+sqrt(1/2)*i*randn());
        ray(1)=ray1;ray(2)=ray2;ray(3)=ray3;
        u4=conv(u3,ray);
        
        %u4=u3.*ray1;%+u3_.*ray2_;
        %u4=u4(1,1:length(u3));
        u5=u4+sqrt(sigma2(l))*randn(1,length(u4));
        for k=1:length(u2)
            u6(k)=u5((k-1)*sf+1:k*sf)*spead';
            u8(k)=u5((k-1)*sf+2:k*sf+1)*spead';
            u9(k)=u5((k-1)*sf+3:k*sf+2)*spead';
        end
        u7=(u6+u8+u9)<0;
        err=sum(abs(u1-u7));
        errCount=errCount+err;
        totalSim=totalSim+N;
    end
    ber(l)=errCount/totalSim;
end
semilogy(EbNodB,ber,'-*r');

⌨️ 快捷键说明

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