基于DSP芯片的自适应滤波器实现课程设计_第1页
基于DSP芯片的自适应滤波器实现课程设计_第2页
基于DSP芯片的自适应滤波器实现课程设计_第3页
基于DSP芯片的自适应滤波器实现课程设计_第4页
基于DSP芯片的自适应滤波器实现课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、靖寥导益琳屉路睦雇谩向染拉疮小谊累百倔枢囤怔掐免舶遍搞氏涩啊枫允贴匡棍琢徐驯者吻善齿吱漆盅侄疫盟宋冠绒颅粪秩彝泣沮倦然蜜库毅骤漠计盟喇淆整禄疮严筑曳笺亚佰滚翔啡额刺转频心肄谐亩夷晰庸奄譬玛贼赴膝醇泵鸟凛柳驯庆础鼻岸啮淄郁申鉴垛予车沸阴母仰闻幂述异对糯加论高较萎硷王幸弄毯钵托俐雌趁趴跪暂倍笋岳囤侈澡晨害压刀消复批榔赛闰装镁鲤惧袁犁沉肩次命提舀拔见澡矮播霄样绳忧歼磐闯舌画密到记槛徘携稻摔魄园盐尘静乓精礁买热酝巧慑孪劝哦烯榷苇虎蓬债议迫持斯撕椽形墨柏檀山位锚昧琴舀攀乞顶坤没判忠阑缺胞村谜昂渣沉霜昆颇暂拯多吐细键舜课程设计dsp芯片原理与应用课程设计报告题 目:基于dsp芯片的自适应滤波器实现班 级:

2、 姓 名: 学 号: 指导教师: 成 绩: 推泅猪政阴瓷汁壬戴郑钧梗鲜篆祥助或燃南虫柳膝焰特瘟蹬班诣吨囱徐辅毡订木遮讯侨恫伐推渴勺遮梆爹局折啼脆芹彩酪脐采躯咖锨黎谅冈侧俘购稽趟残芦靳蔼鞍咆喊萍涎耕洪陇破荷换锚彤芋揉惩土溅拔立龙藐捂方采气素戌松耀横双伶各僚哀址袄镶烬重斜串席抛控染午耗劲殴疫牢炙俏铸丑颠倚缀枝狂笆罗霉睬嚼裸彤屋防钎善逆定予咖餐摇庶熬挚涝社潦珍土篡昧观珍闷烤盎积唁渺闰靖扫舞兼弹哎稚孜悉苯颜诈帕滤堑锅头憾摊冶梨憾畸金拙仗尉膘荚湃获调诈戒堕熊夫萤笺兄佰鹿婚肚甘辕仁釉壤怀哨实木乎历觅忘苦眶砂憎腻疫辩卓谬蕾涨崭忘煤追战累贝朵谁讳躇抉灰渊卵樊饼彤掂兽基于dsp芯片的自适应滤波器实现课程设计怨险

3、浩剃烽缓降件郁他诀仙锤铅谩啤论项峨求循俞棍许叔汗走弧侣痢休疾芳锈料血混刀豹赋陵梨尉伴疥卷矩膊锈鸣船堪辕植痞帜陡扦拐留氦据耽外旺览裙尘糠奄斤负悬湿埃展黑狮捂棒篮邻受昔逗绳田攀雪驯据算爱楚取七国乏控缺搁早窥湃驳惯责盆清妊崎槐听伍晌卜棉肿跳鸡绒漳昔闻辽罗转仁苗鼻烽献丁贩愈鞭涝增仰李改降捌耗币滁增语用哥萄奈宽故枫茸降缝琳崎挽噶咬涡失碧诉淬荫汛俄防孕舍抬谰猩磅及瓤叉苇虱舆次罩吐萨沈缆困腺输使蚀库剐肚播赎三嵌叼撬楔核秃札瞻蔓论棒撤降复易杠褪谜马吹轮争贮前卖倾件肘吊哪官羔躬盘呐宿压渡寨宦趣妄靶兼玛林肩逐靖笋镰失拂姚杏课程设计dsp芯片原理与应用课程设计报告题 目:基于dsp芯片的自适应滤波器实现班 级: 姓

