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

📄 fft.m

📁 matlab实现的hillbert和fft滤波器。适合初学数字信号处理的人学习。
💻 M
字号:
function fft(X1);

N1=length(X1);
t=0;
while N1>1
    N1=N1/2;
    t=t+1;
end

N1=length(X1);
for n=1:N1
    X(n)=X1(n);
end 

if 2^t>N1
    for n=N1+1:2^t
        X(n)=0;
    end
end

N=length(X);
LH=N/2;
J=LH;
N1=N-2;
for I=1:N1
    if I<J
        T=X(I+1);
        X(I+1)=X(J+1);
        X(J+1)=T;
    end
    
    K=LH;
    while(J>=K)
        J=J-K;
        if mod(K,2)==0
            K=K/2;
        else K=(K-1)/2;
        end
    end
    J=J+K;
end


M=log2(N);
for i=1:N
    rCf(i)=cos(2*pi*(i-1)/N);
    iCf(i)=sin(2*pi*(i-1)/N);
end

for L=1:M
    B=floor(pow2(1,L-1)+0.5);
    for J=0:B-1
        p=J*(floor(pow2(1,M-L)+0.5));
        for K=J:(floor(pow2(1,L)+0.5)):N-1
            rPartKB=real(X(K+B+1))*rCf(p+1)-imag(X(K+B+1))*iCf(p+1);
            iPartKB=imag(X(K+B+1))*rCf(p+1)+real(X(K+B+1))*iCf(p+1);
            X(K+B+1)=(real(X(K+1))-rPartKB)+sqrt(-1)*(imag(X(K+1))-iPartKB);
            X(K+1)=(real(X(K+1))+rPartKB)+sqrt(-1)*(imag(X(K+1))+iPartKB);
        end
    end
end

real(X)-sqrt(-1)*imag(X)
            


        

⌨️ 快捷键说明

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