

全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工程作业/电气0601班 赵晓永 06291026 电力系统远程监控技术已知某系统采样频率为每周期64点,若原始信号序列为x(n),写出其基波幅值及功率因数的DFT计算公式,并用C语言实现该计算函数,要求函数输入序列x ,输出为幅值AmpX和功率因数CosX。,设,则:得到DFT变换的实部和虚部计算公式:,变量说明pr双精度实型一维数组,长度为n。当n=0时,存放n个采样输入的实部,返回时存放离散傅立叶变换的模;当l=1 时,存放傅立叶变换的n个实部,返回时存放逆傅立叶变换的模。pi双精度实型一维数组,长度为n。当n=0时,存放n个采样输入的虚部,返回时存放离散傅立叶变换的幅角;当l=1时,存放傅立叶变换的n个虚部,返回时存放逆傅立叶变换的幅角。其中幅角的单位为度。n整形变量。输入的点数。k整形变量。满足n=2k(2的k次方)。fr双精度实型一维数组,长度为n。当l=0时,返回傅立叶变换的实部;当l=1时,返回逆傅立叶变换的实部。fi双精度实型一维数组,长度为n。当l=0时,返回傅立叶变换的虚部;当l=1时,返回逆傅立叶变换的虚部。l整形变量。若l=0,表示要求本函数计算傅立叶变换;若l=1,表示要求本函数计算逆傅立叶变换。il整形变量。若il=0,表示不要求本函数计算傅立叶变换或逆傅立叶变换的模与幅角;若il=1,表示要求本函数 计算傅立叶变换或逆傅立叶变换的模与幅角。完整的快速傅立叶变换(FFT)和逆变换(IFFT)C语言算法函数语句#includevoid kbfft(pr,pi,n,k,fr,fi,l,il)int n=64,k,l,il;double pr,pi,fr,fi;int it,m,is,i,j,nv,l0;double p,q,s,vr,vi,poddr,poddi;for(it=0;it=n-1;it+)m=it;is=0;for(i=0;i=k-1;i+)j=m/2;is=2*is+(m-2*j);m=j;frit=pris;fiit=piis;pr0=1.0;pi0=0.0;p=6.283185306/(1.0*n);pr1=cos(p);pi1=-sin(p);if(l!=0) pi1=-pi1;for(i=2;in-1;i+)p=pri-1*pr1;q=pii-1*pi1;s=(pri-1+pii-1)*(pr1+pi1);pri=p-q;pii=s-p-q;for(it=0;it=0;l0-)m=m/2;nv=2*nv;for(it=0;it=(m-1)*nv;it=it+nv)for(j=0;j=(nv/2)-1;j+)p=prm*j*frit+j+nv/2;q=pim*j*fiit+j+nv/2;s=prm*j+pim*j;s=s*(frit+j+nv/2+fiit+j+nv/2);poddr=p-q;poddi=s-p-q;frit+j+nv/2=frit+j-poddr;fiit+j+nv/2=fiit+j-poddi;frit+j=frit+j+poddr;fiit+j=fiit+j+poddi;if(l!=0)for(i=0;i=n-1;i+)fri=fri/(1.0*n);fii=fii/(1.0*n);if(il!=0)for(i=0;i=n-1;i+)pri=sqrt(fri*fri+fii*fii);if(fabs(fri)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论