信号分析与处理实验报告

本文档如对你有帮助,请帮忙下载支持!

华北电力大学

| |

| |

实 验 报 告

实验名称 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

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4