网站大量收购闲置独家精品文档,联系QQ:2885784924

基4fft原理及matlab实现.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基4FFT原理及MATLAB实现 一.时域抽取法基4FFT基本原理: 有限长序列x(n)的N点DFT为: Xk=n=0N-1 设序列x(n)长度为N,且满足N=4M,M为自然数,可把 x1(r)=x4r x2(r)=x4r+1 x3(r)=x x4(r)=x4r+3 则x(n)的DFT为X(k)=n=4rx(n)W =r=0 =r=0 因为:W 所以:原式可表示为: X(k)= =X1k+ 其中:X1k, X1k X2k X3k X4k 由于X1 WNm+lN=WNm 所以: X(k)=X1k+ X(k+ N/4)=X1k-j X(k+ 2N/4)=X1k- X(k+ 3N/4)=X1k+j 二.运算规律及编程思想: 1.按照上述分解法,再对x1r Xm+1k=Xmk 2.旋转因子WN P=J? 其中,L表示运算级数(L=1,2,…,M)(M=log4N)(J=0,1,2,…, k=k0+JN4M-L ,( 3.序列的倒序: 与基2FFT的倒序相似(参考《数字信号处理(第三版)》西安电子科技大学出版社第116页) 由于N=4M,因此顺序数可用M位4进制数( 第一次按最低位n0的0,1,2,3将x(n)分解为4组,第二次又按次低位n1的0,1,2,3值分别对上面所得的4组分组;以此类推,第M次按nM-1位分解,最后得到4进制倒序数。最终可以得到这样的规律:只要将顺序数(n 4.运算流程图: 开始 开始 N点采样数据x输入 N点采样数据x输入 对采样数据进行4进制逆序排序 对采样数据进行4进制逆序排序 For L=1:M For L=1:M F For J=0:4L-1-1 F For k0=0:N/(4M-L+1)-1 k=k k=k0+JN/4^(M-L); P=J?4^(M-L) 利用当前级数据X,递推公式计算出次级数据并存入临时数组temp,最后用临时数组中的次级数据覆盖X 利用当前级数据X,递推公式计算出次级数据并存入临时数组temp,最后用临时数组中的次级数据覆盖X 得到N点DFT的结果X 得到N点DFT的结果X clc; clear; a=0:255; x=sin(2*pi/3*a)+sin(2*pi/4*a)+sin(2*pi/5*a)+sin(2*pi/6*a); %测试信号 subplot(2,1,1),plot(x); axis([0 256 -3 3]),title( 时域信号波形); subplot(2,2,3),plot(abs(fft(x))); axis([0 256 0 200]),title(系统FFT 计算出的频谱); N=256; L=log(N)/log(4); %4点DFT 分解级数 Wn=exp(-2j*pi/N); %旋转因子 temp=zeros(1,N); % 定义中间临时数组 n=0:N-1; screen=ones(1,N); n=bitor(bitand(n,screen*hex2dec(cccc))/4,bitand(n,screen*hex2dec(3333))*4); n=bitor(bitand(n,screen*hex2dec(f0f0))/16,bitand(n,screen*hex2dec(0f0f))*16); n=bitor(bitand(n,screen*hex2dec(ff00))/256,bitand(n,screen*hex2dec(00ff))*256); n=n/4^(8-L)+1; for n1=1:N temp(n(n1))=x(n1); end x=temp; for l=1:L % 运算级循环 group_cont_2=4^(L-l); % 第l 级数据分组数 group_cont_1=4^(L-l+1); %第l-1 级数据分组数 group_interval_2=4^l; % 第l 级组间数据间隔个数,也是组内数据个数 group_interval_1=4^(l-1); %第l-1 级组间数据间隔个数,也是组内数据个数 G=group_cont_2-1; %分组上限 K=group_interval_1-1; % 组内数据上限 for g=0:G

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档