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

📄 c22.m

📁 数值模拟实验
💻 M
字号:
function D=c22(k)
W=zeros(1,2^k);
C=zeros(1,2^k/2);
S=zeros(1,2^k/2);
for l=1:2^k/2
    if l==1,
        C(l)=1;
        S(l)=0;
    else if l==2,
            C(l)=cos(2*pi/(2^k));
            S(l)=sin(2*pi/(2^k));
        else
            C(l)=C(2)*C(l-1)-S(2)*S(l-1);
            S(l)=S(2)*C(l-1)+C(2)*S(l-1);
        end
    end
    W(l)=C(l)+i*S(l);
    W(l+2^(k-1))=-W(l);
end
B_0=c21(k);  
n1=zeros(1,2^k);  
Order=zeros(1,k);
for n2=1:2^k
    n3=n2-1;
    for h=1:k   %change the order
        if n3>=0
           Order(h)=rem(n3,2);
           n3=(n3-Order(h))/2;
           n1(n2)=n1(n2)+2^(k-h)*Order(h);   %changed  
        end
    end
end
%%%%%
B=zeros(2^k,k+1);
for m=1:2^k
    B(m,1)=B_0(n1(m)+1);
end
for row=2:k+1
    rr=row-1;                  %
    for list=1:2^k 
        order1=n1(list);  %
        for tt=1:(k-rr+1)
            rea=rem(order1,2);
            order1=(order1-rea)/2;
        end
        order2=2^(k-rr)*rem((list-1),2^rr)+1;      %
        if  rea==1
            value=n1(list)-2^(k-rr);
            for n4=1:2^k
                if n1(n4)==value
                    n5=n4;
                end
            end
            B(rr*2^k+list)=B((rr-1)*2^k+list)*W(order2)+B((rr-1)*2^k+n5);
        else  value=n1(list)+2^(k-rr);
            for n4=1:2^k
                if n1(n4)==value
                    n5=n4;
                end
            end
            B(rr*2^k+list)=B((rr-1)*2^k+n5)*W(order2)+B((rr-1)*2^k+list);
        end
    end
end
D=B(:,k+1);

⌨️ 快捷键说明

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