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

📄 lsjfft1.asv

📁 用MATLAB编写的FFT程序
💻 ASV
字号:
function   X=lsjfft1(x);%x为输入的序列
M=nextpow2(length(x));%求大于等于x长度的2的最小次幂
N=pow2(M);
if length(x)<N;
    x=[x,zeros(1,N-length(x))];%若x的长度小于N,补N-length(x)个0
          end
rev_order=bin2dec(fliplr(dec2bin([1:N]-1,M)))+1;%求数列1:N的倒序,dec2bin()十进制转换为二进制,
                                                ;%bin2dec()二进制转换为十进制,fliplr()
X=x(rev_order);  % 将x倒序后作为输入X
for L=1:M
    B=2^(L-1);
    W=exp(-j*2*pi/N);
    for J=1:B
        p=2^(M-L)*(J-1);
          if L=1
              for K=J:2^L:N
              W=W^p;
              X(K)=X(K)+X(K+B)*W;
              X(K+B)=X(K)-X(K+B)*W;
              end
          end
        if L=2
          if J=1
            for K=0:4:4
              W=W^p;
              X(K)=X(K)+X(K+B)*W;
              X(K+B)=X(K)-X(K+B)*W;
            end
          end
          if J=2
            for K=1:4:5
               W=W^p;
               X(K)=X(K)+X(K+B)*W;
               X(K+B)=X(K)-X(K+B)*W;
            end
          end
    end
end

⌨️ 快捷键说明

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