内容发布更新时间 : 2024/11/13 6:54:06星期一 下面是文章的全部内容请认真阅读。
本文档如对你有帮助,请帮忙下载支持!
华北电力大学
| |
| |
实 验 报 告
实验名称 FFT的软件实现实验(Matlab) IIR数字滤波器的设计
课程名称 信号分析与处理
电气化1308 学生姓名:袁拉麻加
号: 0827 成 绩:
指导教师: 杨光 实验日期: 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/2L个群,群与群的间隔为2L。 6、处于同一级的各个群的系数W分布相同,第L级的群中有2L-1个系数;
7、处于第L级的群的系数是(p=1,2,3,…….,2L-1)而对于第L级的蝶形 运算,两个输入数据的间隔为2L-1。
b.码位倒置程序流程图
开始 检测A序列长度n 本文档如对你有帮助,请帮忙下载支持!
x1(j)=bitget(k,j); j=j+1 k=0 j=1 Y j N x1=num2str(x1); y(k+1)=bin2dec(x1); k=k+1 clear x1 Y k 按新序号生产输入c. 蝶形运算程序流程图 序列B(过程略) 五、程序代码与实验结果 a.FFT 程序: %% clear all;close all;clc; %输入数据% A=input('输入x(n)序列','s'); A=str2num(A); % A=[1,2,-1,4]; %测试数据% %% %校验序列,% n=length(A); m=log2(n); if (fix(m)~=m) disp('输入序列长度错误,请重新输入!'); A=input('输入x(n)序列','s'); A=str2num(A); else