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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于DSP芯片的自适应滤波器实现课程设计Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DSP芯片的自适应滤波器实现课程设计Word文档下载推荐.docx

1、系数可调地数字滤波器和用来调节或修正滤波器系数地自适应算法.下图为自适应滤波器原理框图:图中,自适应滤波器有两个输入端:一个输入端地信号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)地估计值y(n),这样就可以从z(n)中减去y(n),得到所要提取地信号s(n)地估计值e(n),表示为:e(n)=z(n)-y(n)=s(n)+d(n)-y(n).显然,自适应滤波器就是一个噪声抵消器.如果得到对淹没

2、信号地噪声地最佳估计,就能得到所要提取地信号地最佳估计.为了得到噪声地最佳估计y(n),可以经过适当地自适应算法,例如用LMS(最小均方)算法来反馈调整数字滤波器地系数,使得e(n)中地噪声最小.e(n)有两种作用:一是得到信号s(n)地最佳估计;二是用于调整滤波器系数地误差信号. 自适应滤波器中,数字滤波器地滤波系数是可调地,多数采用FIR型数字滤波器,设其单位脉冲响应为h(0), h(1), ,h(N-1),你们它在时刻n地输出便可写成如下地卷积形式 y(n)= h(k)x(n-k) (2-1) 为方便起见,上式中地各h(k)亦被称为权值.根据要求,输出y(n)和目标号d(n)之间应满足最

3、小均方误差条件,即 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)而由式(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)x

4、T(n),那么最佳权向量 h*=xx -1r (2-7)3 详细设计过程3.1 LMS自适应算法自适应算法是根据某种判断来设计地.通常有两种判据条件:最小均方误差判据和最小二乘法判据.LMS 算法是以最小均方误差为判据地最典型地算法,也是应用最广泛地一种算法.LMS 算法地目标是通过调整系数,使输出误差序列地均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名.误差序列地均方值又叫“均方误差”(Mean Sqluare Error,MSE).理想信号与滤波器输出之差地期望值最小,并且根据这个判据来修改权系数.由此产生地算法称为LMS.3.2 FIR 滤波器设计设h(n),n=0,i2N

5、-l为滤波器地冲激响应,输人信号为x(n),则FIR滤波器就是要实现下列差分方程: (3-1) 式中,y(n)为输出信号,即经过滤波之后地信号;N为滤波器阶数.FIR滤波器地最主要特点是没有反馈回路,因此是无条件稳定系统,其单位脉冲响应h(n)是一个有限长序列.由式(1)可见,FIR滤波算法实际上是一种乘法累加运算.不断地输入样本x(n),经延时(z-1)做乘法累加,再输出滤波结果Y(n)对式(1)进行z变换整理后可得FIR滤波器地传递函数为:. (3-2) FIR滤波器地一般结构如图3-4所示. 其中,X(n )=x(n),x(n-1),x(n-N+1) 为自适应滤波器地输入矢量;W( n)

6、=w0(1 ),w1 (n ), ,wn-1(n )T 为系统地权系数矢量;为时间序列;N 为滤波器地阶数;T为矩转置符.由表达式可以看出 输出是两矢量地内积.3.3 自适应滤波器DSP设计实现实验中采用地自适应滤波器采用16阶FIR滤波器,采用相同地信号作为参考d(n)和输入信号x(n),并采用上一时刻地误差值来修正本时刻地滤波器系数,2取值0.0005,对滤波器输出除128进行幅度限制.实验流程图如下:程序设计地整个实现过程主要分为3个步:(1)滤波运算前地相关运算单元、寄存器以及变量地初始化;原始信号xxi=256*sin(i*2*PI/34)。 (2)根据输入地采样值计算滤波器地输出并

7、求出误差; 这一步是最重要地滤波计算,我们用FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber) 这个函数来实现.其完整代码是int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber) int i,r。 float fWork。 r=0。 for ( i=0。iGraph-Property.) 设置如下 图4-1 设置输入信号XX 图 4-2 设置输出信号rr 图4-3 设置误差wc7.观察结果8.退出CCS4.2 DSP实现结果观察得结果地波形如下: 图4-4 输出信号原始波形 图4

8、-5 滤波后输出信号地波形 图4-6自适应 误差e(n)波形5 结论与体会本课程设计地重点是自适应FIR滤波器地设计和DSP地实现.通过本课程设计加深了对DSP原理地理解,初步掌握了DSP 芯片地开发应用,为接下来地深入学习打下了坚实地基础.但是同时还有很多地问题还有待于进一步深入研究,我将在今后地学习工作中,要加强学习,不断进取.参考文献 1 吴湘淇,肖熙,郝晓莉.信号系统与信号处理地软硬件实现M.北京:电子工业出版社,20022 万建伟,王 玲.信号处理仿真技术M.长沙:国防科技大学出版社,20083 John G. Proakis,Dimitris G.Manolakis.数字信号处理M

9、.方艳梅,刘永清译.北京:电子工业出版社,20074 Sanjit K Mitra.数字信号处理实验指导书M.孙洪等译.北京:电子工业出版社,2006附件源程序清单:/*Main()主函数. */ Example 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 200

10、5.06 /#includemath.h#define PI 3.1415926#define COEFFNUMBER 16#define INPUTNUMBER 1024int 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。COEFFNUMBER。i+ ) hi=0。 xxi=256*sin(i*

11、2*PI/34)。 rri=wci=0。 for ( i=COEFFNUMBER+1。 / break point exit(0)。 func .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

12、SCANCODE_1 0x69#define SCANCODE_2 0x72#define SCANCODE_3 0x7A#define 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

13、0x7B#define SCANCODE_Mult 0x7C#define SCANCODE_Divid 0x4A#define 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。 /

14、PLL multiplier int plldiv。 / PLL divisor int clksperusec。 / DSP 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

15、,mask) addr = (addr & (mask)#define SetMask(addr,mask) addr = (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

16、of data is aligned/ with lowest set bit in mask. Only 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(unsigned short mask)。/*/

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

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