每日热讯!fft程序需要内存空间(fft程序)

2023-06-03 19:17:49 来源:互联网


(资料图)

导读

1、这个是我上个星期才交的课程设计里面的源代码,绝对可以运行的。

2、本人也觉得应该比较容易看懂吧。

3、#include#includeusing namespace std; #define PI 3.1415927 #define MAX 20000 //////////////////////////////// //以指数形式表示的复数 ///////////////////////////////// struct CompExp { float AbValue; float Angle; }; ////////////////////////////////////// //以一般形式表示的复数 /////////////////////////////////////// struct Complex { float Re; float Im; }A[MAX]; int n; float a[MAX] ; ////////////////////////////////////////// //将一个数的二进制数反转之后的新数返回 //例如6->110->011->3 ////////////////////////////////////////// int Rev(int i) { int index,s; //index为要返回的数 s=(int)log2(n); index=0; while(s>0) { s--; index+=(i%2)*(int)pow(2,s); i=i/2; } return index; } //////////////////////////////////////////// //将输入的离散数据进行位反置转换,并复制在复数数组A中 //////////////////////////////////////////// void bit(float* a, Complex* A) { for(int i=0;iRe = a->Re + b->Re; c->Im = a->Im + b->Im; } ///////////////////////////////////////////// //复数的减法a-b=c ///////////////////////////////////////////// void Sub(Complex* a, Complex* b, Complex* c) { c->Re = a->Re - b->Re; c->Im = a->Im - b->Im; } //////////////////////////////////////////// //复数的乘法a*b=c //////////////////////////////////////////// void Mul(Complex* a, Complex* b, Complex* c) { float tempRe,tempIm; tempRe = a->Re * b->Re - a->Im * b->Im; tempIm = a->Re * b->Im + a->Im * b->Re; c->Re = tempRe; c->Im = tempIm; } ///////////////////////////////////////// //将复数从指数形式转化为一般形式 ///////////////////////////////////////// void CompTrans(CompExp* a, Complex* b) { b->Re = a->AbValue * cos(a->Angle); b->Im = a->AbValue * sin(a->Angle); } /////////////////////////////////////// //基于迭代的快速傅里叶算法 /////////////////////////////////////// void FFT() { Complex Wm,W,u,t; CompExp wm,w; bit(a,A); for(int i=1;i<=(int)log2(n);i++) { int m=(int)pow(2,i); wm.AbValue = 1; wm.Angle = -2*PI/m; CompTrans(&wm,&Wm); for(int k=0;k>n; while(!test(n)) { cout<<"序列长度不合法,请重新输入:"<>n; } for(int i=0;iusingnamespacestd;#definePI3.1415927#defineMAX20000//////////////////////////////////以指数形式表示的复数/////////////////////////////////structCompExp{floatAbValue;floatAngle;};////////////////////////////////////////以一般形式表示的复数///////////////////////////////////////structComplex{floatRe;floatIm;}A[MAX];intn;floata[MAX];////////////////////////////////////////////将一个数的二进制数反转之后的新数返回//例如6->110->011->3//////////////////////////////////////////intRev(inti){intindex,s;//index为要返回的数s=(int)log2(n);index=0;while(s>0){s--;index+=(i%2)*(int)pow(2,s);i=i/2;}returnindex;}//////////////////////////////////////////////将输入的离散数据进行位反置转换,并复制在复数数组A中////////////////////////////////////////////voidbit(float*a,Complex*A){for(inti=0;iRe=a->Re+b->Re;c->Im=a->Im+b->Im;}///////////////////////////////////////////////复数的减法a-b=c/////////////////////////////////////////////voidSub(Complex*a,Complex*b,Complex*c){c->Re=a->Re-b->Re;c->Im=a->Im-b->Im;}//////////////////////////////////////////////复数的乘法a*b=c////////////////////////////////////////////voidMul(Complex*a,Complex*b,Complex*c){floattempRe,tempIm;tempRe=a->Re*b->Re-a->Im*b->Im;tempIm=a->Re*b->Im+a->Im*b->Re;c->Re=tempRe;c->Im=tempIm;}///////////////////////////////////////////将复数从指数形式转化为一般形式/////////////////////////////////////////voidCompTrans(CompExp*a,Complex*b){b->Re=a->AbValue*cos(a->Angle);b->Im=a->AbValue*sin(a->Angle);}/////////////////////////////////////////基于迭代的快速傅里叶算法///////////////////////////////////////voidFFT(){ComplexWm,W,u,t;CompExpwm,w;bit(a,A);for(inti=1;i<=(int)log2(n);i++){intm=(int)pow(2,i);wm.AbValue=1;wm.Angle=-2*PI/m;CompTrans(&wm,&Wm);for(intk=0;k>n;while(!test(n)){cout<<"序列长度不合法,请重新输入:"<>n;}for(inti=0;i>a[i];}}////////////////////////////////////管理输出的函数//////////////////////////////////voidOutput(){for(inti=0;i

