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

📄 goldcode.m

📁 pn和gold码产生的MATLAB程序
💻 M
字号:
function seq=goldcode(polynoms,num,offset,pnlen,pattern)
% M series generator
% parameters:
% polynom - generation polynomial,2×[x(m),x(m-1)...x(1)]
%           example:pn=[1,0,1,0,0;1,1,1,0,1];
% offset - the M series offset from the beginning of a period
% pnlen - pn length to be generated
% pattern - 0:[0,1],1:[-1,1]

global goldseries; 

[two,m] = size(polynoms);
period = 2^m -1;

if (num > 2^m) 
    error('numt must be 0~%d',2^m);
end;

existed = existgold;
if existed == 0
    ps = [];
    p1 = pnc(polynoms(1,:),2*period);
    ps = [ps;p1(1:period)];
    p2 = pnc(polynoms(2,:),2*period);
    ps = [ps;p2(1:period)];
    for off=1:period
        p = p2(off:period+off-1)+p1(1:period);
        p = p - floor(p/2)*2;
        ps = [ps;p];
    end;
    goldseries = ps;  
end;

seq = zeros(1,pnlen);
for i=0:pnlen-1
    ii = offset + i;
    ii = ii - period*floor(ii/period);
    seq(i+1) = goldseries(num,ii+1);
end;
if pattern==1
   seq = 2*seq-1;
end;    

return;
    


return;

function  e = existgold( )
global goldseries;
if(length(goldseries) > 4)  % existed global gold series
    e = 1; % gold series has been generated
else
    e = 0;
end;

return;
    
function  seq = pnc(polynom,pnlen) 
m = length(polynom);
period= 2^m -1;
seq  = [1,zeros(1,pnlen-1)];
count= pnlen;
tmpseq = [1,zeros(1,count-1)];% 初始输出为[1000..0]
for i=m+1:count
   tmp = tmpseq(i-m:i-1)*(polynom');
   tmpseq(i) = tmp - floor(tmp./2)*2; % mod2
end;
seq = tmpseq(1:end);
return;

⌨️ 快捷键说明

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