信号分析与处理实验报告.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信号分析与处理实验报告

信号分析与处理 实验报告 实验目的 (1)掌握计算序列的离散傅立叶变换(DFT)的方法; (2)掌握实现时间抽取快速傅立叶变换(FFT)的编程方法; (3)复习复数序列的运算方法; (4)掌握设计IIR数字滤波器的冲激响应不变法和双线性变换法; (5)掌握IIR数字滤波器的实现方法。 实验原理 1、快速傅利叶变换的软件实现 (1)程序输入元素的数目必须为2的整数次幂,即N为2的M次幂,整个运算需要M级蝶形运算。 (2)输入序列按二进制码位倒置排列,输出序列按自然顺序排列。 (3)输出数据占用输入数据的存储单元。 (4)每一级含N/2个基本蝶形运算。 (5)第L级中有N/2的L次幂个群,群与群间隔为2的L次幂。 (6)同一级中各个群的系数W分布相同,第L级的群中有2的L-1次幂个系数。 (7)处于第L级的群的系数是(p=1,2,3,……,) (8)对于第L级的蝶形运算,输入数据的间隔为2的L-1次幂。 码位倒置程序流程图 蝶形运算程序流程图 IIR数字滤波器的设计 以教材第九章无限冲激响应数字滤波器的例子说明软件实现方法。设滤波器为级联型结构,其系统函数如下: 式中 显然,该数字滤波器为无限冲激响应数字滤波器,其数字网络和软件流程图分别如图所示。依据软件流程图可以编制出基于C语言的实现程序。应用该程序可以计算上述数字滤波器输出序列的前N个数据。若要求该数字滤波器为具有输入输出端口的实时数字滤波器,则可以将有限循环改为无限循环,并取消输出数据的长度限制。这可通过修改for循环语句来实现,即 for( ; ; ){ …… } 然后,将输入输出数据的操作对象由数组修改为端口。 IIR数字滤波器级联型结构图 5、IIR数字滤波器级联型结构实现程序流程图 实验内容与步骤 为了验证所设计数字滤波器的实际功能,首先将下列分别位于通带、过渡带和阻带的三个模拟信号数字化 V ,, V ,, V ,, 式中:为采样间隔;T为记录时间长度。 ,,,, 数字化后的序列为: 将x(n)作为激励信号输入到所设计数字滤波器的输入端,计算输出端的响应信号y(n); 计算x(n)的快速傅立叶变换X(k),和y(n)的快速傅立叶变换Y(k); 用MATLAB画出x(n)、y(n)、X(k)和Y(k)的图像并做比较。 四、设计程序 #includemath.h #includestdio.h #define swap(a,b) T=(a); (a)=(b); (b)=T; /*宏定义的交换函数*/ void fft(float A[],float B[],unsigned M) /*快速傅利叶变换程序,数组A、B分别是待变换序列 的实部和虚部*/ { unsigned long N,I,J,K,L,LE,LE1,P,Q,R; float Wr,Wi,W1r,W1i,WTr,WTi,theta,Tr,Ti,T; N=1M; /*N=2M 是序列的总长度*/ J=0; for(I=0;IN-1;I++) /*码位倒置*/ {if(JI) {swap(A[I],A[J]); swap(B[I],B[J]); } K=N1; while(K=2J=K) { J-=K; K=1; } J+=K; } for(L=1;L=M;L++) /*外层循环由级数L控制,执行M次*/ { LE=1L; /* LE=2L是群间隔*/ LE1=LE/2; /* LE1=2L-1是每个群的系数W数目*/ Wr=1.0; Wi=0.0; theta=(-1)*3.1415926536/LE1; W1r=cos(theta); W1i=sin(theta); for(R=0;RLE1;R++) /*中层循环由群系数控制,执行次*/ { for(P=R;PN-1;P+=LE) /*R是群系数的编号,P、Q是基本蝶形运 算两个输入数据在数组中的编号,循环每 次完成同一个系数的蝶形运算*/ {Q=P+LE1; Tr=Wr*A[Q]-Wi*B[Q]; Ti=Wr*B[Q]+Wi*A[Q]; /*Tr

文档评论(0)

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

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

1亿VIP精品文档

相关文档