第一范文网 - 专业文章范例文档资料分享平台

华科信号课设三份 FFT 卷积 滤波器

来源:用户分享 时间:2025/5/22 21:19:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《FFT的C语言实现》

设计报告

姓 名:江海啸 学 号:U2010119511 班 级: 电气1006

专 业:电气工程及其自动化 指导教师:李开成

时 间:2012年八月至九月

华中科技大学 电气与电子工程学院

1

姓名:江海啸 班级:电气1006班

时间:2012年八月至九月 编程软件:microsoft visual studio2010

一、 简介:

FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。

本程序可以实现简单的FFT变换。它具有较简单的人机交互界面,可以选择FFT的变换点数(最低为4点,最高为512点),对输入不足的点自动补零,并返回输入的点数,计算结果较为精确。

二、 编程思想及原理:

本程序主要由两部分组成,一部分是FFT变换函数,另一部分是实现人机交互的主函数,其中FFT主函数由复数加法模块,复数减法模块,复数乘法模块,倒序模块,蝶形计算模块组成。主要程序框图见图 1,FFT算法的原理介绍将不再在本篇报告里面赘述,详细原理见科学出版社出版的《信号与系统基础——应用Web和MATLAB(第三版)》第128面。

开始主程序提示输入输入有错检测输入输入正确FFT计算输出数组

图 1 系统整体框图

三、 模块介绍:

1. 主程序模块

主程序程序框图见图 2,它的主要功能是人机交互,可以让用户选择FFT变换点数和输入需要变换的点数,并对未输入的点进行自动补零,并提示用户输入的点数。

2

主程序开始主程序提示选择变换点数错误(最多重复6次)检测输入正确提示输入N个点(N为前面选择的变换点数)在最后输入的数后加“,0”可退出出输入。输入完毕,不足自动补零并提示用户输入点数。FFT变换输出结果 图 2 主函数程序框图

2. FFT模块

本模块实现了FFT的运算,先对输入数组进行倒序排列,倒序排列使用了雷德算法,然后再对重排以后的数列进行蝶形算法。下面先对雷德算法进行简要介绍。

表 1倒序前后对比

倒序排列前 000(0) 001(1) 010(2) 011(3) 100(4) 101(5) 110(6) 111(7) 倒序排列后 000(0) 100(4) 010(2) 110(6) 001(1) 101(5) 011(3) 111(7) 由 可以看出,排序以前的数最低位增1,排序以后的数最高位就增1,并且排序以后的数是向低位进位的,所以根据这个原理,雷德算法可以实现倒序排列。雷德算法的程序框图

3

见图 3

定义两个整数i,j。其中j为i的倒序数,初始值都为0.检测j的最高位是否为1是最高位减1否依次检测次高位是否为1是该位减1否该位加1i加1 图 3 雷德算法程序框图

本程序的蝶形算法采用迭代变换系数的方法,蝶形图见图 4

图 4蝶形图

编程思想是:先计算蝶形级数,然后计算运算系数和一级里面蝶形结的宽度,再计算

4

搜索更多关于: 华科信号课设三份 FFT 卷积 滤波器 的文档
华科信号课设三份 FFT 卷积 滤波器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c37wcf9lgzm208bj78do5_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top