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

  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文档。上传文档
查看更多
页眉 页眉 页脚 页脚 华北电力大学 实验报 | | 实验名称 FFT的软件实现实验( IIR数字滤波器的设计 课程名称 信号分析与处理 | | 专业班级: 电气化1308 学生姓名 学 号:201301000827 成 绩 指导教师: 杨光 实验日期: Matlab ) :袁拉麻加 2015-12-17 快速傅里叶变换实验 一、实验目的及要求 通过编写程序,深入理解快速傅里叶变换算法(FFT的含义,完成FFT和IFFT 算法的软件实现。 二、实验内容 利用时间抽取算法,编写基2点的快速傅立叶变换(FFT程序;并在FFT程 序基础上编写快速傅里叶反变换(IFFT的程序。 :实验要求 :实验要求 1、 FFT和 IFFT子程序相对独立、具有一般性,并加详细注释; 2、 验证例6-4,并能得到正确结果。 3、 理解应用离散傅里叶变换(DFT)分析连续时间信号频谱的数学物理基础 四、实验原理: a.算法原理 1、程序输入序列的元素数目必须为 2的整数次幕,即N=2m,整个运算需要 M级蝶形运算; 2、 输入序列应该按二进制的码位倒置排列,输出序列按自然序列排列; 3、 每个蝶形运算的输出数据军官占用其他输入数据的存储单元, 实现“即位 运算” 4、 每一级包括N/2个基本蝶形运算,共有 M*N/2个基本蝶形运算; 5、 第L级中有N/2 L个群,群与群的间隔为2l0 6、 处于同一级的各个群的系数 W分布相同,第L级的群中有2L-1个系数; 7、处于第L级的群的系数. 是(p=1,2,3,…….,2l-1)而对于第L级的蝶 形 运算,两个输入数据的间隔为2L-1o b.码位倒置程序流程图 开始 c.蝶形运算程序流程图 五、程序代码与实验结果 a.FFT 程序: %% clear all;close all;clc; %输入数据% A=input(输入 x(n)序列,s); A=str2nu m(A); % A=[1,2,-1,4]; %测试数据 % %% %校验序列,% n=len gth(A); m=log2( n); if (fix(m)?=m) disp(输入序列长度错误,请重新输入 !); A=input(输入 x(n)序列,s); A=str2 nu m(A); else )%取M ) %取M位的二进制数% %倒取出二进制数% %将数字序列转化为字符串 % %二进制序列转化为十进制数 % end %% %码位倒置% for k=0: n-1 for j=1:m x1(j)=bitget(k,j); end x1=nu m2str(x1); y(k+1)=bi n2dec(x1); clear x1 end for k=1: n B(k)=A(y(k)+1); %时间抽取序列% end clear A %% %计算% for L=1:m %分解为M级进行运算% LE=2AL; %第L级群间隔为2AL% LE1=2A(L-1); %第L级中共有2A(L-1)个Wn乘数,进行运算蝶运算的两数序号 相隔LE1% W=1; W1=exp(-1i*pi/LE1); for R=1:LE1 %针对第R个Wn系数进行一轮蝶运算,共进行 LE1次% for P=R:LE:n %每个蝶的大小为 LE% Q=P+LE1; T=B(Q)*W; B(Q)=B(P)-T; B(P)=B(P)+T; end W=W*W1; end end B %输出 X(k)% %% 验证结果: 例6-4 clear all;closeall;clc; %输入数据% % AWnputf输入x(n)序列;官); % A=str2num(A); A=[1,2^1,4];% 测试数据% 输人正鶴.请运■{亍下一歩 B = Columns 1 through 2 6 0000 2.0000 + 2.0000i Columns 3 through 4 -6 0000 2 0000 - 2 0000( b.lFFT 程序: %% clear all;close all;clc; %输入数据% A=input(输入 X(k)序列,s); A=str2 nu m(A); % A=[6,2+2i,-6,2-2i]; % 测试数据 % %% %校验序列,% n=len gth(A); m=log2( n); if (fix(m)?=m) disp(输入序列长度错误,请重新输入 A=input(输入 x(n)序列,s); A=str2 nu m(A); else disp(输入正确,请运行下一步 end %% %码位倒置% for k=0: n-1 for j=1:m x1(j)=bitget(k,j); end x1=nu m2str(x1); y(k+1)=bi n2dec(x1);

文档评论(0)

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

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

1亿VIP精品文档

相关文档