qpsk.txt

来自「基于matlab的qpsk调制仿真 源代码」· 文本 代码 · 共 99 行

TXT
99
字号
 for i=1:N_num    
     while j<N_sample*N_num
         j=j+1;
         if d(i)>0.5
        d(i)=1;data(j)=d(i);
   else d(i)=-1;data(j)=d(i);
         end
       k=rem(j,N_sample);
       if k==0
           break;
       end
    end
 end
 for i=1:N_num
     b=rem(i,2);
    if b==0
        d1(i-1)=d(i-1);d1(i)=d(i-1);
        d2(i-1)=d(i);d2(i)=d(i);
     end
 end
 j=0;
  for i=1:N_num
     while j<N_sample*N_num
          j=j+1;
        data_I(j)=d1(i);
        data_Q(j)=d2(i);
        k=rem(j,N_sample);
       if k==0
           break;
       end
    end
  end
  w=pi/5;n=[1:N_sample*N_num];l=0.05:0.05:N_num;
  x=cos(w.*n);y=-sin(w.*n); 
 datam_I=data_I.*x;
 datam_Q=data_Q.*y;
 data_m=datam_I+datam_Q;


 datadem1=data_m.*x;
 datadem2=data_m.*y;
 
 [b,a]=butter(8,1/20);
 f1=filter(b,a,datadem1);
 f2=filter(b,a,datadem2);

j=1;
for i=1:N_sample*N_num
    g=rem(i,40);
    if g==0
        h1(j)=f1(i);h1(j+1)=f1(i);
        h2(j)=f2(i);h2(j+1)=f2(i);
        j=j+2;
    end  
end
for i=1:N_num
    if h1(i)>0
        h1(i)=1;
    else h1(i)=-1;
    end
    if h2(i)>0
        h2(i)=1;
    else h2(i)=-1;
    end
end
for i=1:N_num
    b=rem(i,2);
    if b==1
      dem(i)=h1(i);
    else dem(i)=h2(i);
    end
end

j=0;
  for i=1:N_num
     while j<N_sample*N_num
          j=j+1;
       dataout(j)=dem(i);
       if dataout(j)==-1
           dataout(j)=0;
       end
        k=rem(j,N_sample);
       if k==0
           break;
       end
    end
  end
 
ber=0;
for i=1:N_num
     if dem(i)==d(i)
         ber=ber;
     else ber=ber+1;
     end
end
ber=ber/N_num;
ber

⌨️ 快捷键说明

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