- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
201203110317林逸磊_实验十一报告
实验十一 FIR算法实验目的1、掌握用窗函数法设计FIR数字滤波器的原理和方法。2、熟悉线性相位FIR数字滤波器特性。3、了解各种窗函数对滤波器特性的影响。实验原理根据要求设计低通FIR滤波器。设计指标等效模拟滤波器指标:通带截止频率:10kHz阻带截止频率:16kHz阻带最小衰减:70dB采样频率:50kHz转换成数字滤波器指标:通带截止频率:0.4rad阻带截止频率:0.64rad阻带最小衰减:50dB设计计算过渡带宽:截止频率:理想低通滤波器脉冲响应:其中M为滤波器阶数。根据要求阻带衰减大小,选择Hamming窗。选择M=28,则窗函数长度N=29。窗函数为:滤波器脉冲响应为:根据上面计算,各式计算出。得到的滤波器系数为:{ -0.0014,0.001534,0.00228,-0.004,-0.0047372,0.01,0.00839,-0.0222,-0.012545,0.04478,0-0-0.019,0.314,0.52,0.314,-0.019,-000.04478,-0.012545,-0.0222,0.00839,0.01,-0.0047372,-0.004,0.00228,0.001534,-0.0014 }实验程序分析//#include C5509.h//#include ICETEK-VC5509-EDU.h#include math.h#define FIRNUMBER 25//数字滤波器系数的数量#define SIGNAL1F 1000#define SIGNAL2F 4500#define SAMPLEF 10000#define PI 3.1415926float InputWave();float FIR();float fHn[FIRNUMBER]={ 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009, -0.018,0.049,-0.02,0.11,0.28,0.64,0.28, -0.11,-0.02,0.049,-0.018,-0.009,0.01, -0.002,-0.002,0.001,0.0,0.0 };//25 个数字滤波器系数, h[n]float fXn[FIRNUMBER]={ 0.0 };//输出信号 x[n]float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fIn[256],fOut[256];int nIn,nOut;main(){nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;while (1){fInput=InputWave();fIn[nIn]=fInput;nIn++; nIn%=256;fOutput=FIR();fOut[nOut]=fOutput;nOut++;/* 断点 */if ( nOut=256 ){nOut=0;}}}float InputWave() //生成一个信号,为两种频率的正弦波叠加。{for ( i=FIRNUMBER-1;i0;i-- )fXn[i]=fXn[i-1];fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0;fSignal1+=fStepSignal1; if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2=f2PI )fSignal2-=f2PI;return(fXn[0]);}float FIR() //FIR滤波算法{float fSum;fSum=0;for ( i=0;iFIRNUMBER;i++ ){fSum+=(fXn[i]*fHn[i]);}return(fSum);}实验结果
文档评论(0)