MATLAB在数字信号处理中的应用5.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB在数字信号处理中的应用5.ppt

Chapter 4 快速傅里叶变换 刘尘尘 西昌学院汽车与电子工程学院 May 10th, 2013 MATLAB 上机系列 之 Chapter 4 快速傅里叶变换 Contents 4.1 FFT原理 4.2 FFT实现 4.3 关于fft函数的说明 4.4 作业解答 (Chapter 3 DFT) 刘尘尘 西昌学院汽车与电子工程学院 May 10th, 2013 4.1 FFT原理 频域分析离不开傅里叶变换。有限长序列可以进行离散傅里叶变换(DFT)分析其频域特性。 然而,DFT的计算量太大,尤其是当序列的点数过大时。其运算复杂度为O(n2),即平方形式增长。 DFT的公式: 每计算一个 yj 需要进行大约n次乘法,计算n个 yj 大约需要进行n*n级别的乘法运算 1965年有人发表了一篇Paper,提出了快速傅里叶变换(FFT),能够将运算的复杂度压缩到O(n logn): Cooley and Turkey (1965) - An algorithm for the machine calculation of complex Fourier series 由此带来了极大的效率提升,而且随着点数的增大,效率改善更加明显。 4.1 FFT原理 1. FFT将DFT的运算量减少了几个数量级。数字信号处理这门新兴学科也随FFT的出现和发展而迅速发展。 FFT非常容易用硬件实现,因此它在电子技术领域得到了极其广泛的应用。 根据对序列分解与选取方法的不同而产生了FFT的多种算法,基本算法是基2DIT和基2DIF,分别为时间抽取盒频率抽取。下面重点讲解时间抽取算法。 4.1 FFT原理 1. 时间抽取。DIT:Decimation-In-Time 2. 频率抽取。DIF:Decimation-In-Frequency 假设采样序列点数为N=2^L,L为整数,如果不满足这个条件可以人为地添加若干个0 。将序列x(n)按照奇偶分为两组如下 根据DFT计算公式 ,推导如下: 4.1 FFT原理 4.1 FFT原理 当k为0~N/2-1的时候 当 k取值为N/2~N-1时,k用k’+N/2取代,k’取值为0~N/2-1 4.1 FFT原理 综上:一个N点的DFT变换过程可以用两个N/2点的DFT变换过程来表示 表示为蝶形图: 4.1 FFT原理 8点的DFT 4.1 FFT原理 1. 将N点的输入序列按奇偶分为2组分别为N/2点的序列; 2. 分别对1中的每组序列进行DFT变换得到两组点数为N/2的DFT变换值X1和X2; 3. 按照蝶形信号流图将2的结果组合为一个N点的DFT变换结果。 4.1 FFT原理 4.1 FFT原理 运算量: 点数为8时, 每级4次乘法,共有3层。 点数为N时,每级N/2次乘法,共有logN层,乘法运算量为 O(N *logN) 4.2 FFT实现 MATLAB 自带fft和fft2函数,可以实现一维和二维信号的快速傅里叶变换。 4.2 FFT实现 自己实现: DFT: function out = dft(x) m = length(x); out = zeros(1,m); t = 0:m-1; t = t*2*pi/m; for n = 1:m out(n) = sum(x.*exp((n-1)*i*t)); end end 算得结果与系统自带的FFT函数相同 4.2 FFT实现 function y = fft_my(x) M = length(x); % n = log2(M); K = M / 2; even_no = zeros(1, K); odd_no = zeros(1, K); f_valve = zeros(1, M); for i = 0 : K-1 for x1=0:K-1 even_no(i+1) = even_no(i+1)+( x(2*x1+1)*exp(-1i*2*pi*x1*i/K ) )/K; odd_no(i+1) = odd_no(i+1)+( x(2*x1+1+1)*exp( -1i*2*pi*x1*i/K) )/K; end end for i= 0:K-1 f_valve(i+1) = (even_no(i+1)+odd_no(i+1)*exp(-1i*2*pi*i/M))/2; end for i = 0:K-1

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档