- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用c语言实现fft
一、对FFT的介绍
1. FFT(Fast Fourier Transformation),即为快速傅里叶变换,是离散傅里叶变换的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。2.FFT算法的基本原理? ? ? FFT算法是把长序列的DFT逐次分解为较短序列的DFT。? ? ? 按照抽取方式的不同可分为DIT-FFT(按时间抽取)和DIF-FFT(按频率抽取)算法。按蝶形运算的构成不同可分为基2,基4,基8,以及任意因子的类型。
3.迭代关系
4、本次程序的基本过程
我们这次所研究的是数字信号处理中的FFT算法,我们这次所用的数字信号是复数类型的。
(1)所以首先,我们先定义了一个复数结构体,因为是进行复数的运算,我们又相继定义复数的加减乘运算的函数。(2)紧接着,我们定义了进行FFT计算的fft()快速傅里叶变换函数initW() ?初始化变换核函数即旋转因子的计算,change() 变址函数,output()输出傅里叶变换的结果的函数。(3)定义主函数,并调用定义好的相关子函数,利用fft()中的蝶形运算以及change()函数来完成从时间域上选取的DIT-FFT。
二、FFT中码位倒置排序
1、码位倒置的实现方法:? ? ? ? (1)简单的利用按位与、或循环实现? ? ? ? (2)利用公式推导的迭代方法2、为什么要进行码位倒置? 因为由于FFT的计算特性,如果按照正常顺序输入,而没有进行码位倒置的话,就会以乱序输出,就不便于我们后续对信号的相关性质进行研究了,所以DIT-FFT算法就是在进行FFT计算之前,进行分奇偶后的码位倒置运算,即二进制数的倒位。 ? ? ??3、倒位序由奇偶分组造成,以N=8为例,说明如下:
三、蝶形运算
由
按照上述公式的规律进行逐级分解,直到2点DFT,如下是N=8时的蝶形算法分析图:
四、FFT算法中蝶形算法的基本思想分析
(1)我们知道N点FFT运算可以分成log2(N)级,每一级都有N/2个碟形,FFT的基本思想是用3层循环完成全部运算(N点FFT)。(2)第一层循环:由于N=2^m需要m级计算,第一层循环对运算的级数进行控制。(stages)(3)第二层循环:由于第L级有2^(L-1)个蝶形因子(乘数),第二层循环根据乘数进行控制,保证对于每一个蝶形因子第三层循环要执行一次,这样,第三层循环在第二层循环控制下,每一级要进行2^(L-1)次循环计算.(选择W)(4)第三层循环:由于第L级共有N/2^L即2^(n-L)个群,并且同一级内不同群的乘数分布相同,当第二层循环确定某一乘数后,第三层循环要将本级中每个群中具有这一乘数的蝶形计算一次,即第三层循环每执行完一次要进行N/2^L个碟形计算。(执行不同group中具有相同W的蝶形运算)(5)可以得出结论:在每一级中,第三层循环完成N/2^L个碟形计算;第二层循环使第三层循环进行 2^(L-1)次,因此,第二层循环完成时,共进行2^(L-1) *N/2^L=N/2个碟形计算。实质是:第二、第三层循环完成了第L级的计算。
五、用c语言实现的FFT算法如下:
span style=font-size:18px;#include stdio.h
#include math.h
#include stdlib.h
#define N 1000
/*定义复数类型*/
typedef struct{
double real;
double img;
}complex;
complex x[N], *W; /*输入序列,变换核*/
int size_x=0; /*输入序列的大小,在本程序中仅限2的次幂*/
double PI; /*圆周率*/
void fft(); /*快速傅里叶变换*/
void initW(); /*初始化变换核*/
void change(); /*变址*/
void add(complex ,complex ,complex *); /*复数加法*/
void mul(complex ,complex ,complex *); /*复数乘法*/
void sub(complex ,complex ,complex *); /*复数减法*/
void output();/*输出快速傅里叶变换的结果*/
int main()
{
int i; /*输出结果*/
system(cls);
PI=atan(1)*4;
printf(
您可能关注的文档
- 提高大直径挡煤墙弧形安装合格率.ppt
- 数字地理信息系统arcgis desktop扩展方式add-in编程技术.pptx
- 数学中考模块 视图、投影、尺规作图.pptx
- 数控加工与编程实训报告12200136107卓利元.doc
- 文化传承与创新..pptx
- 新授课课堂教学模式.ppt
- 新材料作文审题立意 公开课(修改版).ppt
- 教师:从知识传授者到生命点燃者.ppt
- 新步步高20162017学年高中历史专题五现代中国对外关系课件.ppt
- 摄像头组山东大学(威海)雪豹队技术报告1.pdf
- 2025年安徽审计职业学院单招笔试综合素质试题库含答案解析.docx
- 2025年建筑工程类一级建造师建设工程项目管理-建设工程法规及相关知识(新)参考题库含答案解析.docx
- 2025年学历类自考行政组织理论-学前教育学参考题库含答案解析.docx
- 2025年学历类自考专业(学前教育)学前教育政策与法规-学前比较教育参考题库含答案解析.docx
- 2025年湖南工程职业技术学院单招笔试综合素质试题库含答案解析.docx
- 2025年学历类自考民法学-英语(二)参考题库含答案解析.docx
- 2025年学历类自考普通逻辑-中国现代文学史参考题库含答案解析.docx
- 2025年学历类自考英语(二)-中国古代文学作品选(二)参考题库含答案解析.docx
- 2025年住院医师规培-天津-天津住院医师规培(全科医师)历年参考题典型考点含答案解析.docx
- 2025年事业单位工勤技能-吉林-吉林土建施工人员五级(初级工)历年参考题典型考点含答案解析.docx
最近下载
- 大众六代高尔夫A6使用说明书.pdf VIP
- 广东省清远市清县山塘镇土地利用总体规划.doc VIP
- 2024正压式空气呼吸器检定及校准作业指导书.docx VIP
- 悟空申论大魔笈 试学版.doc VIP
- 2025江苏省普通高中学业水平测试合格考试历史全真模拟试卷(后附答案精品.pdf VIP
- ISO13485批产品生产过程记录表样板.docx VIP
- 【超级猛料】2014年的公考悟空申论大魔笈.doc VIP
- LEGO乐高积木拼砌说明书10214,伦敦塔桥,LEGO®CREATORExpert(年份2010)安装指南_第3份共3份.pdf
- 《悟空申论大魔笈最新版》.pdf VIP
- 普通高中学业水平合格性考试历史卷.pdf VIP
原创力文档


文档评论(0)