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

📄 walsh.m

📁 任意维Walsh码(包含①直积法②系数(二进制)相乘法)的产生
💻 M
字号:
function walsh(m)%m阶阿达玛矩阵求解
% m=m/2;%直积法
% k=[+1 +1;+1 -1];
% c=(log(m)/log(2));
% for i=1:c
%     k=[k k;k -k];
% end
% z=k;%阿达玛矩阵表示

%WALSH码系数相乘法,加入直积法后变为m=m*2
long=length(bz(m-1));
h=zeros(m,long);
for i=1:m
    zj=bz(i-1);    
    h(i,long-length(zj)+1:long)=zj;
end
h=mod(h*h',2);
hae=h;%阿达玛矩阵表示二进制表示
[i,j]=find(h==0);
num=1;
for b=1:(m)
    for a=1:(m)        
        if (a==i(num) && b==j(num))
            h(a,b)=1;
            if num<length(i)                
               num=num+1;
            end
        else
            h(a,b)=-1;           
        end
    end
end
ha=h;%阿达玛矩阵表示
end

figure;
w=64*m;%拓展宽度
tu=ones(m,w);
t=ones(1,w);
for i=1:m
    for j=1:m
    tu(i,1+(j-1)*w/m:j*w/m)=ha(i,j);
    end
end
subplot
% for i=2:5
%     plot3((1:w)/64,i*t,tu(i,:));%画出第二行~第五行图形
%     hold on;
% end
% grid on;
% axis([1/64 w/64 2 5 -1 1]);
% xlabel('Walsh码的时域图');


figure;
ss=ha*ha';
meshz(ss);%plot3(x,y,z,s)
axis([1 m 1 m 1 m ]);
xlabel('Walsh码的相关性');

function f=bz(num)%十进制转换为二进制
if num==0
    f=0;
else
n=1;   
while num>0
  if n==1
      f=mod(num,2);
      n=0;
  else      
      f=[mod(num,2) f];
  end
  num=(num-mod(num,2))/2;  
end
end

⌨️ 快捷键说明

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