精华内容
下载资源
问答
  • 现有扩频通信系统常用的伪随机序列有m序列、Gold序列、Walsh序列、M序列及卫星通信中常用的C/A(粗/截获)和精码(P)等。在这些序列中,P的性能优秀,码周期最长,在10.23 MHz的时钟速率下,时间周期大约...
  • 针对传统Logistic映射迭代范围小、分布集中,且采用混沌序列作为扩频码进行通信时盲估计算法可以恢复出混沌序列等问题,提出了一种基于新型分段Logistic序列的可变符号周期扩频方法。与传统Logistic序列相比,新型...
  • 本文在研究P原理的基础上,提出了一种周期更长,保密性能好,可用于战时卫星测控通信的伪随机序列产生方法。
  • 研究了 m 序列三阶相关函数特性,证明了不同周期 m 序列三阶...加性高斯白噪声下的仿真结果表明,本方法仅需1/4倍长码周期长度信号和4 dB信噪比,估计非周期长码直扩信号的扩频码和长扰码的正确概率就可达到99%以上。
  • 在仿真设计中,我们使用了触发器产生PN周期伪随即序列作为扩频码,使用2PSK调制信号与扩频码相乘实现扩频调制。最后,我们结合香农公式以及信号在扩频通信传输过程中的频谱变化,证明通过扩频通信,能在噪声增加的...
  • 移动通信原理的扩频通信系统...②扩频码要求采用周期为63(或127)的m序列; ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收; ④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经...

    移动通信原理的扩频通信系统仿真实验,完成扩频通信系统的多用户数据传输、利用蒙特卡罗仿真方法对扩频增益进行性能仿真。
    项目实验环境是Matlab2018,软件版本不同可能会有些出入,需要稍作修改。

    仿真要求

    要求一:扩频通信系统的多用户数据传输
    ①传输的数据随机产生,要求采用频带传输(BPSK调制);
    ②扩频码要求采用周期为63(或127)的m序列;
    ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;
    ④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);
    ⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。
    要求二:利用蒙特卡罗仿真方法对扩频增益进行性能仿真
    设计仿真方案,得到在数据传输过程中进行扩频(扩频序列用m序列)和不进行扩频的BER性能结论,要求得到的BER曲线较为平滑,并说明这种结论与理论上的结论是否相符,为什么?

    仿真方案设计

    要求一:
    通信系统的总体框图如下所示:
    在这里插入图片描述
    在这里插入图片描述
    发射机原理图:
    在这里插入图片描述
    接收机原理图:
    在这里插入图片描述
    其中发射端主要完成m序列的产生,随机0, 1序列的产生。然后利用m序列对产生的随机序列进行扩频,然后再用cos (wt)对其进行调制。
    信道主要模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户一经过了2径衰落,用户二经过了3径衰落,用户三经过了4径衰落。
    接收端接收到的信号是几路多径信号的加噪后的叠加,首先要完成信号的解扩,然后再解调,滤波,抽样判决最后分别与原始信号比较并统计误码率。

    1、m序列的产生
    需要32位的扩频序列,经过计算易知要产生32位的m序列需要长度为6的反馈系数,为了得到较好的结果,选取了自相关性较好而互相关性较差的三组反馈系数(八进制)45、67、75,其对应的二进制为100101、110111、111101。并将二进制与移位寄存器级数对应,例如反馈系数移100101得到的移位寄存器为C5=1, C4=0, C3=0, C2=1, C1=0, C0=1, 其具体的寄存器结构图如下图所示:

    在这里插入图片描述
    2、 m序列的扩频
    扩频的主要思想是每一位数据位都扩展成长度为m序列长的信息,其具体做法是将数据信息中的‘1’用m序列代替,而对于‘0’用-m序列代替,这样对每一个数据位都进行扩展就实现了对原始数据的扩频。其结构框图如下:
    在这里插入图片描述
    3. DPSK调制
    为了使低频信号能够在高频中传输,并且增强系统的抗噪声性能,我们必须采用一定的调制解调技术,这里选用的DPSK进行调制。BPSK对扩频信号进行调试,并在接收端对解扩信号进行BPSK解调以恢复出原有信号。BPSK的主要思路是将不同的数据用不同相位的载波进行调制,以将低频的信号调制到较高频率。
    4.多径信道仿真
    在这个模块中我将模拟无线信道,对不同用户产生的数据经三径进行传输,每一径信号又有三个用户数据叠加而成,并且每一径信号具有不同的延迟和衰减。最后在信道的另一端三径信号进行叠加并对其加噪。
    5.解扩和带通滤波
    在假定扩频码与接收信号同步的情况下, 可对接收信号进行解扩, 其解扩的过程与扩频的过程一样, 也是利用扩频码与接收信号进行相乘即可。

    要求二:
    1、构造或描述概率过程实际上就是建立随机试验模型,构造概率过程是对确定性问题而言的,描述概率过程是对随机性问题而言的,不同的问题所需要建立的随机试验模型各不相同。
    2、已知概率分布抽样指的是随机试验过程,随机模型中必要包含某些已知概率分布的随机变量或随机过程作为输入,进行随机试验的过程就是对这些随机变量的样本或随机过程的样本函数作为输入产生相应输出的过程,因此通常被称为对已知概率分布的抽样。如何产生已知分布的随机变量或随机过程是蒙特卡罗方法中的一个关键问题。
    3、获得估计量,蒙特卡罗方法所得到的问题的解总是对真实解的一个估计,本身也是一个随机变量,这个随机变量是由随机试验模型输出通过统计处理得到的。
    这里直接采用不经过直接扩频与经过直接扩频的信号进行比较,通过误码率曲线进行分析。

    主要仿真代码

    主程序如下:

    clear all;clc;
    dataRate=1000; 
    chipRate=63*dataRate;
    fc=chipRate*2;
    fs=fc*8;
    N=1000;
    c=63;
    b1=[1,0,0,0,0,1,1]; %103
    b2=[1,1,0,0,1,1,1]; %147
    b3=[1,1,0,1,1,0,1];  %155
    snr=-20:2:10;
    
    for i=1:length(snr)
    signal1=information(N);signal2=information(N);
    signal3=information(N); c1=genMseq(b1);c2=genMseq(b2);c3=genMseq(b3);
    
        dssignal1=dsss(signal1,c1);
        dssignal2=dsss(signal2,c2);
        dssignal3=dsss(signal3,c3);
        modusignal1=modu(dssignal1,chipRate,fc, fs);
        modusignal2=modu(dssignal2,chipRate,fc, fs);
        modusignal3=modu(dssignal3,chipRate,fc, fs);
        
        mixsignal=modusignal1+modusignal2+modusignal3;
        receivesignal=awgn(mixsignal,snr(i));
    %多径干扰
        receivesignal1= channels (receivesignal,snr(i),2) ;
        receivesignal2= channels (receivesignal,snr(i),3) ;
        receivesignal3= channels (receivesignal,snr(i),4) ;
        
        dedssignal1=dedsss(receivesignal1,c1,chipRate,fs);
        demoSignal1=demodu(dedssignal1,dataRate,fc,fs);
        dedssignal2=dedsss(receivesignal1,c2,chipRate,fs);
        demoSignal2=demodu(dedssignal1,dataRate,fc,fs);
        dedssignal3=dedsss(receivesignal1,c3,chipRate,fs);
        demoSignal3=demodu(dedssignal1,dataRate,fc,fs);
        err_bit1(i)=sum(demoSignal1~=signal1)/N;
        err_bit2(i)=sum(demoSignal2~=signal2)/N;
        err_bit3(i)=sum(demoSignal3~=signal3)/N;
        
        dedssignal21=dedsss(receivesignal2,c1,chipRate,fs);
        demoSignal21=demodu(dedssignal21,dataRate,fc,fs);
        dedssignal22=dedsss(receivesignal2,c2,chipRate,fs);
        demoSignal22=demodu(dedssignal22,dataRate,fc,fs);
        dedssignal23=dedsss(receivesignal2,c3,chipRate,fs);
        demoSignal23=demodu(dedssignal23,dataRate,fc,fs);
        err_bit21(i)=sum(demoSignal21~=signal1)/N;
        err_bit22(i)=sum(demoSignal22~=signal2)/N;
        err_bit23(i)=sum(demoSignal23~=signal3)/N;
        
        dedssignal31=dedsss(receivesignal3,c1,chipRate,fs);
        demoSignal31=demodu(dedssignal31,dataRate,fc,fs);
        dedssignal32=dedsss(receivesignal3,c2,chipRate,fs);
        demoSignal32=demodu(dedssignal32,dataRate,fc,fs);
        dedssignal33=dedsss(receivesignal3,c3,chipRate,fs);
        demoSignal33=demodu(dedssignal33,dataRate,fc,fs);
        err_bit31(i)=sum(demoSignal31~=signal1)/N;
        err_bit32(i)=sum(demoSignal32~=signal2)/N;
        err_bit33(i)=sum(demoSignal33~=signal3)/N;
        
        %不进行扩频的BER
        modusignal1=modu(signal1,chipRate/63,fc, fs);
        modusignal2=modu(signal2,chipRate/63,fc, fs);
        modusignal3=modu(signal3,chipRate/63,fc, fs); 
        
        modusignal1= channels (modusignal1,snr(i),3) ;
        modusignal2= channels (modusignal2,snr(i),3) ;
        modusignal3= channels (modusignal3,snr(i),3) ;
     
        demoSignal41=demodu(modusignal1,dataRate,fc,fs);
        demoSignal42=demodu(modusignal2,dataRate,fc,fs);
        demoSignal43=demodu(modusignal3,dataRate,fc,fs);
        err_bit41(i)=sum(demoSignal41~=signal1)/N;
        err_bit42(i)=sum(demoSignal42~=signal2)/N;
        err_bit43(i)=sum(demoSignal43~=signal3)/N;
    end
    figure(1)
    semilogy(snr,err_bit1,'-s',snr,err_bit2,'-h',snr,err_bit3,'-*');
    legend('用户1','用户2','用户3');
    xlabel('信噪比');
    ylabel('误比特率');
    title('多径衰落(路径数为2)');
    
    figure(2)
    semilogy(snr,err_bit21,'-s',snr,err_bit22,'-h',snr,err_bit23,'-*');
    legend('用户1','用户2','用户3');
    xlabel('信噪比');
    ylabel('误比特率');
    title('多径衰落(路径数为3)');
    
    figure(3)
    semilogy(snr,err_bit31,'-s',snr,err_bit32,'-h',snr,err_bit33,'-*');
    legend('用户1','用户2','用户3');
    xlabel('信噪比');
    ylabel('误比特率');
    title('多径衰落(路径数为4)');
    
    figure(4)
    N1=1:length(signal1);
    subplot(2,1,1);
    plot(N1,signal1);
    title('扩频前信号');
    axis([0 100 -1.1 1.1]);
    dssignal1=dsss(signal1,c1);
    N1=1:length(dssignal1);
    subplot(2,1,2);
    plot(N1,dssignal1);
    title('扩频后信号');
    axis([0 320 -1.1 1.1]);
    
    figure(5)
    modusignal1=modu(dssignal1,chipRate,fc, fs);
    N1=1:length(modusignal1);
    subplot(2,1,1);
    plot(N1,modusignal1);
    axis([0 250 -1.1 1.1]);
    grid on
    N2=1:length(mixsignal);
    subplot(2,1,2);
    plot(N2,mixsignal);
    axis([0 500 -5.1 5.1]);
    grid on
    
    figure(6)
    receivesignal1= channels (modusignal1,snr(i),2) ;
    N1=1:length(receivesignal1);
    subplot(3,1,1);
    plot(N1,receivesignal1);
    axis([0 200 -1.1 1.1]);
    dedssignal1=dedsss(receivesignal,c1,chipRate,fs);
    subplot(3,1,2);
    plot(N1,dedssignal1);
    axis([0 200 -1.1 1.1]);
    demoSignal1=demodu(dedssignal1,dataRate,fc,fs);
    N1=1:length(demoSignal1);
    subplot(3,1,3);
    plot(N1,demoSignal1);
    axis([0 200 -1.1 1.1]);
    
    figure(7)
    plot(snr,err_bit21,'-s',snr,err_bit22,'-h',snr,err_bit23,'-*');
    legend('用户1','用户2','用户3');
    xlabel('信噪比');
    ylabel('误比特率');
    title('扩频');
    % axis([0 100 -1.1 1.1]);
    
    figure(8)
    plot(snr,err_bit41,'-s',snr,err_bit42,'-h',snr,err_bit43,'-*');
    legend('用户1','用户2','用户3');
    xlabel('信噪比');
    ylabel('误比特率');
    title('不扩频');
    
    

    接收端解扩代码如下:

    function dessignal=dedsss(receiveSignal,c,chipRate,fs)
        L=fs/chipRate;
        c1=[];
        for i=1:length(c)
            c1=[c1,c(i)*ones(1,L)];
        end
        dessignal=[];
        for i=1:length(c1):length(receiveSignal)
       dessignal=[dessignal,receiveSignal(i:i+length(c1)-1).*c1];
        end
    end
    

    接收端解调代码如下:

    function demoSignal=demodu(Resignal,datarate,fc,fs) 
        t = linspace(0,1/datarate,fs/datarate);
        carrier=cos(2*pi*fc*t);Lc=length(carrier);
        Ls=length(Resignal);designal=[]; 
    for i=1:Lc:Ls
            designal=[designal,carrier.*Resignal(i:i+Lc-1)];
        end
        demoSignal = []; 
    for i= 1:Lc:Ls
            threshold=sum(designal(i:i+Lc-1));
            if threshold>0
                tt=1;
            else
                tt=-1;
            end
         demoSignal=[demoSignal,tt];
        end
    end
    

    数据流的产生代码如下:

        function signal=information(N)
    		signal=rand(1,N)>=0.5;
          signal=signal*2-1;
       end
    

    扩频码的产生(只产生一个周期的m序列)、扩频、调制。
    解扩实现代码如下:

    function demoSignal=demodu(Resignal,datarate,fc,fs) 
        t = linspace(0,1/datarate,fs/datarate);
        carrier=cos(2*pi*fc*t);Lc=length(carrier);
        Ls=length(Resignal);designal=[]; 
    for i=1:Lc:Ls
            designal=[designal,carrier.*Resignal(i:i+Lc-1)];
        end
        demoSignal = []; 
    for i= 1:Lc:Ls
            threshold=sum(designal(i:i+Lc-1));
            if threshold>0
                tt=1;
            else
                tt=-1;
            end
         demoSignal=[demoSignal,tt];
        end
    end
    

    解调实现的代码如下:

    function dessignal=dedsss(receiveSignal,c,chipRate,fs)
        L=fs/chipRate;
        c1=[];
        for i=1:length(c)
            c1=[c1,c(i)*ones(1,L)];
        end
        dessignal=[];
        for i=1:length(c1):length(receiveSignal)
       dessignal=[dessignal,receiveSignal(i:i+length(c1)-1).*c1];
        end
    end
    

    仿真结果

    扩频通信的理论基础为香农公式:C=Blog(1+S/N)。我们可以用牺牲带宽的办法来换取较低的信噪比,增加系统的抗干扰能力。直接序列扩频,是直接利用具有高码率的扩频码序列在发送端扩展信号的频谱,而在接收端,用相同的扩频码序列进行解扩,把展宽的扩频信号还原成原始的信息,是一种数字调制方法。
    扩频通信系统具有较强的抗干扰能力,且具有很强的隐蔽性和抗侦查,抗窃听的能力。这种能力随着扩频增益的增大而增大。扩频增益的提高就需要提高扩频码m序列的位数了。
    因为m序列具有良好的自相关特性和互相关特性,正是这两大特性使得在接收端可以很好的进行扩频码的同步,以及多路用户的区分,从而具有很好的抗多径干扰能力。

    要求一
    1、原信号和扩频之后的信号,如下图所示。
    在这里插入图片描述

    2、第一个用户信号经过扩频,调制之后的信号以及三个用户信号分别经过2径,3径,4径信道后的叠加信号之和如下图所示。
    由上到下第一个坐标系为用户1经过扩频、调制的信号,第二、三、四为三个用户经过叠加的信号再分别通过2径、3径、4径的信道之后的信号,由图可知,经过多径之后的信号已经和原信号的图形相差很大。这是因为信道的衰落使用延时来进行模拟的,会造成一些误差。
    在这里插入图片描述

    3、第一个原始用户信号与其经过接收端解扩,解调,抽样判决之后的最终信号的比较,如下图所示。
    在这里插入图片描述

    4、3个用户的信号分别经过多径衰落。衰落信道的个数为2、3、4,通过下面三张图可以发现,随着多径数目的增加,3个用户的误码率都呈现增加的趋势。同一个用户随着信噪比的增加,误码率会减小。
    多径衰落路径数为2时,3个用户的误码率比较图如下:
    在这里插入图片描述
    多径衰落路径数为3时,3个用户的误码率比较图如下:
    在这里插入图片描述

    多径衰落路径数为4时,3个用户的误码率比较图如下:
    在这里插入图片描述
    要求二
    在数据传输过程中进行扩频和不进行扩频的BER性能比较如图所示。
    进行扩频的BER曲线(第一张图)更加平缓,并且经过扩频的信号在信噪比比较低的情况下,呈现出优于不扩频信号的性能,这体现了扩频通信可以提高系统的信噪比,改善系统的性能。
    通过直接序列扩频得到的BER曲线较为平滑。直扩系统有较强的抗多径干扰的能力,多径信号到达接收端,由于利用了伪随机码的相关特性,只要多径时延超过伪随机码的一个切普,则通过相关处理后,可消除这种多径干扰的影响,甚至可以利用这些多径干扰的能量,提高系统的信噪比,改善系统的性能。

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 周期直扩信号PN盲估计,张晓晨,张晓林,直接序列扩频(Direct Sequence Spread Spectrum ,DSSS;简称直扩)通信由于其抗干扰性强、截获率低、信号隐蔽性好等特点,被广泛应用于军事对抗
  • 扩展频谱--直接序列扩频

    千次阅读 2019-10-30 15:45:44
    扩展频谱--直接序列扩频1.频谱扩展2.直接序列扩频2.1原理2.2解调 1.频谱扩展 虽然带宽资源很宝贵,但是有时可以增加发射信号的带宽提高系统的性能。...码片周期TcT_cTc​是码元周期TbT_bTb​的1N...

    1.频谱扩展

    • 虽然带宽资源很宝贵,但是有时可以增加发射信号的带宽提高系统的性能。
    • 需要进行频谱扩展的原因
      • 使信号影藏在背景噪声下,难以被发现
      • 消除码间干扰和窄带干扰
      • 多用户共享频带
    • 扩频机制
      • 直接序列扩频
      • 跳频
      • 跳时

    2.直接序列扩频

    2.1原理

    在这里插入图片描述
    在这里插入图片描述

    • 码片周期TcT_c是码元周期TbT_b1N\frac{1}{N}
    • s(t)s(t)的带宽d(t)d(t)N倍
      在这里插入图片描述
      此图展示了扩频系统如何抵御ISI。
      我们发现在调制后的频谱附近有着很强的ISI干扰,但是经过扩频,我们把有效信号的频谱展宽了,在接收的时候,再乘相同的扩频序列,展宽的有效信号带宽变窄,但是干扰的频带变宽,对于信号来说加上带通滤波器后,之前很强的ISI变得微不足道了。

    2.2解调

    s(t)=d(t)Sci(t);d(t)=d0g(t);y={10<t<T0s(t)=d(t)\cdot S_{ci}(t);d(t)=d_0g(t);y=\begin{cases} 1 & 0<t<T \\ 0 & 其他 \end{cases} r(t)=s(t)+n(t)r(t)=s(t)+n(t) d(t)=r(t)Sci(t)=d(t)+n(t)Sci(t)d'(t)=r(t)\cdot S_{ci}(t)=d(t)+n(t)\cdot S_{ci}(t)使用扩频的优越性到底体现在哪里呢?让我们看看扩频序列的自相关和互相关函数。

    • 自相关
      ρ(τ)=1Ts0Tssci(t)sci(t+τ)dt=δ(t)\rho(\tau)=\frac{1}{T_s}\int_0^{T_s}s_{ci}(t)s_{ci}(t+\tau)dt=\delta(t)很明显的发现消除了ISI
    • 互相关
      ρ(τ)=1Ts0Tssci(t)scj(t+τ)dt=δ(t)\rho(\tau)=\frac{1}{T_s}\int_0^{T_s}s_{ci}(t)s_{cj}(t+\tau)dt=\delta(t)很明显的发现消除了用户间的干扰
      但是理想的序列是很难满足的

    3.准正交码

    3.1原理

    在这里插入图片描述
    最大长度线性移位寄存器序列(MLSR):周期P=2r1P=2^r-1,生成多项式是本元多项式

    3.2举例

    r=4;C1=0,C2=0,C3=1,C4=1r=4;C_1=0,C_2=0,C_3=1,C_4=1初态为(0001)
    在这里插入图片描述
    接着往下做就可以了。

    3.3优点

    • 0,1概率一致,无直流成分
    • 连续出现K个相同的码片的概率很小,两种符号交替出现
    • 自相关系数在τ0\tau \neq0的时候很小,消除了码间干扰
    • 互相关系数很小
    展开全文
  • 扩频通信系统仿真实验一、题目二、仿真...②扩频码要求采用周期为63(或127)的m序列; ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收; ④设计三种不同的功率延迟分布,从基站到达三个不同...

    一、题目

    扩频通信系统仿真实验

    二、仿真要求

    要求一:扩频通信系统的多用户数据传输

    ①传输的数据随机产生,要求采用频带传输(BPSK调制);

    ②扩频码要求采用周期为63(或127)的m序列;

    ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;

    ④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);

    ⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。

    三、仿真方案详细设计

    我选择扩频通信系统的多用户数据传输

    通信系统的总体框图如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJ6eqszq-1588732523745)(media/a360d582a4d7ca95767ae4d6dc999d44.png)]

    发射机原理框图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G28eMW1y-1588732523748)(media/7c0c1c64e50f7bc2e65540eb958fab15.png)]

    接收机原理框图:

    在这里插入图片描述

    由上图可知,整个设计由发送端、信道和接收机组成。

    其中发射端主要完成m序列的产生,随机0, 1序列的产生。然后利用m序列对产生的随

    机序列进行扩频,然后再用cos (wt)对其进行调制。

    信道主要模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户一经过了2径衰落,用户二经过了3径衰落,用户三经过了4径衰落。

    接收端接收到的信号是几路多径信号的加噪后的叠加,首先要完成信号的解扩,然后再解调,滤波,抽样判决最后分别与原始信号比较并统计误码率

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTFQRkmE-1588732523751)(media/b93a2604ddfd95c167186585cd3bad33.png)]

    现对主要功能部分进行详细描述:

    1.扩频码(m序列)的产生

    扩频码为伪随机序列,本实验采用自相关特性好,互相关特性较差的M序列,因为有三路用户,故选取带有6位移位寄存器,周期为63的m序列。根据上图可以得出其对应的二进制序列分别为:
    1000011, 1100111, 1101101.以1000011为例,其具体的寄存器结构图如下所示:

    初始化各寄存器单元内容为1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tX6eGjal-1588732523752)(media/ca39951f396890c0e36a50ebbfcaf5c6.png)]

    2.产生信息(1,-1)的数据流

    代码如下:

    function signal=information(N)
    
    signal=rand(1,N)\>=0.5;
    
    signal=signal\*2-1;
    
    End
    
    % 其中参数N是指本次产生的数据个数。
    
    3.产生扩频码(只产生一个周期的m序列)
    
    代码如下:
    
    function c=genMseq(b)
    
    N=length(b)-1;
    
    D=ones(1,N);
    
    A=b(N:-1:1);
    
    c=[];
    
    for i=1:2\^N-1
    
    c1=rem(sum(D.\*A),2);
    
    c=[c,D(N)];
    
    D=[c1,D(1:N-1)];
    
    end
    
    c=c\*2-1; %变为1,-1的序列
    
    end
    

    4.扩频

    扩频的主要思想是每一位数据位都扩展成长度为m序列长的信息,其具体做法是将数据信息中的‘1’
    用m序列代替,而对于‘-1’
    用-m序列代替,这样对每-一个数据位都进行扩展就实现了对原始数据的扩频。

    代码如下:

    %扩频
    
    function ssignal=dsss(signal,c)
    
    ssignal=[];
    
    for i=1:length(signal)
    
    ssignal=[ssignal,signal(i)\*c];
    
    end
    
    end
    

    5.调制,使用BPSK方式

    代码如下:

    %调制
    
    function modusignal=modu(signal, dataRate,fc, fs)
    
    %采用BPSK调制方式
    
    t=linspace(0,1/dataRate,fs/dataRate);
    
    carrier=cos(2\* pi\*fc\*t);
    
    modusignal=[];
    
    for i=1:length(signal)
    
    modusignal=[modusignal,carrier\*signal(i)];
    
    end
    
    end
    

    6.解扩

    代码如下:

    %解扩实现
    
    function dessignal=dedsss(receiveSignal,c,chipRate,fs)
    
    L=fs/chipRate;
    
    c1=[];
    
    for i=1:length(c)
    
    c1=[c1,c(i)\*ones(1,L)];
    
    end
    
    dessignal=[];
    
    for i=1:length(c1):length(receiveSignal)
    
    dessignal= [dessignal,receiveSignal(i:i+length(c1)-1).\*c1];
    
    end
    
    end
    

    7.解调

    代码如下:

    %解调实现.
    
    function demoSignal=demodu(Resignal,datarate,fc,fs)
    
    t = linspace(0,1/datarate,fs/datarate);
    
    carrier=cos(2\*pi\*fc\*t);Lc=length(carrier);
    
    Ls=length(Resignal);designal=[];
    
    for i=1:Lc:Ls
    
    designal=[designal,carrier.\*Resignal(i:i+Lc-1)];
    
    end
    
    demoSignal = [];
    
    for i= 1:Lc:Ls
    
    threshold= sum(designal(i:i+Lc-1));
    
    if threshold\>0
    
    tt=1;
    
    else
    
    tt= -1;
    
    end
    
    demoSignal=[demoSignal,tt];
    
    end
    
    end
    

    四、主函数仿真代码

    %扩频通信系统仿真的主程序.
    
    clear all;
    
    close all;
    
    clc;
    
    dataRate= 1000;
    
    chipRate=63\*dataRate;
    
    fc=chipRate\*2;
    
    fs=fc\*8;
    
    N=1000;
    
    c=63;
    
    b1=[1,0,0,0,0,1,1];
    
    b2=[1,1,0,0,1,1,1];
    
    b3=[1,1,0,1,1,0,1];
    
    snr=-20:2:-10;
    
    for i= 1:length(snr);
    
    signal1=information(N);
    
    signal2 =information(N);
    
    signal3=information(N);
    
    c1=genMseq(b1);c2=genMseq(b2);c3=genMseq(b3);
    
    dssignal1=dsss(signal1,c1);
    
    dssignal2=dsss(signal2,c2);
    
    dssignal3=dsss(signal3,c3);
    
    modusignal1= modu(dssignal1,chipRate,fc, fs);
    
    modusignal2= modu(dssignal2,chipRate,fc, fs);
    
    modusignal3= modu(dssignal3,chipRate,fc, fs);
    
    mixsignal=modusignal1 + modusignal2 +modusignal3;
    
    receiveSignal=awgn(mixsignal,snr(i));
    
    dedssignal1=dedsss(receiveSignal,c1 ,chipRate,fs);
    
    demoSignal1=demodu(dedssignal1,dataRate,fc,fs);
    
    dedssignal2=dedsss(receiveSignal,c2,chipRate,fs);
    
    demoSignal2=demodu(dedssignal2,dataRate,fc,fs);
    
    dedssignal3=dedsss(receiveSignal,c3,chipRate,fs);
    
    demoSignal3=demodu(dedssignal3,dataRate,fc,fs);
    
    err_bitl(i)=sum(demoSignal1\~=signal1)/N;
    
    err_bit2(i)=sum(demoSignal2\~=signal2)/N;
    
    err_bit3(i)=sum(demoSignal3\~=signal3)/N;
    
    end
    
    semilogy(snr,err_bitl,'-s',snr,err_bit2,'-h',snr,err_bit3,'-\*');
    
    legend('用户1',' 用户2','用户3');
    
    xlabel('信噪比');
    
    ylabel('误比特率');
    emoSignal3=demodu(dedssignal3,dataRate,fc,fs);
    
    err_bitl(i)=sum(demoSignal1\~=signal1)/N;
    
    err_bit2(i)=sum(demoSignal2\~=signal2)/N;
    
    err_bit3(i)=sum(demoSignal3\~=signal3)/N;
    
    end
    
    semilogy(snr,err_bitl,'-s',snr,err_bit2,'-h',snr,err_bit3,'-\*');
    
    legend('用户1',' 用户2','用户3');
    
    xlabel('信噪比');
    
    ylabel('误比特率');
    

    五、仿真结果

    各项的数值如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l9xIGNQJ-1588732523753)(media/d972b178efcb23c78a8529cbdcc8cef5.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-942xb3eq-1588732523754)(media/2da480d7ff2d16b180de512ebe6fa5b8.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Tq4ZoNt-1588732523755)(media/6df6883cda3ba8d29f1bed2f4f4b9677.png)]

    结论:
    
    ①当误比特率一定时,看曲线图总体来说,用户1的信噪比\>用户2的信噪比\>用户3的信噪比。
    
    ②当误信噪比一定时,看曲线图总体来说,用户3的误比特率\>用户2的误比特率\>用户1的误比特率。
    
    ③解调是,一定是先解扩在解调。
    
    展开全文
  • 扩频码要求采用周期为63(或127)的m序列; ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收; ④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,...

    一、仿真要求

    扩频通信系统的多用户数据传输
    ①传输的数据随机产生,要求采用频带传输(BPSK调制);
    ②扩频码要求采用周期为63(或127)的m序列;
    ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;
    ④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);
    ⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。

    二、仿真方案设计原理

    1.扩频通信的基本原理
    ①香农公式:C=Blog(1 + S / N) (C是信道容量,指单位时间内无差错传播的最大信息量,单位为b/s;B是信号频带带宽,单位HZ;S是信号功率,单位W;N为噪声功率,单位W;其中S/N为输入功率与噪声功率之比,称为性躁功率比,简称性躁比)
    由信号频谱图知,减小时域周期持续时间更短,频谱更宽,可以提高信号带宽B。
    ②信号频谱
    在这里插入图片描述
    2.发射端频谱如何发展?
    Tc = Tb / L
    (L是频谱的扩展倍数,扩频增益;Tb是比特周期;Tc是码片周期 )
    ①将一个数据位的持续时间进行分片
    ②一个数据位的持续时间有多个小片组成,显然从频谱的角度看,每个小片的持续时间比一个数据位的持续时间短,显然其频谱就宽
    ③其频谱的扩展倍数 L= Tb / Tc
    ④码片速率也就变成数据数率的L倍
    3.接收端如何解扩恢复原来的带宽?
    如表所示
    在这里插入图片描述
    在这里插入图片描述
    4.其中的关键问题
    对扩频码的要求:
    ①自相关特性(良好的自相关特性,便于扩频码的同步):时间延迟τ = 0时达到峰值,其他情况尽量等于0。
    ②互相关特性(良好的互相关特性,便于区分不同的用户):希望互相关系数ρ(x,y)在0附件完全正交。
    在这里插入图片描述
    由上图知,m序列在一个点达到峰值,其他情况接近0,,所以它的自相关特性很好,互相关特性在0附件还行,所以一般。
    5.扩频通信系统发射机模型
    本文采用的是BPSK调制解调方式。发送端将扩频后的信号s乘上载波
    cos(2πft)即完成了调制
    在这里插入图片描述
    6.扩频通信系统发射机设计
    在这里插入图片描述
    7.参数设置
    数据速率:dataRate
    载波速率:fc
    抽样频率:fs(将连续信号变为离散信号)
    码片速率:chipRate

    8.接收机原理
    接收端再乘以载波cos(2*πft)做相干解调,再经过一个低通滤波器滤除相乘过程中产生的高频成分即完成了解调
    在这里插入图片描述
    思考:扩频通信系统中为什么要先解扩再解调,而不是发射机端处理过程的逆过程?
    答:因为我们通过发送端扩频调制出来的信号,功率很低,像噪声一样,无法解调,所以在接收端应该先解扩检查出信号,然后再解调,通过低通滤波器。
    注意:仿真中没有考虑所有的同步问题,都假定是精准同步的
    9.接收机设计
    在这里插入图片描述
    10.扩频通信系统仿真的主程序
    在这里插入图片描述
    信道主要模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户一经过了2径衰落,用户二经过了3径衰落,用户三经过了4径衰落。接收端接收到的信号是几路多径信号的加噪后的叠加,首先要完成信号的解扩,然后再解调,滤波,抽样判决最后分别与原始信号比较并统计误码率。
    在这里插入图片描述
    11.如图,扩频码采用周期为63的m序列,可知其对应的级数为6,反馈系数Ci对应的八进制(二进制)分别为103(1000011)、147(1100111)、155(1101101)。因此本实验中设计的反馈系数为

    b1=[1,0,0,0,0,1,1]; %C0=1,C1=1,C2=0,C3=0,C4=0,C5=0,C6=1
    b2=[1,1,0,0,1,1,1]; %C0=1,C1=1,C2=1,C3=0,C4=0,C5=1,C6=1
    b3=[1,1,0,1,1,0,1]; %C0=1,C1=0,C2=1,C3=1,C4=0,C5=1,C6=1
    

    m序列部分反馈系数:
    在这里插入图片描述
    12.线性反馈移位寄存器(m序列)
    在这里插入图片描述

    三、详细仿真代码

    1.产生随机的-1,1信号,函数information()

    function signal=information(N)  %N为本次产生的数据个数
    %产生随机的-1,1信号
    signal=rand(1,N)>=0.5;
    signal=signal*2-1;
    end
    

    2.产生m序列,函数genMseq()

    function c=genMseq(b)
    %产生m序列
    N=length(b)-1;
    D=ones(1,N);
    A=b(N:-1:1);
    c=[];
    for i=1:2^N-1
        c1=rem(sum(D.*A),2);
        c=[c,D(N)]; %
        D=[c1,D(1:N-1)];
    end
    c=c*2-1;                       %变为1,-1的序列
    end
    

    3.扩频,函数dsss()

    function ssignal=dsss(signal,c)
    %扩频
    ssignal=[];
    for i=1:length(signal)
        ssignal=[ssignal,signal(i)*c];
    end
    end
    

    4.采用BPSK调制方式,函数modu()

    function [modusignal]=modu(signal, dataRate,fc, fs)
    %采用BPSK调制方式
    t=linspace(0,1/dataRate,fs/dataRate);
    carrier=cos(2*pi*fc*t);
    modusignal=[];
    for i=1:length(signal)
        modusignal=[modusignal,carrier*signal(i)];
    end
    end
    

    5.解扩,函数dedsss()

    function dessignal=dedsss(receiveSignal,c,chipRate,fs)
    %解扩
    L=fs/chipRate;
    c1=[];
    for i=1:length(c)
        c1=[c1,c(i)*ones(1,L)];
    end
    dessignal=[];
    for i=1:length(c1):length(receiveSignal)
        dessignal=[dessignal,receiveSignal(i:i+length(c1)-1).*c1];
    end
    end
    

    6.解调,函数demodu()

    function demoSignal=demodu(Resignal,datarate,fc,fs)
    %解调
    t = linspace(0,1/datarate,fs/datarate);
    carrier=cos(2*pi*fc*t);
    Lc=length(carrier);
    Ls=length(Resignal);
    designal=[];
    for i=1:Lc:Ls
        designal=[designal,carrier.*Resignal(i:i+Lc-1)];
    end
    demoSignal = [];
    for i= 1:Lc:Ls
        threshold=sum(designal(i:i+Lc-1));
        if threshold>0
            tt=1;
        else
            tt=-1;
        end
        demoSignal=[demoSignal,tt];
    end
    end
    

    7.模拟多径衰落 函数channels()

    function multiS=channels(modusignal,snr,k)
    %模拟多径衰落
    len=length(modusignal);
    x1=randn(1,len);
    y1=randn(1,len);
    r1=abs(x1+j*y1).*modusignal;
    r1=[zeros(1,5),r1(1:length(modusignal)-5)];
    x2=randn(1,len);
    y2=randn(1,len);
    r2=abs(x2+j*y2).*modusignal;
    r2=[zeros(1,6),r2(1:length(modusignal)-6)];
    x3=randn(1,len);
    y3=randn(1,len);
    r3=abs(x3+j*y3).*modusignal;
    r3=[zeros(1,8),r3(1:length(modusignal)-8)];
    if k==2
        multiS=modusignal+r1;
    else if k==3
            multiS=modusignal+r1+r2;
        else if k==4
                multiS=modusignal+r1+r2+r3;
            end
        end
    end
    multiS=awgn(multiS,snr);
    
    

    8.扩频通信系统仿真的主程序 函数main()

    dataRate=1000;
    chipRate=63*dataRate;
    fc=chipRate*2;
    fs=fc*8;
    N=1000;
    c=63;
    b1=[1,0,0,0,0,1,1];
    b2=[1,1,0,0,1,1,1];
    b3=[1,1,0,1,1,0,1];
    snr=-20:2:-10;
    for i=1:length(snr);
        %产生信号
        signal1=information(N);
        signal2=information(N);
        signal3=information(N);
        %产生m码
        c1=genMseq(b1);
        c2=genMseq(b2);
        c3=genMseq(b3);
        %扩频
        dssignal1=dsss(signal1,c1);
        dssignal2=dsss(signal2,c2);
        dssignal3=dsss(signal3,c3);
        %调制
        [modusignal1]=modu(dssignal1,chipRate,fc, fs);
        [modusignal2]=modu(dssignal2,chipRate,fc, fs);
        [modusignal3]=modu(dssignal3,chipRate,fc, fs);
        %模拟多径衰落
        modusignal11=channels(modusignal1,snr(i),2);
        modusignal22=channels(modusignal2,snr(i),3);
        modusignal33=channels(modusignal3,snr(i),4);
        %混合接收
        receivesignal=modusignal11+modusignal22+modusignal33;
        %解扩
        dedssignal1=dedsss(receivesignal,c1,chipRate,fs);
        dedssignal2=dedsss(receivesignal,c2,chipRate,fs);
        dedssignal3=dedsss(receivesignal,c3,chipRate,fs);
        %解调
        demoSignal1=demodu(dedssignal1,dataRate,fc,fs);
        demoSignal2=demodu(dedssignal2,dataRate,fc,fs);
        demoSignal3=demodu(dedssignal3,dataRate,fc,fs);
        %求误码率
        err_bit1(i)=sum(demoSignal1~=signal1)/N;
        err_bit2(i)=sum(demoSignal2~=signal2)/N;
        err_bit3(i)=sum(demoSignal3~=signal3)/N;
    end
    figure;
    semilogy(snr,err_bit1,'-s',snr,err_bit2,'-h',snr,err_bit3,'-*');
    legend('用户1','用户2','用户3');
    xlabel('信噪比');
    ylabel('误比特率');
    

    四、仿真结果比较

    模拟信号的多径传输,用户1经过了2径衰落,用户2经过了3径衰落,用户3经过了4径衰落仿真结果:
    在这里插入图片描述
    结论:由上图可以知道,用户1通过2径衰落、用户2通过3径衰落,用户3通过4径衰落,随着信噪比的增加,用户的误比特率会降低,信噪比越大,误比特率越低也可看见用户2在≥-14的性躁比时,后面没有显示出来,表示后面没有任何错误的比特;其次,也能知道每个用户在很低的性躁比下误比特率也还可以,在性躁比达到-10时的误比特率几乎快接近于0。因此,扩频通信扩频码特性确实能够以很低的功率进行传播来实现很小的误比特率。由于信号是随机产生,接收信号是PDP构成的,PDP不同,接收信号不一样,故每次的运行结果都不一样,但是并不影响最后的误比特率与信噪比的整体关系。


    • 加油!💚在这里插入图片描述

    展开全文
  • matlab实现扩频通信系统的多用户数据传输

    千次阅读 热门讨论 2020-05-14 22:02:19
    扩频码要求采用周期为63(或127)的m序列; ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收; ④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,...
  • 无线扩频接收机比特边沿同步算法,李红军,陈萍,扩频通信体制在移动通信、卫星导航和测控通信等很多领域应用广泛。通信中当伪随机周期与比特长度不满足整数倍长度的情况下,
  • 该方法对到达的码元进行分段接收,利用接收下一段的时间处理之前接收的段,即1个PN码周期分成若干个通道时隙,每个时隙对之前接收的PN序列段与通道的本地PN进行快速滑动相关搜索。理论分析结果表明,在所需硬件...
  • 测距码就是伪随机噪声( pseudo random noise,PRN)码,也称作伪码,常作为扩频系统的扩频码,工程上常用一系列0或1组成的二进制序列码,按照一定的编码规则来产生伪噪声码。伪码具有确定性、周期性以及良好的自...
  • 为了实现直序扩频扩展的二元相移键控(DS-SS/EBPSK)调制的多址通信,研究了一种DS-SS/EBPSK调制的分多址实现方法。首先对DS-SS/EBPSK调制信号进行分析,公式化表述了DS-SS/EBPSK的调制过程,得到了可用于解扩和分多...
  • 一、伪随机序列PN的生成 伪随机序列有很多种,如m序列、Gold序列和正交Gold序列,其中m序列的构造及MATLAB生成方法见: ...Gold序列是用一对周期和速率均相同,但码字不同的m序列优选对模2加后得到的。优选对
  • 通过对直扩信号的载频估计、扩频码速率估计、扩频码周期估计、信息码速率估计等信号参数侦测算法,以及直扩信号的PN码捕获与跟踪、BPSK/QPSK信号解调、BCH/Viterbi译码等算法的实现,获得了相关测试结果,扩频码载频...
  • 该模型在每个比特周期内同时传输混沌信号、二进制数据信息与正交WALSH相结合的已调信息信号,通过正交WALSH区分上述两个信号。结果表明,在一定的信噪比和扩频因子条件下,正交WALSH的相关延迟-调频-差分混沌键控...
  • 针对已有扩频码估计方法计算复杂度高的问题,提出一种基于平均内积和相关判决函数的扩频码估计方法.首先采用窗长为伪码周期的滑动窗函数将信号划分为不重叠数据段,以各分段数据为行向量依次排列构造数据矩阵,并根据...
  • 移动通信-抗衰落技术

    2020-12-27 20:37:31
    文章目录分集接收技术分集接收技术的基本概念分集技术宏观分集微观分集...码扩频技术扩频的理论根据扩频通信的主要性能指标扩频处理增益干扰容限扩频通信的优点伪随机序列m序列m序列的性质相关特性m序列的自相关函数...
  • 为了设计一种基于这种扩频方式的基带信号源,从并行组合扩频技术的原理入手,结合伪随机生成、并扩调制以及载波调制几方面给出了一种并扩基带信号源的设计方案,通过Matlab仿真验证该方案的正确性,并在自主开发的...
  • m序列的原理以及verilog实现

    万次阅读 热门讨论 2017-09-21 19:19:16
    定义 ...在通信领域有着广泛的应用,如扩频通信、卫星通信的分多址(CDMA),数字数据中的加密、加扰、同步、误码率测量等领域。 线性反馈移位寄存器原理方框图 与产生m序列有关的3个方程
  • M序列是广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的分多址,数字数据中的加密、加扰、同步、误码率测量等领域。 在所有的伪随机序列中,M序列是最重要、最基本的一种伪随机序
  • GPS学习记录

    2018-03-16 17:13:16
    1s —— 50bit 数据1s —— 1.023*10e6 C/A1s —— 1575.42*10e6 载波因此1ms —— 1/20bit 数据1ms —— 1023 个 C/A(恰好一个周期)所以1bit数据就是20组C/A一、关于导航电文1.伪码 伪码是伪随机,是...
  • LoRaWAN优点

    千次阅读 2018-04-25 10:16:35
    目前,相对于NB-IoT,LoRa是当前最成熟、稳定的窄带物联网通讯技术,其自由组网的私有... 得益于扩频调制和前向纠错的增益,LoRa取得大约2倍蜂窝技术(手机)的通信距离。长距离的“优秀基因”,使LoRaWAN可以...
  • 2.1 周期信号的傅里叶级数 2.2 信号的傅里叶变换及其性质 2.3 信号的希伯特变换及其性质 练习题 第3章 随机过程 3.1 随机变量及其分布 3.2 蒙特卡罗仿真算法 3.3 信息论初步 3.4 平衡随机过程 3.5 平衡随机过程经...
  • simulink m序列仿真(待验证)

    千次阅读 2018-11-11 09:47:14
    要求 产出m序列的电路的级数是5 介绍相关的原理 建立仿真模型(仿真框图) 搭建仿真模型,并给出模块参数 ...在通信领域有着广泛的应用,如扩频通信、卫星通信的分多址(CDMA),数字数据中的加密、加扰、同步、...
  • 码元周期(即码元宽度):是指传输(0或1二进制编码)码元所占的时间宽度。 码片的概念: 一个数据信号(如逻辑1或0)通常要用多个编码信号来进行...要理解“码片”一词,先需要对扩频通信有所了解,我们的信息,每一

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

周期扩频码