4、但没注释。

5、So sorry. 还有需要可发信息联系. ^_^。

本文到此分享完毕,希望对大家有所帮助。

免责声明:免责声明:本文由用户上传,如有侵权请联系删除!

标签:

去哪儿平台发布退改政策:7月15日前下单,可申请免费取消

月18日,针对北海疫情形势,去哪儿平台发布退改政策。在酒店方面,7月15日之前(不含7月15日)在去哪儿平...

2022-07-18 15:19:22

北京稻香村果酱盒回归 唤起消费者味蕾记忆

这果酱盒比以前更好吃了,饼皮更松软了,近日,北京稻香村经典产品果酱盒回归,唤起了众多消费者的味蕾...

2022-07-18 15:18:22

陕西丹凤规划8.5亿葡萄酒项目 预计建成后可实现综合收入3.5亿元

7月18日,北京商报记者了解到,陕西省丹凤县招商服务局发布葡萄酒产业提升项目。据了解,丹凤县规划布局...

2022-07-18 15:17:02

港股中国石墨盘中涨超250% 股价报1.01港元/股

7月18日,中国石墨(02237 HK)登陆港交所,公司盘中涨幅一度超250%。截至当日午间收盘,中国石墨涨幅210...

2022-07-18 15:15:40

推动文化创新赋能美好生活 首届北京文化论坛7月25日举办

7月18日,首届北京文化论坛召开新闻发布会,宣布将于7月25日至26日在北京饭店举办。北京文化论坛由中宣...

2022-07-18 15:13:51

550余所高校公布录取结果!2022年北京市高招录取正在进行

7月18日,北京商报记者从北京教育考试院获悉,2022年北京市高招录取正在进行中,考生可登录北京教育考试...

2022-07-18 15:12:41

【数字消费节】邮储银行北京分行启动数字人民币试点活动

近日,北京市启动数字消费节系列活动,北京各区将构建100个以上的数字新场景,让数字技术、数字产品、数...

2022-07-18 15:11:25

新股炒作此起彼伏 限制性买入新股可抑投机

新股炒作此起彼伏,根源在于上市之初供需不平衡,如果能在上市前五日限制性买入新股,将能在一定程度上...

2022-07-18 15:09:03

二刷仍保持高热 《梦华录》为何热度不减

6月持续登榜微博热搜、首次豆瓣开分8 3分……在播出即爆火之后,现已完结两周的《梦华录》依然没有退出...

2022-07-18 15:05:42

多个城市真金白银促消费 促消费从近水到长流

从年初开始,不光北京,上海、成都、杭州、深圳等多个城市纷纷加码,拿出真金白银促消费。今年520,成都...

2022-07-18 15:04:09
x 广告
x 广告

Copyright ©  2015-2022 南非经营网版权所有  备案号:沪ICP备2022005074号-13   联系邮箱:58 55 97 3@qq.com