?? pcode.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 + -