ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:35.01KB ,
资源ID:6791814      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6791814.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FFT插值算法程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FFT插值算法程序.docx

1、FFT插值算法程序1.#includestdafx.h 2.#includeFft.h 3.#includemath.h 4.5.constdoubleMOD_MAX=65535.0;6.constdoubleDISP_MAX=1.0/255.0;7.externFILE*fp;8.9.10.11.12.13./FFT运算必须参数 14.intfft_point,fft_order,fft_divide,fft_window,fft_scale;15.boolfft_cover;16.floatfilter7;/FIR滤波参数 17.18.externFILE*fpIandQ;19.exter

2、nboolm_bIqWrite;20.doubleprFilter256,piFilter256;21.22.23./*24.0RectangleWindow矩形窗25.FFT变换结果为对称型,矩形窗是使信号突然截断,旁瓣会很大,且衰减较慢,旁瓣的第一个负26.峰值为主瓣的21,第一个正峰值为主瓣的12.6,第二个负峰值为主瓣的9,效果一般,泄27.漏较大。28.*/29.doubleWINAPIRectangleWindow(intt)30.31.doublewt;32.wt=1.0;33.returnwt;34.35.36./*37.1TriangleWindow三角窗,也称费杰(Feje

3、r)窗,Bartlett38.*/39.doubleWINAPITriangleWindow(intt)40.41.42.doublewt;43.wt=1-t/fft_point;44.returnwt;45.46.47./*48.2HanningWindwo汉宁窗,即升余弦窗49.*/50.doubleWINAPIHanningWindow(intt)51.52.doublewt;53.wt=(1-cos(2*PI*t/fft_point)/2;54.returnwt;55.56.57./*58.3HammingWindow海明窗,即改进的升余弦窗59.*/60.doubleWINAPIHa

4、mmingWindow(intt)61.62.doublewt;63.wt=0.54-0.46*cos(2*PI*t/fft_point);64.returnwt;65.66.67./*68.4BlackmanWindow布来克曼窗,即三阶升余弦窗69.*/70.doubleWINAPIBlackmanWindow(intt)71.72.doublewt;73.wt=0.42-0.5*cos(2*PI*t/fft_point)+0.08*cos(4*PI*t/fft_point);74.returnwt;75.76.77./*78.5CosgradeWindow余弦坡度窗79.*/80.dou

5、bleWINAPICosgradeWindow(intt)81.82.doublewt;83.if(t=int(4*fft_point/5)84.wt=1.0;85.else86.wt=(1+cos(5*PI*t/fft_point)/2;87.returnwt;88.89.90.91./*92.6ParzenWindow帕曾窗93.*/94.doubleWINAPIParzenWindow(intt)95.96.doublewt;97.if(t=int(fft_point/2)98.wt=1-6*pow(t/fft_point,2)+6*pow(t/fft_point,3);99.else1

6、00.wt=2*pow(1-t/fft_point,3);101.returnwt;102.103.104./*105.7ExponentWindow指数窗106.*/107.doubleWINAPIExponentWindow(intt)108.109.doublewt,alf;110.alf=0.0001;111.wt=exp(-1.0)*alf*t);112.returnwt;113.114.115./*116.8GaussWindow高斯窗117.*/118.doubleWINAPIGaussWindow(intt)119.120.doublewt,alf;121.alf=0.0001

7、;122.wt=exp(-1*alf*t*t);123.returnwt;124.125.126./*127.9KaiserWindow凯泽窗,128.凯泽在1966(1974)发现,利用第一类零阶修正(变形)贝赛尔函数可以构成一种近似最佳的窗129.最主要参数:beat可同时调整主瓣宽度和旁瓣,beat越大,窗越窄,频谱旁瓣越小,但主瓣相应增加130.beta=0相当与矩形窗131.*/132.doubleWINAPIKaiserWindow(intt)133.134.doublewt,alfa,beta;135.alfa=(fft_point-1)/2;136.beta=0;137./Be

8、ssel零阶第一类贝塞尔函数 138.wt=Jim_Bessel0_R(0,beta*sqrt(1-pow(t-alfa)/alfa,2)/Jim_Bessel0_R(0,beta);139.returnwt;140.141.142./*143.10ChebWindow契比雪夫窗144.*/145.doubleWINAPIChebWindow(intt)146.147.doublewt;148.wt=1.0;149.returnwt;150.151.152./*153.11BartlettWindow巴特利特窗154.*/155.doubleWINAPIBartlettWindow(intt)

9、156.157.doublewt;158.wt=1.0;159.returnwt;160.161.162.boolWINAPIfftInit(intpoint,intorder,intdivide,boolcover,intscale)163.164.165.fft_point=point;166.fft_order=order;167.fft_divide=divide;168.fft_cover=cover;169.fft_scale=scale;170./采用8阶的FIR滤波 171.Jim_FirFilter(7,3,50,7800/2.0,7800.0,1,filter);172.r

10、eturnTRUE;173.174.175.176.BOOLWINAPIfftEnd()177.178.returnTRUE;179.180.181.182.183.184./傅立叶变换 185.BOOLWINAPIfftTransform(VOID*inBuf,VOID*outBuf,intwindows,intscale,intnProbe,intnWork)186.187.BYTE*srcPtr=(BYTE*)inBuf;/数据源1024字节 188.BYTE*dstPtr=(BYTE*)outBuf;/数据果256字节 189./double*testPtr=(double*)test

11、Buf; 190.WORDIvalue,Qvalue;191./WORDIvalueRev,QvalueRev; 192.unsignedcharflagQ,flagI;193./doublealfa,e; 194.inti,j,Iorg=0,Qorg=0;195.doublemod=0;196.if(nProbe=LEFT_PROBE)197.198.flagQ=0x30,flagI=0x20;199.200.else201.202.flagQ=0x10,flagI=0x0;203.204.205./每次取4个字节数据,分离I/Q分量,判断db(12),0表示I分量,1表示Q分量 206.i

12、f(srcPtr1&0xf0)=flagQ)&(srcPtr3&0xf0)=flagI)207.208.Iorg=2;209.Qorg=0;210.211.if(srcPtr1&0xf0)=flagI)&(srcPtr3&0xf0)=flagQ)212.213.Iorg=0;214.Qorg=2;215.216.doublepr256,pi256,w;217.218.219./计算自相关函数和互相关函数 220./doubleRii=0.0,Rqq=0.0,Riq=0.0; 221.222.for(i=0;ifft_point;i+)223.224.225./更改存储的偏移地址分离I/Q, 2

