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

📄 jb6.m

📁 本程序为CCK调制的MATLAB仿真程序
💻 M
字号:
%cck调制之符号之间相位的变化
M=80;
fb=6.4e+4;       %二进制码元频率 ,即相应的四进制码元速率。基带带宽B=1/Tb=3.2e+4;
fc=3.2e+5;       %载波频率
Tc=1/fc;         %载波周期
Tb=1/fb;         %码元速率
fs=1.28e+6;      %采样频率
N=10;            %1个码元周期采样10个点    
K=2;             %二次内插
id=sqrt(-1);
x=randint(1,M);  %随机产生的信息
%x=[1,1,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1];
%M=24
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%QDPSK,QPSK编码%%%%%%%%%%%%%%%%%%
ref=0;                                     %参考相位      
for i=1:8:M
    for j=3:2:8                      
       if(x(i-1+j)==0&x(i-1+j+1)==0)       %creat the phase of Q2,Q3,Q4
        z((j+1)/2)=0;
       elseif(x(i-1+j)==0&x(i-1+j+1)==1)
        z((j+1)/2)=pi/2;
       elseif(x(i-1+j)==1&x(i-1+j+1)==1)
        z((j+1)/2)=pi;
       else  z((j+1)/2)=-pi/2;
       end 
     end
        j=1;
        if(x(i-1+j)==0&x(i-1+j+1)==0)       %DQPSK产生Q1
            z((j+1)/2)=0+ref;
        elseif(x(i-1+j)==0&x(i-1+j+1)==1)
        z((j+1)/2)=pi/2+ref;
        elseif(x(i-1+j)==1&x(i-1+j+1)==1)
        z((j+1)/2)=pi+ref;
        else  z((j+1)/2)=-pi/2+ref;
        end 
        ref=z((j+1)/2);  
       Ik1(i-1+1)=z(1)+z(2)+z(3)+z(4);
       Ik1(i-1+2)=z(1)+z(3)+z(4);
       Ik1(i-1+3)=z(1)+z(2)+z(4);
       Ik1(i-1+4)=z(1)+z(4)+pi;
       Ik1(i-1+5)=z(1)+z(2)+z(3);
       Ik1(i-1+6)=z(1)+z(3);
       Ik1(i-1+7)=z(1)+z(2)+pi;
       Ik1(i-1+8)=z(1);
   end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生同相分量和正交分量%%%%%%%%%%%%%%%%%%%%%%%%%%
   Ik(1)=1;
   Qk(1)=0;
   for i=2:M+1
       Ik(i)=cos(Ik1(i-1));
       Qk(i)=sin(Ik1(i-1));
   end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%波形形成%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  t=-5*Tb:Tb/10:5*Tb;                 %取11个点
  for i=1:length(t)
        if(t(i)==0)
            h(i)=1;
        elseif((1-9/4*t(i)^2/Tb^2)==0)
            h(i)=0.5;
        else   
        h(i)=sin(pi*t(i)/Tb)/(pi*t(i)/Tb)*(cos(3/4*pi*t(i)/Tb)/(1-9/4*t(i)^2/Tb^2));
        end
  end
  Uk=zeros(1,(M+1)*N+1);
  Vk=zeros(1,(M+1)*N+1);
  for i=1:M+1
      Uk((i-1)*N+N/2+1)=Ik(i);
      Vk((i-1)*N+N/2+1)=Qk(i);
   end  
   Uk1=zeros(1,(M+1)*N+length(t));
   Uk1=conv(Uk,h);
   Uk2=Uk1((length(t)+1)/2:(length(t)+1)/2+(M+1)*N);
   Vk1=conv(Vk,h);
   Vk2=Vk1((length(t)+1)/2:(length(t)+1)/2+(M+1)*N);
   Uk3=interp(Uk2,K);
   Vk3=interp(Vk2,K);
   Uk4=Uk3(1:length(Uk3)-K+1);
   Vk4=Vk3(1:length(Vk3)-K+1);
   L=length(Vk4);
    t=0:Tc/4:(L-1)*Tc/4;
    Isend=cos(2*pi*fc*t).*Uk4;
    Qsend=sin(2*pi*fc*t).*Vk4;
    y=Isend-Qsend; 
    plot(Uk1);
    hold on ;
    plot(Vk1);
    pause(1);
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%中频加噪声%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%下变频%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    t=0:Tc/4:(L-1)*Tc/4;
    Ireceive1=y.*cos(2*pi*fc*t);
    Qreceive1=-y.*sin(2*pi*fc*t);
    n=64;
    f=[0,0.075,0.08,1];                              %低通滤波
    m=[1,1,0,0];
    b=firls(n,f,m);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相关求Q2,Q3,Q4%%%%%%%%%%%%%%%%%%%%%%%
    Ireceive2=conv(Ireceive1,b);
    Qreceive2=conv(Qreceive1,b);
    Ireceive3=Ireceive2(n/2:L+n/2-1);
    Qreceive3=Qreceive2(n/2:L+n/2-1);
    rsample1(1:M+1)=Ireceive3(N+1:N*K:N+1+N*K*M);
    rsample2(1:M+1)=Qreceive3(N+1:N*K:N+1+N*K*M);
    rsample3=rsample1(2:M+1);
    rsample4=rsample2(2:M+1);
    sample1=rsample1(1:8:M+1);      %新增
    sample2=rsample2(1:8:M+1);
    diff1=sample1+id*sample2;
    diff2=sample1-id*sample2;
    for i=1:M/8
        phase_Q1(i)=diff1(i+1)*diff2(i);
    end    
    psignal=rsample3+id*rsample4;
    [z,z1]=creat64;
    result=relate1(psignal,z,z1,phase_Q1);
    E=0;
    for i=1:M
        if(result(i)==x(i))
            E=E+1;
        end
    end
    stem(result);
    hold on;
    stem(x,'r');
    plot(x,'r');
    
    
    

⌨️ 快捷键说明

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