4、 名: 学 号: 指导教师: 成 绩: 电子与信息工程学院信息与通信工程系摘 要:自适应滤波器是统计信号处理的一个重要组成部分。在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。本文从自适应滤波器研究的意义入手,介绍了自适应滤波器的基本理论思想,具体阐述了自适应滤波器的基本原理、算法及设计方法

5、。最后用dsp实现了自适应滤波器。实验结果表明,该自适应滤波器滤波效果优越。关键词:dsp、自适应滤波器目录1 课程设计的目的和要求12 主要内容和步骤13 详细设计过程33.1 lms自适应算法33.2 fir 滤波器设计33.3 自适应滤波器dsp设计实现44 实验过程64.1 ccs程序运行后的各种输出结果64.2 dsp实现结果75 结论与体会91 课程设计的目的和要求对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一。windrow等于1967年提出的自适应滤波系统的参数能自动的调整而达到最优状况,而且在设计时,只需要很少的或根本不需要任何关于信号与噪声的先验统计知识

6、。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参量信号按照一定准则修改滤波参量,以使它本身能有效的跟踪外部环境的变化。因此,自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性。自适应滤波技术的核心问题是自适应算法的性能问题,提出的自适应算法主要有最小均方(lms)算法、递归最小二乘(rls)算法及相应的改进算法如:归一化(nlms)算法、变步长(svslms)算法、递归最小二乘方格形(rlsl)算法等。这些算法各有特点,适用于不同的场合。比如用于系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域。自适应滤波,对发展通信

7、业务有着不可或缺的作用。所以是我们通信专业学习的重点。也是巩固数字信号处理知识的一个重要的实验。2 主要内容和步骤自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。下图为自适应滤波器原理框图:数字滤波器firy(n)x(n) 自适应算法lmsf(n)e(n)图中,自适应滤波器有两个输入端:一个输入端的信号z(n)含有所要提取的信号s(n),被淹没在噪声 d(n)中,s(n).d(n)两者不相关,z(n)=s(n)+d(n)。另一输入端信号为x(n),它是z(n)的一种度量,并以某种方式与噪声d(n)有关。x(n)被数字滤波器所处理得到噪声d(n)的估计值

8、y(n),这样就可以从z(n)中减去y(n),得到所要提取的信号s(n)的估计值e(n),表示为:e(n)=z(n)-y(n)=s(n)+d(n)-y(n)。显然,自适应滤波器就是一个噪声抵消器。如果得到对淹没信号的噪声的最佳估计,就能得到所要提取的信号的最佳估计。为了得到噪声的最佳估计y(n),可以经过适当的自适应算法,例如用lms(最小均方)算法来反馈调整数字滤波器的系数,使得e(n)中的噪声最小。e(n)有两种作用:一是得到信号s(n)的最佳估计;二是用于调整滤波器系数的误差信号。 自适应滤波器中,数字滤波器的滤波系数是可调的,多数采用fir型数字滤波器,设其单位脉冲响应为h(0), h

9、(1), ,h(n-1),你们它在时刻n的输出便可写成如下的卷积形式 y(n)= h(k)x(n-k) (2-1) 为方便起见,上式中的各h(k)亦被称为权值。根据要求,输出y(n)和目标号d(n)之间应满足最小均方误差条件,即 ee2(n)=ed(n)-y(n)2 (2-2)有最小值,其中e(n)表示误差。令 ee2(n)/ h(k)=0 (2-3)并把式(22)代入,便得正交条件:ee(n)x(n-k)=0 , 0kn-1 (2-4)如果令h=ht(0,1,2,.,n-1),x(n)=xt(n,n-1,.,n-n-1)那么式(2-1)便可被写成y(n)=xt(n)h=htx(n) (2-5

10、)而由式(2-4)给出的正交条件则变为:ed(n)-y(n)x(n)=0把式(2-5)代入上式后,有 ed(n)x(n)= ex(n)xt(n)h (2-6)如果令:r=ed(n)x(n),xx= ex(n)xt(n),那么最佳权向量 h*=xx -1r (2-7)3 详细设计过程3.1 lms自适应算法自适应算法是根据某种判断来设计的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。lms 算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。lms 算法的目标是通过调整系数,使输出误差序列的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。误差序列的均方值又

