fft_frq.m

来自「共享一个FFT的仿真程序」· M 代码 · 共 30 行

M
30
字号
function y=fft_frq(x)
%  Frequency base FFT.    Base in binary
%---------------------------------
%             fft_frq.m
%---------------------------------
m=nextpow2(x);
N=2^m;
if length(x)<N                          %若的长度不是2的幂,补0到2的整数幂
    x=[x,zeros(1,N-length(x))];           
end
y=x;
for mm=m:-1:1
    Nmr=2^mm;
    u=1;
    WN=exp(-i*2*pi/Nmr);
    for j=1:Nmr:N
        for k=j:(j+Nmr/2-1)
            kp=k+Nmr/2;
            t=y(kp);
            y(kp)=(y(k)-t)*u;
            y(k)=y(k)+t;
            u=u*WN;
        end
        u=1;
    end
end
% the reverse Sort 1-N
nxd=bin2dec(fliplr(dec2bin([0:N-1],m)))+1;
% output correct sequence
y(nxd)=y;

⌨️ 快捷键说明

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