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

📄 ifft_self.m

📁 OFDM系统
💻 M
字号:
%这个IFFT完全是模仿FFT程序的,由于IFFT相对于FFT只是旋转因子exp(j*2*pi/le)的改变,
%所以只要把这部分改变,最终得到的序列除以1/N就得到IFFT结果,所以只要把FFT程序改变
%上面两部分就可以了。这里注释可以看FFT程序中的注释,程序的主体结构相同。
%--------------------------------------------------------------------------

function y = IFFT_self(x,M)

q = nextpow2(M);
N = 2^q;
if M<N
    x=[x,zeros(1,N-M)];
end

nv2=N/2;
nm1=N-1;
i=0;
p=0;
while i<nm1
    if i<p
        t=x(p+1);
        x(p+1)=x(i+1);
        x(i+1)=t;
    end
    k=nv2;
    while k<=p
        p=p-k;
        k=k/2;
    end
    p=p+k;
    i=i+1;
end

l=1;
m=log2(N);
while l<=m
    le=2^l;
    le1=le/2;
    u=1;
    w=exp(j*2*pi/le);                        %相对与FFT,这里的旋转因子要改变
    p=0;
    while p<le1;
        i=p;
        while i<N
            ip=i +le1;
            t=u*x(ip+1);
            x(ip+1)=x(i+1)-t;
            x(i+1)=t+x(i+1);
            i=i+le;
        end
        u=u*w;
        p=p+1;
    end
    l=l+1;
end
y = x/N;                                     %最后的结果要除以N得到输出序列

⌨️ 快捷键说明

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