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

云南大学信息学院数字信号处理期末论文-基于MATLAB的子带离散傅里叶变换资料.docx

云南大学信息学院数字信号处理期末论文-基于MATLAB的子带离散傅里叶变换资料.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字信号处理综合实验报告 基于MATLAB的子带离散傅里叶变换 学院 信息学院 专业 电子信息工程 摘要 在当今的通信信号的传输中,数字信号以其自身简单、适用及保密性强等优势受到越来越多的青睐,于此相关的,对数字信号的处理也就显得越来越重要了。 数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,英文原名叫digital signal processing,简称DSP。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的,数字信号处理的过程中经常要用到离散傅里叶变换(DFT)。离散傅里叶变换(DFT),是傅里叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。 本实验基于MATLAB研究子带离散傅里叶变换,先要产生一个64长的离散序列,通过离散傅里叶变换的相关算法,画出其二级子带离散傅里叶变换和四级子带离散傅里叶变换的MATLAB图,将二级算法和四级算法得到的结果与对原序列直接用fft得到的离散傅里叶变换作比较。 关键字: 数字信号处理、离散傅里叶变换、MATLAB 一 实验目的 编写MATLAB程序,产生一个长度为64的实序列,然后分别用用二级子带离散傅里叶变换程序和四级子带傅里叶变换确定其近似的离散傅里叶变换,将离散傅里叶变换得到的图像与直接用fft函数画出的离散傅里叶变换图像做比较并对结果进行评论。 二 实验原理 2.1 子带离散傅里叶变换简介 长度为N的序列,其N点离散傅里叶变换为,可由单位圆上的等间隔点z变换给出: (1) 其中。子带离散傅里叶变换(SB-DFT)算法,可用于近似长度为2的整数次幂的序列的频率范围的一个或多个部分的离散傅里叶变换。为了说明此方法的思想,首先按照 (2) 即将分解为两个长度为的子序列。 的z变换可表示为 (3) 其中的z变换。的N点离散傅里叶变换可另外表示为 (4) 其中分别是子序列的N/2点离散傅里叶变换。。 上式(4)即为离散傅里叶变换的子带离散傅里叶变换。 式(4)也可以写成矩阵的形式 (5) 其中是2x2的哈达玛矩阵。重复该过程,得到一个二级算法为 (6) 其中,是4x4的哈达玛矩阵,而等是N/4点离散傅里叶变换。 通过消除可忽略能量频带的计算,可以简化离散傅立叶变换的算法,例如,对一个基本上是低频成分的序列 ,假定是一个实值序列,通过式(4)消除的贡献,可得到一个近似离散傅立叶变换: (7) 同理,对于四级算法,可近似为: (8) 在算出后,在本实验中,计算出子带傅里叶变换的均方误差,比较二级算法和四级算法的误差大小来对算法进行评价。均方误差定义为 其中,表示用对原序列用fft函数计算出的离散傅里叶变换,表示用子带傅里叶变换计算出的值。 简而言之,二级子带傅里叶变换就是将产生的长度为64的序列按公式(2)分为两部分,分别计算出离散傅里叶变换,再按公式(4)求出它的子带离散傅里叶变换。四级子带傅里叶变换就是将二级时得到的再细分为四个部分,分别计算出离散傅里叶变换,再用公式(6)计算出四级子带离散傅里叶,并比较误差做出评价。 三 实验设计 3.1 流程图 图1 实验流程图 3.2程序 3.2.1 二级算法 %二阶 %产生序列 clc l=0:63; x=0.8.^l; figure,stem(x);title(序列x[n]); y=fft(x); figure,subplot(2,1,1) stem(y);title(x[n]的离散傅里叶变换); N=length(x); %分成两级 p=1:32; gL=0.5*(x(2*p)+x(2*p-1)); gH=0.5*(x(2*p)-x(2*p-1)); GL=fft(gL); GH=fft(gH); %子带离散傅里叶变换部分 k=0:(N-1); n=mod(k,N/2); GLK=GL(n+1); GHK=GH(n+1); w=exp(-1i*2*pi*k/N); X=zeros(1,length(w)); for q=1:length(w); X(q)=(1+w(q))*GLK(q);

文档评论(0)

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

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

1亿VIP精品文档

相关文档