13、26.Ivalue=*(short*)(srcPtr+i*4+Iorg);227.Qvalue=*(short*)(srcPtr+i*4+Qorg);228./位非运算,低12位位有效数据 229.pri=double(Ivalue&0xfff);230.pii=double(Qvalue&0xfff);231.232./*Rii=Rii+double(pri*pri);233.Rqq=Rqq+double(pii*pii);234.Riq=Riq+double(pri*pii);*/235.236.237./*Rii=Rii/fft_point;238.Rqq=Rqq/fft_point;2

14、39.Riq=Riq/fft_point;240.241.alfa=asin(Riq/sqrt(Rii*Rqq);242.e=sqrt(Rqq/Rii)-1;*/243.244.for(i=0;ifft_point;i+)245.246./防止谱泄漏,进行加窗处理 247.switch(windows)248.249.caseWND_RECTANGLE:w=RectangleWindow(i);break;250.caseWND_TRIANGLE:w=TriangleWindow(i);break;251.caseWND_HANNING:w=HanningWindow(i);break;252

15、.caseWND_HAMMING:w=HammingWindow(i);break;253.caseWND_BLACKMAN:w=BlackmanWindow(i);break;254.caseWND_COSGRADE:w=CosgradeWindow(i);break;255.caseWND_PARZEN:w=ParzenWindow(i);break;256.caseWND_EXPONENT:w=ExponentWindow(i);break;257.caseWND_GAUSS:w=GaussWindow(i);break;258.caseWND_KAISER:w=KaiserWindow

16、(i);break;259.caseWND_CHEB:w=ChebWindow(i);break;260.caseWND_BARTLETT:w=BartlettWindow(i);break;261.default:w=RectangleWindow(i);break;262.263.264./*pri=(1+e)*cos(alfa)*pri)/(1+e)*cos(alfa)*w;265.pii=(pii-(1+e)*sin(alfa)*pri)/(1+e)*cos(alfa)*w;*/266.267.pri=pri*w;268.pii=pii*w;269.prFilteri=piFilteri=0.0;270.for(j=0;j255)273.274.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1