function x=MyIFFT_TB(y)
%MyIFFT_TB:My Inverse Fast Fourier Transform Time Based
%按时间抽取基2-傅里叶逆变换算法
%input:
% y -- 傅里叶正变换结果,1*N的向量
%output:
% x -- 逆变换结果,1*N的向量
%参考文献:
% http://www.doczj.com/doc/415f0f0976c66137ee0619b6.html/view/fea1e985b9d528ea81c779ee.html
N=length(y);
x=conj(y); %求共轭
x=MyFFT_TB(x);%求FFT
x=conj(x);%求共轭
x=x./N;%除以N
end
%% 内嵌函数====================================================== function y=MyFFT_TB(x,n)
%MYFFT_TB:My Fast Fourier Transform Time Based
%按时间抽取基2-fft算法
%input:
% x -- 输入的一维样本
% n -- 变换长度,缺省时n=length(x) 当n小于x数据长度时,x数据被截断到第n个数据% 当n大于时,x数据在尾部补0直到x 含n个数据
%output:
% y -- 1*n的向量,快速傅里叶变换结果
%variable define:
% N -- 一维数据x的长度
% xtem -- 临时储存x数据用
% m,M -- 对N进行分解N=2^m*M,M为不能被2整除的整数
% two_m -- 2^m
% adr -- 变址,1*N的向量
% l -- 当前蝶形运算的级数
% W -- 长为N/2的向量,记录W(0,N),W(1,N),...W(N/2-1,N)
% d -- 蝶形运算两点间距离
% t -- 第l级蝶形运算含有的奇偶数组的个数
% mul -- 标量,乘数
% ind1,ind2 -- 标量,下标
% tem -- 标量,用于临时储存
%% 输入参数个数检查
msg=nargchk(1,2,nargin);
error(msg);