运行提示说最后那个end那出错。
谢谢~
%Gold码的MATLAB程序
m(1)=input('x^4+x+1=');
m(2)=input('x^5+x^2+1=');
t(1)=m(1);
t(2)=m(2);
n=(1:2);
%下面是判断输入的本原多项式是几阶的
for i=1:2
if m(i)<13
n(i)=2;
elseif m(i)<23
n(i)=3;
else if m(i)<45
n(i)=4;
else if m(i)<103
n(i)=5;
elseif m(i)<211
n(i)=6;
else if m(i)<435
n(i)=7;
else if m(i)<1021
n(i)=8;
else if m(i)<2011
n(i)=9;
else if m(i)<4005
n(i)=10;
else if m(i)<10123
n(i)=11;
else if m(i)<20033
n(i)=12;
else if m(i)<42103
n(i)=13;
else if m(i)<100003
n(i)=14;
else if m(i)<210013
n(i)=15;
else if m(i)<400011
n(i)=16;
else if m(i)<1000201
n(i)=17;
else if m(i)<2000047
n(i)=18;
else
disp('input number out of the bourn(i)');
end
coereg=1*(n(i)+1); %初始化寄存器的系数
coereg(n(i)+1)=1; %最高一阶的寄存器系数一定为1
m(i)=m(i)-2^(n(I))*1.25^floor((n(i))/3);
for k=1:n-1
coereg(k+1)=floor(m(i)/(2^(n(i)-k)*1.25^floor((n(i)-k)/3)));
m(i)=m(i)-2^(n(i)-k)*1.25^floor((n(i)-k)/3)*coereg(k+1);
end
reg=floor((1:n(i))/n(i));%初始化寄存器的状态
pnseq=0*(12^n(i)-1);
for k=(12^n(i)-2)
a=0;
for j=1*(n(I)-1)
a=reg(j)*coereg(j)+a;
reg(j)=reg(j+1);
end
reg(n(i))=reg(n(i))*coereg(n(i))+a;
reg(n(i))=reg(n(i))-2*floor(reg(n(i))/2);
pnseq(k+1)=reg(1);
end
%下面是产生两个PN序列
if i<2
pnseq1=2*pnseq-1;
else
pnseq2=2*pnseq-1;
end
end
a=n(1)-n(2);
if a==0
disp('Input PN codes have same length!');
a
break
quit;
end
I=2^max(n)-1;
%下面是开始找Gold码
gl=input('3');%输入一个PN码的偏移量
for i=1:1
Gold1(i)=pnseq1(i)*pnseq2(ceil(rem((i+g1),(1+0.0005))));
end