快速傅里叶变换_蝶形运算_按频率抽取基2-fft算法_MATLAB代码.pdf
《快速傅里叶变换_蝶形运算_按频率抽取基2-fft算法_MATLAB代码.pdf》由会员分享,可在线阅读,更多相关《快速傅里叶变换_蝶形运算_按频率抽取基2-fft算法_MATLAB代码.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、function y=MyFFT_FB(x,n)%MYFFT_TB:My Fast Fourier Transform Frequency 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=2m*M,M 为不能被 2 整除的
2、整数%two_m-2m%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-标量,用于临时储存%参考文献:%81c 输入参数个数检查 msg=nargchk(1,2,nargin);error(msg);%输入数据截断或加 0 N=length(x);if nargin=2 if Nn%加 0 xtem=x;x=zeros(1,n);x(1:N)=xtem;N=n;else%截断 x
3、tem=x;x=xtem(1:n);N=n;end end%对 N 进行分解 N=2m*M m,M=factorize(N);two_m=N/M;%变换 if m=0%如果 N 可以被 2 整除 adr=address(m,M,two_m);y=x;%蝶形运算级数 l=m 时%计算 W 向量 W=exp(-2*pi*i*(0:N/2-1)/N);%蝶形运算 d=N/2;t=1;for l=1:m%加 for ii=0:t-1 ind1=ii*2*d+1;ind2=ind1+d;for r=0:d-1 tem=y(ind1)+y(ind2);y(ind2)=y(ind1)-y(ind2);y(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 傅里叶变换 蝶形 运算 频率 抽取 fft 算法 _MATLAB 代码
限制150内