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

📄 costas.m

📁 matlab中实现雷达信号处理。 matlab中实现雷达信号处理。
💻 M
字号:
function positions=costas(N)% calculate the positions/frequencies of a costas array with size NxN% for a given N there are N! posible frequency-time arrays (sequences)% there can be more then one costas sequence for any value of N.% the sequences are calculated folowing welch construnction%% type 1 - when N=p-1 and p is an odd prime (N=2,4,6,10,12,16,...)%% If j=0,1,2,..,p-2 and i=1,2,3,...,p-1 are the row and column indexes% then a dot is marked in the costas array iff i=alfa^j where alfa is% a primitive root of GF(p)%% Type 2 - obtained from type 1 by deleting the first row and first% column from the Type 1 array. (N=p-2=1,3,5,9,11,15,...)%% Type 3 - when alfa=2 (2 is a primitive element of GF(p)). deleting the two % first rows and columns produces a costas array. In this case N=p-3=2,4,8,10,14,...%% check if type 1 welch construction can be applied to Nindex=0;if (isprime(N+1))*(rem(N+1,2)==1),   % calcualte costas array using welch construction type 1   p=N+1;   % check primitive elements is GF(p)   isprimitive=[0 ones(1,p-2)];   e_pow_n=ones(p-1,p-1);   for e=2:p-1,      for idx=[2:p-1],         e_pow_n(e,idx)=mod(e*e_pow_n(e,idx-1),p);         isprimitive(e)=isprimitive(e)*(e_pow_n(e,idx)~=1);      end   end   % loop over all posible primitive elements of GF(p)   for pr=find(isprimitive==1),      index=index+1;      positions(index,1:N)=e_pow_n(pr,1:p-1);   endelseif (isprime(N+2))*(rem(N+2,2)==1),   % calcualte costas array using welch construnction type 2   p=N+2;   % check primitive elements is GF(p)   isprimitive=[0 ones(1,p-2)];   e_pow_n=ones(p-1,p-1);   for e=2:p-1,      for idx=[2:p-1],         e_pow_n(e,idx)=mod(e*e_pow_n(e,idx-1),p);         isprimitive(e)=isprimitive(e)*(e_pow_n(e,idx)~=1);      end   end   % loop over all posible primitive elements of GF(p)   for pr=find(isprimitive==1),      index=index+1;      positions(index,1:N)=e_pow_n(pr,2:p-1)-1;   endelseif (isprime(N+3))*(rem(N+3,2)==1),   % calcualte costas array using welch construnction type 3   p=N+3;   % check 2 is primitive   isprimitive=[0 zeros(1,p-2)];   e_pow_n=ones(p-1,p-1);   for e=2,      for idx=[2:p-1],         e_pow_n(e,idx)=mod(e*e_pow_n(e,idx-1),p);         isprimitive(e)=isprimitive(e)*(e_pow_n(e,idx)~=1);      end   end   for pr=find(isprimitive==1),      index=index+1;     	positions(index,1:N)=e_pow_n(pr,3:p-1)-2;	endend   

⌨️ 快捷键说明

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