fftsp.m

来自「matlab code for rabix 2 fft algorithm」· M 代码 · 共 57 行

M
57
字号
%
% Computes the fft of vector X 
% Using split-radix FFT algorithm, time decimation Programmed by
% F.PATIN aka YOV408
%


function [Y] = fftsp(X)

N = length(X);

if (N==1)
    Y = X;
    return;
end;    

if (N==2)
    Y(1) = X(1)+X(2);
    Y(2) = -X(1)+X(2);    
    return;
end;  


if(rem(N,4)~=0)
    return;
else
        
    index = 1;
    for j=1:N/4
        
        y1(j) = X(4*j-3);
        y3(j) = X(4*j-1);
        y02(index) = X(4*j-2);
        index=index+1;
        y02(index) = X(4*j);
        index=index+1;
    
    end
    
    fft11 = fftsp(y1);
    fft33 = fftsp(y3);
    fft02 = fftsp(y02);
    
    for k=1:N/4
     
        Y(k) = fft02(k) + exp(-2*pi*i*(k-1)/N) * fft33(k) + exp(-6*pi*i*(k-1)/N) * fft11(k);
        Y(k+N/4) = fft02(k+N/4) + exp(-2*pi*i*((k+N/4)-1)/N) * fft33(k) + exp(-6*pi*i*((k+N/4)-1)/N) * fft11(k);
        Y(k+N/2) = fft02(k) + exp(-2*pi*i*((k+N/2)-1)/N) * fft33(k) + exp(-6*pi*i*((k+N/2)-1)/N) * fft11(k);
        Y(k+3*N/4) = fft02(k+N/4) + exp(-2*pi*i*((k+3*N/4)-1)/N) * fft33(k) + exp(-6*pi*i*((k+3*N/4)-1)/N) * fft11(k);
                
    end
    
    %disp(Y);
    
end;

end;

⌨️ 快捷键说明

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