版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、无限冲激响应滤波器(iir)算法硬件实现摘要20世纪60年代以来,随着大规模集成电路、数字计算机等信息技术的飞速发展,数字信号处理(digital signal processing, dsp)技术应运而生并得到快速发展。在过去的20多年时间里,dsp在理论和应用方面不断地进步和完善,在越来越多的应用领域中迅速取代传统的模拟信号处理方法,并开辟出出许多新的应用领域。目前数字信号处理技术已经在通信、雷达、航空航天、工业控制、生物医学控制、生物医学工程、网络及家电领域得到极为广泛的应用,数字化时代正在到来。1928年,美国德州仪器公司(texas instruments incorporation
2、,简称ti公司)推出该公司的第一款dsps芯片,很快dsps芯片就以其数字器件特有的稳定性、可重复性、可大规模集成和易于实现dsp算法等优点,为数字信号处理技术带来了更大的发展和应用前景。采用各种类型dsps实现系统的数字化处理和控制已经成为未来发展的趋势,并且睡着dsps运算能力的不断提高,数字信号处理的研究重点由最初的非实用转向高速实时应用。本文主要是应用ti公司生产的一款芯片tms320f2812 dsps来实现无限冲击响应滤波器(iir)算法。本文的主要工作可归结如下:1、 介绍无限冲激响应滤波器(iir)实现的原理。2、 详细分析无限冲激响应滤波器(iir)算法。3、 画出无限冲激响
3、应滤波器(iir)实现的硬件框图及软件流程图。4、 实验调试过程及步骤。5、 分析在ccs软仿真及硬仿真环境下实验结果。6、 反汇编一个小程序及对dsps实现iir算法理解。7、 对学习dsps理论课及做实验的心得体会。通过软件仿真及硬件实现结果表明,用dsps实现无限冲激响应滤波器(iir)算法能够很好的达到预期的效果。关键词:iir, , dsps, 无限冲激响应,ccs,滤波器引言硬件实现无限冲激响应滤波器(iir)算法有多种方法,本文介绍用ti公司生产的一款芯片tms320f2812 dsps来实现无限冲激响应滤波器(iir)算法,其中涉及无限冲激响应滤波器(iir)算法软件仿真和硬件
4、实现。通过实验分析,我们可以看出实验结果和理论结果符合的很好,因此ms320f2812 dsps可以很好的实现无限冲激响应滤波器的滤波特性。实验原理1、 无限冲激响应数字滤波器的理论基础。2、 模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝赛尔滤波器)。3、 数字滤波器系数的确定方法。4、 根据要求设计低通iir滤波器要求:低通巴特沃斯滤波器在其通带边缘1khz处的增益为-3db,12khz处的阻带衰减为30的db,采样频率25khz。设计:-确定待求通带边缘频率fp1hz、待求阻带边缘频率fs1hz和待求阻带衰减-20logs db。模拟边缘频率为:fp1=1000 khz,
5、fs1=12000khz,阻带边缘衰减为:-20logs db=30db。-用=2f/fs把由hz表示的待求边缘频率转换成弧度表示的数字频率,得到p1,s1p1=2fp1/fs1 =21000/25000=0.08弧度s1=2fs1/fs =212000/25000=0.96弧度 -计算预扭曲线模拟频率以避免双线性变换带来的失真。由w=2fstan(/2)求得wp1和ws1,单位为弧度/秒wp1=2fstan(p1/2)=6316.5弧度/秒ws1=2fstan(s1/2)=794727.2弧度/秒 -由已给定的阻带衰减-20logs db确定阻带边缘增益s。 因为-20logs db=30d
6、b,所以logs=-30/20,s=0.03162-计算所需滤波器阶数:因此,一阶巴特沃斯滤波器就满足要求。-一阶巴特沃斯滤波器的传输函数为:h(s) = wp1/(s+wp1)=6316.5/(s+6316.5)有双线性变换定义s=2fs(z-1)/(z+1)得到的数字滤波器的传输函数为:因此,差分方程为:yn=0.7757yn-1+0.1122xn+0.1122xn-1.硬件框图因此,差分方程为:yn=0.7757yn-1+0.1122xn+0.1122xn-1.硬件框图d/a4路12bit数据地址控制i/opwmspispi4个用户可控开关ledcpld扩展dsp引脚ram:128k*1
7、6bit ram:128k*16bitdsp总线rs232can驱动16路,12bitjatgtms320f2812pgfajtagport 片上资源 主频:150mhza/d ram:128k*16bit flash:128k*16bit cana/df2812-a评估板原理图液晶显示及键盘模块信号源模块dsp评估板模块仿真器模块pc机实验中用到的主要硬件模块软件流程图开始初始化工作变量调用波形发生子程序产生混叠的波形(高频+低频)调用iir滤波器子程序计算当前输出波形发生计算步长用标准c的函数sin函数和cos函数计算当前波形值返回波形值返回计算结果iir波形用滤波器系数乘以保存的n-1个
8、输入输出值和当前输入值并求和返回计算结果调试过程和步骤1. 实验准备(1) 连接实验设备。(2) 准备信号源进行ad输入。1) 取出2根实验箱附带的信号线。2) 用1根信号线连接实验箱左侧信号源的波形输出a端口和“a/d输入”模块的“adcin0”插座,注意插头要插牢、到底。这样,信号源波形输出a的输出波形即可送到 icetek-f2812a板的ad输入通道0.3) 用1根信号线连接实验箱左侧信号源的波形输出b端口和“a/d输入”模块的“adcin1”插座,注意插头要插牢、到底。这样,信号源波形输出a的输出波形即可送到 icetek-f2812a板的ad输入通道1.4) 设置波形输出a:-向内
9、侧按波形频率选择按钮,直到标有正弦波的指示灯亮。-上下调节波形频率选择按钮,直到标有100-1khz的指示灯亮。-调节幅值调整旋钮,将波形输出a的幅值调到适当位置。 5)设置波形输出b: -向内侧按波形频率选择按钮,直到标有正弦波的指示灯亮。-上下调节波形频率选择按钮,直到标有1k-10khz的指示灯亮。-调节幅值调整旋钮,将波形输出b的幅值调到适当位置。注意:由于模数输入信号未经任何转换就进入dsp,所以必须保证输入的模拟信号的幅度在03v之间。必须用示波器检测信号范围,保证最小值0v,最大值3v,否则容易损坏dsp芯片的模数采集模块。2. 设置 code composer studio 2
10、.21在硬仿真(emulator)方式下运行。3. 启动code composer studio 2.21 选择菜单debug-reset cpu。4. 打开工程文件 工程目录:d:dspt8mixeiirmixeriir.pjt5. 编译、下载程序,选择菜单debug-go main,使程序运行到 main 函数的入口位置。6. 观察窗口 -打开iir.c,查看源代码。7. 观察程序运行结果 按ctr控制板的k6键,实现滤波显示,k7键实现混频显示,按k8键实现a、b两信号源分屏显示。8. 观察动态效果,调节信号源输出,观察滤波器输出,改变信号源输入的波形、频率参数,观察动态效果。9. 退出
11、ccs。实验结果一、软仿真环境下的实验结果1. 作如下设置及得到的波形图图12作如下设置得到的波形图图23. 作如下设置得到的波形图图34. 作如下设置得到的波形图图44. 把四幅图片放着一起比较如下图5二、硬仿真环境下的实验结果1. 按ctr控制板的k6键观察到的波形图62. 按k7键观察到的波形图73. 按k8键观察到的波形图8实验结果分析1. 软仿真结果分析-图1是信号经过调制后的模型,毛刺代表其高频分量。-图3是图1中信号的频域图形,从频域可以看出,其频谱既含有低频分量,又含有高频分量。-图2调制信号经过无限冲击响应滤波器(iir)滤波之后得到的波形。-图4图2中信号的频域图形,从频域
12、可以看出,经过无限冲击响应滤波器(iir)滤波之后只剩下低频分量,高频分量几乎衰减为0。-图5把四幅图放在一块比较,可以显而易见的看出图形滤波前后的差别,经比较可以看出,在软仿真条件下,用tms320f2812 dsps来实现的无限冲击响应滤波器(iir)具有较好的滤波性能。2.硬仿真结果分析 -图 6 上面为低频信号,下面为高频信号。 -图7为两信号相乘的结果,即调制的结果。 -图8为调制信号经无限冲击响应滤波器(iir)的结果。比较图6和图8我们可以发现,两图的波形几乎完全相同,由此我们可以得出如下结论: 用tms320f2812 dsps来实现的无限冲击响应滤波器(iir)具有较好的滤波
13、性能。程序算法分析及反汇编1、根据自己的理解,给iir.c程序添加备注#include dsp281x_device.h / dsp281x headerfile include file#include dsp281x_examples.h / dsp281x examples include file#include f2812a.h#includemath.h#define iirnumber 2#define signal1f 1000#define signal2f 4500#define samplef 10000#define pi 3.1415926float inputwav
14、e();float iir();float fbniirnumber= 0,0.7757 ; /定义差分方程y(n)系数,并赋值float faniirnumber= 0.1122,0.1122 ; /定义差分方程x(n)的系数,并赋值float fxniirnumber= 0.0 ; /定义输入序列float fyniirnumber= 0.0 ; /定义输出序列float finput,foutput; /定义输入,输出float fsignal1,fsignal2;float fstepsignal1,fstepsignal2; /定义第一路信号周期,第二路信号周期float f2pi;
15、 /定义2*piint i;float fin256,fout256;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;fstepsignal1=2*pi/50; / 第一路信号周期fstepsignal2=2*pi/2.5; /第二路信号周期while ( 1 )finput=inputwave(); /输入波形finnin=finput;nin+; nin%=256;foutput=iir(); /
16、iir滤波foutnout=foutput; /输出波形nout+;if ( nout=256 )nout=0;/* 请在此句上设置软件断点 */ float inputwave() /输入波形函数for ( i=iirnumber-1;i0;i- )fxni=fxni-1;fyni=fyni-1;fxn0=sin(fsignal1)+cos(fsignal2)/6.0;fyn0=0.0;fsignal1+=fstepsignal1; /低频信号if ( fsignal1=f2pi )fsignal1-=f2pi;fsignal2+=fstepsignal2; /高频信号if ( fsigna
17、l2=f2pi )fsignal2-=f2pi;return(fxn0); /返回调制信号float iir()float fsum;fsum=0.0;for ( i=0;iiirnumber;i+ )fsum+=(fxni*fani); /本程序的算法所在,在此实现滤波fsum+=(fyni*fbni); /本程序的算法所在,在此实现滤波return(fsum);2、本实验实现滤波的算法就是: yn=0.7757yn-1+0.1122xn+0.1122xn-1.通过此算法可以滤去信号的高频分量。3、自己对照着c语言写的汇编语言小程序 22 / 22varx .word 0x0002vary
18、.word 0x0001varz .word 0x0000start:movw dp,#varxl1:mov al,varxadd al,varymov varz,alsb l1,unc endint x,y,z;main() x=1;y=2; while(1) z=x+y; 4、实现算法(fsum+=(fxni*fani); fsum+=(fyni*fbni);)的汇编语言:iir:addb sp,#4movb ah,#0movb al,#0movl *-sp4,accmovw dp,#0xfe00mov 0,#0mov al,0cmpb al,#2sb l7,geql6:setc sxmm
19、ovl xar4,#0x3f8016mov acc,0 1addl xar4,accmovl acc,*+xar40movl *-sp2,accmovl xar4,#0x3f8012mov acc,0 1addl xar4,accmovl acc,*+xar40lcr fs$mpymovl *-sp2,accmovl acc,*-sp4 lcr fs$addmovl *-sp4,acc结束语心得体会这学期学习了王院长教授dsp原理与应用技术这本书,收获很多。dsp对我们来说是一门新的知识,是一门综合性很强的专业课程,觉得它学起来应该不是很容易。这门课一开始,王院长就告诉我们如何学习这门课,因为
20、这门课对我们来说比较陌生,是一门全新的课。王院长给我们说dsps是一门实践性很强的课,学生往往在学习过程中和实际开发过程相脱节,因此对dsps的一些基本概念只停留在文字的解释上,形不成系统的概念,无法与实践的电路相联系。王院长告诉我们初学者学习这门课时应该把基本概念、逻辑概念、物理概念相互联系起来,学会三者之间的对应。由于dsps涉及的内容很多,王院长告诉我们要学会框架是的学习方法,所谓框架是的学习方法,就是要抓住课程主要的知识点,不要一开始就陷入众多的寄存器、汇编指令及片内外设的具体应用中,而应该先掌握dsps芯片的主要知识体系,切实掌握仿真、实时性、系统等概念的内涵。在课程学习过程中我体会
21、到,只有按照王院长所说的学习方法才能跟上课的进度,因为书上的内容太多,不可能全部记着,只有主要的知识体系才能掌握。理论课程结束之后,我们紧接着就开始了实验课。因为dsps是一门实践性很强的课程,所以实验课对我们来说是很重要的。我们一共做了八个实验,在这八个实验的过程中收获了不少经验教训。我们实验用的软件是ccs,硬件是dsp实验箱。在做实验过程中一定的看清实验步骤严格按实验步骤操作,不然很轻则造成不必要的麻烦,重则可能导致实验设备的损坏。做完八个试验后,我的体会是,在做每个实验之前,最好把实验内容看一遍,弄明白实验原理,熟悉实验步骤,这样做实验室才能做到有的放矢。在软仿真环境下做的实验,有时间的话可以在宿舍先做一遍,在做的过程中如果遇到不能解决的问题,在实验室做实验的时候可以向助教请教解决。即使在宿舍做实验没有遇到问题,对我们来说也是有好处的,因为在宿舍已经做过一遍,所以在实验室我们可以轻车熟路的做下去,快速的做完规定的实验,剩余的时间我们可以看你做过实验的程序,争取在实验室里把程序给看明白。在实验室看程序好处多多,当遇到不懂的语句时,我们可以请教助教,如果在其他地方看程序,恐怕就没用这么好的条件了。做硬仿真实验时,由于宿舍没有试验箱,我们不可能在宿舍做,所以在做硬仿真实验之前,我们一定要做好预习准备工作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 著作权转让合同书
- 公积金贷款合同样式
- 预制构件交易协议
- 深夜维修服务合同
- 光伏设备交易合同
- 购货合同范本模板
- 农村自建房买卖合同的违约责任认定
- 植物种苗购销合同
- 电子产品购买合同格式
- 多孔砖购销合同签订优惠条件说明
- 投资控股合同
- 2025蛇年七言春联带横批(60幅)
- 用户管理模块
- Unit 1 Making friends Part B Lets learn(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 防火门及防火卷帘施工方案
- 广东省广州市越秀区2022-2023学年八年级上学期期末历史试题(含答案)
- 2025版国家开放大学专本科《计算机应用基础》一平台在线形考任务 (形考作业一至三)试题及答案
- 部编人教版小学语文六年级2024-2025学年度第一学期期末练习试卷
- 2021-2022学年统编版道德与法治五年级上册全册单元测试题及答案(每单元1套共6套)
- 人力资源外包投标方案
- 量子力学学习心得(三)
评论
0/150
提交评论