扩频通信基于matlab直接序列扩频系统仿真含Matlab源码 1529期

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩频通信基于matlab直接序列扩频系统仿真含Matlab源码 1529期相关的知识,希望对你有一定的参考价值。

一、获取代码方式(附课程作业报告和题目内容)

获取代码方式1:
完整代码已上传我的资源:【扩频通信】基于matlab直接序列扩频系统仿真【含Matlab源码 1529期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、简介







三、部分源代码

clc;
clear;
close all;
 
encod1=round(rand(1,5000));   %产生5000个随机码元
encod1=2*encod1-1;           %码序列变为双极性  
L=length(encod1);
  
  
for m=128             %扩频因子128倍
 
       
    a=repmat(encod1,1,m);           
    b=(reshape(a,L,m)).';       
    x=reshape(b,1,L*m);       
    len=length(x);   
   
              
                      %产生M序列
  g=19;state=11;N=len;
   
  gen=dec2bin(g)-48;
  M=length(gen);
  curState=dec2bin(state,M-1)-48;
for k=1:N
    A(k)=curState(M-1);
    a=rem(sum(gen(2:end).*curState),2);
    curState=[a curState(1:M-2)];
end
 
  x_code=sign(A-0.5);
  %Ex 1 绘制M自相关
  ac_x=conv(x_code,x_code(len:-1:1))/len;
  figure;plot(ac_x(len:end));grid on;
  axis([0 63 -0.3 1.2]);title('m序列自相关序列')
   
  msout=x.* x_code;          % 已扩频信号
  
   
% QPSK 调制,2bit信息映射到一个星座点,并对输出符号归一化
N=length(msout);
msout=(msout+1)/2;
lrem=rem(N,2);
if lrem~=0
    msout(N+1:N+(2-lrem))=0;
end
NN=length(msout);
qam_sig = zeros(1,NN/2);
d = sqrt(2)/2; %所采用的星座图进行能量归一化
 
GrayMap = [d -d]; %对应的I,Q比特为[0 1]
for i1=0:2:NN-1   %4bit为一组
    site_I = msout(i1+1);%每组中的第一比特为I分量
    site_Q = msout(i1+2);%每组中的第二比特为Q分量
    qam_sig(i1/2+1) = GrayMap(site_I+1)+1i*GrayMap(site_Q+1);
end
   
   
   
   
  for condition=1:4  
   
  %信道噪声
  for SNR1=-20:-10
  
    Eb = 1;  
    N0= Eb/(10^((SNR1)/10));
    sig=qam_sig+sqrt(N0/2)*randn(size(qam_sig))+sqrt(N0/2)*randn(size(qam_sig))*1i;
     
   %加单音、多音、部分带干扰 
   switch condition
       case 1
       case 2
       band=1;%控制干扰带宽
    for jj=1:L
 
        for kk=1:band
        interfere=2*rand(1)-1;
        sig(jj*(m/2)-(m/2)+kk)=sqrt(2)/2*interfere+sqrt(2)/2*1i*interfere;
        end
         
    end
       case 3
       band=5;%控制干扰带宽
    for jj=1:L
 
        for kk=1:band
        interfere=2*rand(1)-1;
        sig(jj*(m/2)-(m/2)+kk)=sqrt(2)/2*interfere+sqrt(2)/2*1i*interfere;
        end
         
    end
       case 4       
       band=15;%控制干扰带宽
    for jj=1:L
 
        for kk=1:band
        interfere=2*rand(1)-1;
        sig(jj*(m/2)-(m/2)+kk)=sqrt(2)/2*interfere+sqrt(2)/2*1i*interfere;
        end
         
    end
   end
    

四、运行结果


五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

以上是关于扩频通信基于matlab直接序列扩频系统仿真含Matlab源码 1529期的主要内容,如果未能解决你的问题,请参考以下文章

扩频通信基于matlab扩频通信Gold序列特性仿真含Matlab源码 1522期

扩频通信基于matlab GUI扩频通信系统仿真(带面板)含Matlab源码 1587期

扩频通信基于matlab扩频通信系统仿真含Matlab源码 968期

现代通信基于matlab直接序列扩频通信含Matlab源码 1004期

MATLAB教程案例4直接序列扩频通信系统的MATLAB仿真

扩频通信基于matlab扩频+解扩仿真含Matlab源码 1495期