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

📄 pcode.m

📁 shangjiao6.m为主程序;pcode.m为产生伪码的子程序;bu.m为进行补0的子程序(为了使得进行FFT和IFFT的点数满足2的N次方个) c_b.m为数据进行串并转换的子程序。
💻 M
字号:
%pcode period = 2^m-1
%pcode period number = n
function y=pcode(m,n)
close all;
clc;

b=0;
a1=0;
a2=0;
if((m<2)|(m>22))==1
   yy=sprintf('%s','The current programe is unvalid for your need!!');
else  
    a=eye(1,m);     %初始化
    y=zeros(1,(2^m-1));
    for i=1:1:(2^m-1)   
       y(i) = a(m);
       b = a(m);
       a(2:m)=a(1:(m-1));       
       switch(m)
         case 2
            a(1)=xor(a(1),b);  %011  
         case 3
            a(1)=xor(a(1),b);  %0100111
         case 4
            a(1)=xor(a(1),b);  %
         case 5 
            a(1)=xor(xor(xor(a(1),b),a(2)),a(4));%xor(xor(xor(a(2),b),a(3)),a(4));%xor(a(3),b);
         case 6
            a(1)=xor(a(1),b);
         case 7 
            a(1)=xor(a(1),b);
         case 8
            a(1)=xor(xor(xor(xor(xor(a(2),b),a(5)),a(6)),a(7)),a(1));%xor(xor(xor(a(1),b),a(6)),a(7));
        case 9
            a(1)=xor(a(5),b);
         case 10
            a(1)=xor(a(8),b);%4okokok  or 8okok
         case 11
            a(1)=xor(a(3),b);  %okok
         case 12
            a(1)=xor(xor(xor(xor(xor(a(11),b),a(8)),a(7)),a(6)),a(3));%none bad
         case 13
            a(1)=xor(a(7),b);  %bad
         case 14
            a(1)=xor(a(4),b);%4  or 8  %bad
         case 15
            a(1)=xor(a(1),b); %xor(a(1),b) okokok
         case 16
            a(1)=xor(xor(xor(a(2),b),a(3)),a(4));%4  or 8  bad
         case 17
            a(1)=xor(a(1),b);  %bad
         case 18
            a(1)=xor(a(1),b);%4  or 8 bad
         case 19
            a(1)=xor(a(1),b); %bad
         case 20
            a(1)=xor(a(3),b);%4  or 8 bad
         case 21
            a(1)=xor(a(1),b);  %bad
         case 22
            a(1)=xor(a(1),b);%4  or 8 okok
       end
    end
end
z=0;
% z=1*y;
z = 2*y-1;%由非极性码转换为极性码
% %%%%%%%%%%%%%%%%%%%%%%求循环自相关%%%%%%%%%%%%%%%%%%%%%%
% y=z;
% mm=2^m-1;
% c=z(mm);
% z(2:mm)=z(1:mm-1);
% z(1)=c;
% tic;
% for k=1:10%(2*mm-1)   %2000 %(2*mm-1)%  100   %(2*mm-1)
%     r(k)=z*(y.');
%     c=z(mm);
%     z(2:mm)=z(1:mm-1);
%     z(1)=c;
% end
% tt=toc
% plot(r);
% axis([1 100 -5 mm]);  %[1 2500 -5 (2^m-1)]);%([1 150 -5 10]);%([1 (2*mm-1) -5 mm]);
% %%%%%%%%%%%%%%%%%%%%%%求循环自相关%%%%%%%%%%%%%%%%%%%%%%
y=z;
if (n>1)
        for k=1:1:n-1
            y=[y,z]; 
        end
end
clear a;
clear b;
clear a1;
clear a2;

⌨️ 快捷键说明

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