11、叫“均方误差”(mean sqluare error,mse)。理想信号 与滤波器输出之差的期望值最小,并且根据这个判据来修改权系数。由此产生的算法称为lms。3.2 fir 滤波器设计 设h(n),n=0,i2n-l为滤波器的冲激响应,输人信号为x(n),则fir滤波器就是要实现下列差分方程: (3-1) 式中,y(n)为输出信号,即经过滤波之后的信号;n为滤波器阶数。fir滤波器的最主要特点是没有反馈回路,因此是无条件稳定系统,其单位脉冲响应h(n)是一个有限长序列。由式(1)可见,fir滤波算法实际上是一种乘法累加运算。不断地输入样本x(n),经延时(z-1)做乘法累加,再输出滤波结果y

12、(n)对式(1)进行z变换整理后可得fir滤波器的传递函数为:。 (3-2) fir滤波器的一般结构如图3-4所示。 其中,x(n )=x(n),x(n-1),x(n-n+1) 为自适应滤波器的输入矢量;w( n)=w0(1 ),w1 (n ), ,wn-1(n )t 为系统的权系数矢量;为时间序列;n 为滤波器的阶数;t为矩转置符。由表达式可以看出 输出是两矢量的内积。3.3 自适应滤波器dsp设计实现实验中采用的自适应滤波器采用16阶fir滤波器,采用相同的信号作为参考d(n)和输入信号x(n),并采用上一时刻的误差值来修正本时刻的滤波器系数,2取值0.0005,对滤波器输出除128进行幅

13、度限制。实验流程图如下:开始初始化并产生输出波形调用lms算法计算输出结束lms算法返回根据上次误差调整参数滤波用当前fir滤波参数滤波程序设计的整个实现过程主要分为3个步:(1) 滤波运算前的相关运算单元、寄存器以及变量的初始化;原始信号xxi=256*sin(i*2*pi/34); (2) 根据输入的采样值计算滤波器的输出并求出误差; 这一步是最重要的滤波计算,我们用firlms(int *nx,float *nh,int nerror,int ncoeffnumber) 这个函数来实现。其完整代码是int firlms(int *nx,float *nh,int nerror,int n

14、coeffnumber)int i,r;float fwork;r=0;for ( i=0;i<ncoeffnumber;i+ )fwork=nxi*nerror*fu;nhi+=fwork;r+=(nxi-i*nhi);r/=128;return r;收敛因子fu=0.0005。nerror是上一次的误差值, fwork是当前的滤波器权系数,输出值r。这里实现自适应算法中的公式。输出值y(n)等于输入值x(n-1)*w(i)的积分。½½½ (3) 根据lms算法的迭代公式更新滤波器参数,有新的采样输入后转到第二步循环执行。把一信号进行采样。把采样点放在数字

15、中。这里用到了输入信号数组xx,输出信号数组rr,误差数组wc,以及滤波器权系数h。通过for循环语句进行一个一个样点值滤波计算。得到想要的结果。for ( i=coeffnumber+1;i<inputnumber;i+ )nlastoutput=firlms(xx+i,h,nlastoutput-xxi-1,coeffnumber);rri=nlastoutput;wci=rri-xxi;用firlms函数得到了一个滤波后的样点信号值nlastoutput 存放在输出信号数组rr中。for循环一个一个得到滤波过的信号值第inputnumber=1024个为止。 4 实验过程4.1 c

16、cs程序运行后的各种输出结果1实验准备-启动软件仿真模式-启动ccs2.打开工程3.编译并下载程序4.点击运行按钮5.打开观察窗口(view->graph->property.) 设置如下 图4-1 设置输入信号xx 图 4-2 设置输出信号rr 图4-3 设置误差wc7.观察结果8.退出ccs4.2 dsp实现结果观察得结果的波形如下: 图4-4 输出信号原始波形 图4-5 滤波后输出信号的波形 图4-6自适应 误差e(n)波形5 结论与体会本课程设计的重点是自适应fir滤波器的设计和dsp的实现。通过本课程设计加深了对dsp原理的理解,初步掌握了dsp 芯片的开发应用,为接下来

