课程设计报告FIR滤波器的设计与实现.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 FIR 滤波器 设计 实现
- 资源描述:
-
个人收集整理 勿做商业用途 郑州航空工业管理学院 电子通信工程系 DSP原理及应用课程设计报告 设计题目:基于TMS320F2812 DSP处理器的FIR滤波器的设计与实现 学 号: 101307412 姓 名: 李雪稳 专 业: 通信工程 设计日期: 2013年6月6日 指导老师: 赵成 马鹏阁 张松炜 邸金红 目 录 一、引言 二、设计目的 三、设计要求 四、总体设计 4。1利用Matlab软件的FDATool工具设计FIR滤波器 4。1。1有限冲击响应数字滤波器的基础理论 4。1.2 利用Matlab软件的FDATool设计FIR滤波器 4.1。3提取滤波器参数 4。2 CCS环境下FIR滤波器的设计及软件仿真 4.2.1 程序流程图 4。2.2 在CCS集成开发环境下新建FIR滤波器工程 4.2。3观察滤波前后的信号的时域波形及FFT Magnitude波形 4。2.4 程序清单(FIR滤波器部分) 4.3 对实时采样信号进行滤波的FIR滤波器的实现 4.3.1 程序清单 4。3。2 测试效果 五、总结 六、参考文献 基于TMS320F2812 DSP处理器的FIR滤波器的设计与实现 一、引言 数字信号处理(DSP)包括两重含义:数字信号处理技术(Digital Signal Processing )和数字信号处理器( Digital Signal Processor )。在数字信号处理的基本方法中,滤波是应用非常广泛的一个环节,数字滤波器的理论与相关设计也一直都是人们研究的重点之一。数字滤波器根据其单位冲击响应函数的时域特性可分为两类:无限冲击响应(Infinite Impulse Response,IIR)滤波器和有限冲击响应(Finite Impulse Response,FIR)滤波器.与 IIR滤波器相比,FIR的实现是非递归的。 使用通用DSP芯片实现滤波方式较为简单,是一种实时的,快速的,特别适合于实现各种数字信号处理运算的微处理器,借助于通用数字计算机按滤波器的设计算法编出程序进行数字滤波计算.由于它具有丰富的硬件资源,改进哈弗结构,高速数据处理能力和强大的指令系统而在很多领域得到广泛应用. 二、设计目的 1、掌握用窗函数法设计FIR滤波器的原理及方法,掌握使用matlab编程的基本方法。 2、掌握TMS320F2812 DSP处理器开发的程序框架结构,学习驱动TMS320F2812 DSP处理器程序编写并能使其正常工作。实习驱动ADC模块实现信号的实时采集与模数转换。 三、设计要求 1、利用Matlab软件的FDATool工具设计FIR滤波器,并提取滤波器参数; 2、在CCS集成开发环境下,利用第1步得到的滤波器参数,利用窗函数法设计FIR滤波器程序,观察输入信号及滤波后得到的输出信号的时域波形及FFT Magnitude波形; 3、利用TMS320F2812的ADC片内外设的外围电路实时采集的混频信号数据,使用1个51阶的FIR低通滤波器,在CCS中设计FIR滤波器程序实现滤波,观察相关波形及滤波效果。 4、相关设备: PC机,CCS集成开发环境,EXPIV型实验箱,XDS510仿真调试器,Matlab软件 四、总体设计 4.1利用Matlab软件的FDATool工具设计FIR滤波器 4.1。1有限冲击响应数字滤波器的基础理论 滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号.滤波器的设计实质上就是对提出的要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器频率响应特性逼近给出的频率响应特性。FIR 数字滤波器系统的传递函数为: (1) 由此得到系统的差分方程: (2) 若FIR 数字滤波器的单位冲激响应序列为h(n),它就是滤波器系数向量b(n)。传统的滤波器分析与设计均使用繁琐的公式计算,改变参数后需要重新运算,从而在分析与设计滤波器尤其是高阶滤波器时工作量特别大.这里应用MATLAB 设计FIR滤波器,根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。设计完成之后将得到FIR滤波器的单位冲激响应序列h(n)的各个参数值。 4。1。2 利用Matlab软件的FDATool设计FIR滤波器 (1) 打开Matlab软件,首先在命令窗口键入FDAtool命令,启动滤波器设计分析器,调出FDAtool界面。 (2) 在Filter Type选项中选Lowpass,在Design Method中选择FIR滤波器,接着在FIR中选择Window (窗函数) 法。 (3) 然后在Filter Order 中选择Specify Order (为指定阶数),输入数值为“24”;在Opitions框中选中“Scale Passband”;在窗类型(Window:)下拉框选择“Blackman”。 (4) 在Frenquency Specification选项中,将fs(为采样频率)、fact (为通带截止频率)中分别键入30000 Hz和9600 Hz。 (5) 点击“Design Filter"按钮,完成滤波器的设计。具体参数及设计成功后的结果如图所示。 设计完成后,可以通过菜单选项Analysis 来分析滤波器的幅频响应和相频响应特性。点击Analysis 中的Magnitude Response和Phase Response 对幅频和相频响应进行分析。 4。1。3提取滤波器参数 (6) 在FDATool 中,选择Targets —> Generate C Header。。。, 如图设置后,点击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器的系数表。默认的系数表文件为fdacoefs.h。 (7) 在Matlab中打开得到的fdacoefs.h的文件,系数表如图 (8) 取系数表中的数据小数点后3位有效值,得到如下内容: const float B[25]= { 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 }; 4。2 CCS环境下FIR滤波器的设计及软件仿真 4。2。1 程序流程图如下 初始化 输入低通滤波器各频率参数 构建滤波器频域特性波形 使用FDATool提取滤波器参数或用FIR滤波器计算程序计算得到滤波器参数 构建FIR滤波器进行滤波 无限循环 4.2.2 在CCS集成开发环境下新建FIR滤波器工程 (1)设置软件仿真模式,启动CCS. (2)建立一个文件夹,存放在D:\FIR,将D:\课程设计\FIR滤波器\Fir源程序文件夹下的工程全部复制到D:\FIR,在CCS中打开D:\FIR\fir\fir。pjt工程,打开fir。c文件,编译生成fir.out文件,通过File—〉Load Program…装载该文件。 (3)设置波形时域观察窗口,选择菜单View→Graph→Time/Frequency… ,如图设置 输入数据时域波形观察 滤波后输出波形观察 (4)设置频域观察窗口,选择菜单View→Graph→Time/Frequency… ,分别进行如图设置 输入数据FFT分析图形观察 滤波后输出数据的FFT图形观察 4.2。3观察滤波前后的信号的时域波形及FFT Magnitude波形 (1)设置断点。在程序fir。c中,有注释断点的语句上设置软件断点。 (2)运行并观察结果。选择Debug菜单的Run项,或按F5键运行程序.观察到的图形如下图所示。 4。2。4 程序清单 #include”math。h" #define FIRNUMBER 25 #define PI 3.1415926 float 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 }; float fXn[FIRNUMBER]={ 0.0 }; float fInput,fOutput; float fSignal1,fSignal2; float fStepSignal1,fStepSignal2; float f2PI; int i; float fIn[256],fOut[256]; int nIn,nOut; main(void) { 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;i>0;i—— ) fXn[i]=fXn[i—1]; fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0; fSignal1+=fStepSignal1; if ( fSignal1>=f2PI ) fSignal1—=f2PI; fSignal2+=fStepSignal2; if ( fSignal2〉=f2PI ) fSignal2-=f2PI; return(fXn[0]); } float FIR() { float fSum; fSum=0; for ( i=0;i<FIRNUMBER;i++ ) { fSum+=(fXn[i]*fHn[i]); } return(fSum); } 4。3 对实时采样信号进行滤波的FIR滤波器的实现 4。3。1 程序清单 #include "DSP281x_Device.h" #include ”DSP281x_Examples。h” #include <math.h> #define pi 3。1415927 int px[256]; int py[256]; double npass,h[51], x, y, xmid[51]; int m=50; int n=256; interrupt void adc_isr(void); Uint16 LoopCount; Uint16 ConversionCount; void firdes(int m, double npass) { int t; for (t=0; t〈=m; t++) { h[t] = sin((t-m/2.0)*npass*pi)/(pi*(t—m/2.0)); } if (t=m/2) h[t]=npass; } void main(void) { int xm,ym; double fs,fstop,r,rm; int i,j,p,k; InitSysCtrl(); EALLOW; SysCtrlRegs。HISPCP。all = 0x3; // HSPCLK = SYSCLKOUT/6 EDIS; DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable。ADCINT = &adc_isr; EDIS; InitAdc(); PieCtrlRegs.PIEIER1。bit.INTx6 = 1; IER |= M_INT1; EINT; ERTM; LoopCount = 0; ConversionCount = 0; AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; AdcRegs。ADCMAXCONV.all=0x0000; AdcRegs.ADCCHSELSEQ1。bit。CONV00=0x4; AdcRegs.ADCTRL2。bit.EVA_SOC_SEQ1=1; AdcRegs。ADCTRL2.bit。INT_ENA_SEQ1 = 1; EvaRegs。T1CMPR=0x0380; EvaRegs.T1PR=0x07FF; EvaRegs.GPTCONA。bit。T1TOADC = 1; EvaRegs。T1CON.all = 0x1042; k=0; fs = 250000; fstop = 20000; npass = fstop/fs; for (i=0; i〈=m; i++) { xmid[i]=0; } for(;;) { firdes(m, npass); for (i=0; i〈=n—1; i++) { xm = px[i]; x = xm/1023。0; for (p=0; p〈=m; p++) { xmid[m-p] = xmid[m—p—1]; } xmid[0] = x; r = 0; rm= 0; for (j=0; j〈=m; j++) { r = xmid[j] * h[j]; rm = rm + r; } y = rm; ym = (int)(1023。0 * y); py[i] = ym; } k++; //加断点,观察波形 } } interrupt void adc_isr(void) { px[ConversionCount] = AdcRegs。ADCRESULT0 >〉4; if(ConversionCount == 256) { ConversionCount = 0; } else ConversionCount++; AdcRegs。ADCTRL2.bit。RST_SEQ1=1; AdcRegs.ADCST。bit。INT_SEQ1_CLR=1; PieCtrlRegs.PIEACK。all = PIEACK_GROUP1; return; } 4。3.2 测试效果 如图所示 靠上的是滤波前时域波形,下面的是滤波后时域波形 分别为滤波前和滤波后的FFT分析图形 五、总结 DSP原理及应用是一门非常重要也是一门很注重动手能力的课程,通过这次课程设计,我学到了很多知识并且巩固了以前所学的很多软件和课程。但是还有一个问题没有解决如图,按照方法设计的阶数为什么是23而不是24呢?通过这次课程设计使我对dsp有了更深入的了解,我不仅对以前所学的知识有了较深刻的理解,而且动手能力、独立解决问题的能力有所提高。而且通过本次的课程设计我增加了对Matlab的认识,熟练地运用Matlab工具设计滤波参数,很好的加深了我对课程的理解,方便我的思维。这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手能力。 在这里我要由衷的感谢课程设计期间为我们辛勤值班的四位指导老师,尤其是我们的赵成老师,谢谢您们对我们的悉心指导,帮助我们梳理思路,给我们演示程序的编译运行,让我对DSP产生了浓厚的兴趣。 六、参考文献 [1] 赵成 DSP原理与应用 [2] 《数字信号处理教程》 程佩清 编著 清华大学出版社 [3] 《基于DSP的FIR滤波器的设计与实现》 长沙理工大学 指 导 教 师 评 语 成绩 指导教师 年 月 日展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




课程设计报告FIR滤波器的设计与实现.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2263349.html