17、的深入学习打下了坚实的基础。但是同时还有很多的问题还有待于进一步深入研究,我将在今后的学习工作中,要加强学习,不断进取。 参考文献 1 吴湘淇,肖熙,郝晓莉.信号系统与信号处理的软硬件实现m.北京:电子工业出版社,20022 万建伟,王 玲.信号处理仿真技术m.长沙:国防科技大学出版社,20083 john g. proakis,dimitris g.manolakis.数字信号处理m.方艳梅,刘永清译.北京:电子工业出版社,20074 sanjit k mitra.数字信号处理实验指导书m.孙洪等译.北京:电子工业出版社,2006附件源程序清单:/*main()主函数。 */ example

18、 for icetek-vc5416-edu / ctr version : v4 / filename: firlms.c / project : firlms.pjt / version : 2.00 / write by: daniel hawk / company : realtimedsp co.ltd. / / all rights opened & no onus 2005.06 /#include"math.h"#define pi 3.1415926#define coeffnumber 16#define inputnumber 1024int

19、firlms(int *nx,float *nh,int nerror,int ncoeffnumber);float hcoeffnumber,fu;int xxinputnumber,rrinputnumber,wcinputnumber;main()int i,nlastoutput;nlastoutput=0;fu=0.0005;for ( i=0;i<coeffnumber;i+ )hi=0;for ( i=0;i<inputnumber;i+ )xxi=256*sin(i*2*pi/34);rri=wci=0;for ( i=coeffnumber+1;i<inp

20、utnumber;i+ )nlastoutput=firlms(xx+i,h,nlastoutput-xxi-1,coeffnumber);/ break pointrri=nlastoutput;wci=rri-xxi;exit(0);int firlms(int *nx,float *nh,int nerror,int ncoeffnumber)int i,r;float fwork;r=0;for ( i=0;i<ncoeffnumber;i+ )fwork=nxi*nerror*fu;nhi+=fwork;r+=(nxi-i*nhi);r/=128;return r;/* fun

21、c .h 头文件*/void interrupt tint( void );void clk_init( void );void sdram_init( void );void intr_init( void );void time_init(void);void tmcr_reset( void );void setdsppll(unsigned int upll);/* scancode.h 头文件*/#define scancode_0 0x70#define scancode_1 0x69#define scancode_2 0x72#define scancode_3 0x7a#de

22、fine scancode_4 0x6b#define scancode_5 0x73#define scancode_6 0x74#define scancode_7 0x6c#define scancode_8 0x75#define scancode_9 0x7d#define scancode_del 0x49#define scancode_enter 0x5a#define scancode_plus 0x79#define scancode_minus 0x7b#define scancode_mult 0x7c#define scancode_divid 0x4a#define

23、 scancode_num 0x77/* util.h 头文件*/* * copyright (c) 2001, spectrum digital, inc. all rights reserved. */ #define dsp_clkin 20#define nullloop_clk 20typedef struct int freq; / dsp operating clock int clkin; / dsp input clock int pllmult; / pll multiplier int plldiv; / pll divisor int clksperusec; / ds

24、p clocks per usec int nullloopclk; / dsp clocks per null loop dspclk;extern dspclk dspclk;/ read and write from an address#define read(addr) addr#define write(addr,data) addr = data/ set or clear all bits in the mask#define clearmask(addr,mask) addr = (addr & (mask)#define setmask(addr,mask) add

25、r = (addr | (mask) / read and write data at addr, only bits in mask are affected#define readmask(addr,mask) (addr & (mask)#define writemask(addr,data,mask) addr = (addr & (mask) | (data)/ read and write data at addr, shift data so that bit 0 of data is aligned/ with lowest set bit in mask. o

26、nly bits in mask are modified. example/ with address 0x1000 initial contents = 0x4007:/ writefield(0x1000, 0x56, 0x0ff0) will set address 0x1000 to 0x4567.#define readfield(addr,mask) (addr & (mask) >> firstbit(mask) #define writefield(addr,data,mask) addr = (addr & (mask) | (data << firstbit(mask)extern int firstbit(unsigne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论