




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-LMS算法function yn,W,en=LMS(xn,dn,M,mu,itr)% LMS(Least Mean Squre)算法% 输入参数:% xn 输入的信号序列 (列向量)% dn 所期望的响应序列 (列向量)% M 滤波器的阶数 (标量)% mu 收敛因子(步长) (标量) 要求大于0,小于xn的相关矩阵最大特征值的倒数 % itr 迭代次数 (标量) 默认为xn的长度,Mitrlength(xn)% 输出参数:% W 滤波器的权值矩阵 (矩阵)% 大小为M x itr,% en 误差序列(itr x 1) (列向量) % yn 实际输出序列 (列向量)% 参数个数必须为4个或5个if nargin = 4 % 4个时递归迭代的次数为xn的长度 itr = length(xn);elseif nargin = 5 % 5个时满足Mitrlength(xn) | itrM error(迭代次数过大或过小!); endelse error(请检查输入参数的个数!);end% 初始化参数en = zeros(itr,1); % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差W = zeros(M,itr); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0% 迭代计算for k = M:itr % 第k次迭代 x = xn(k:-1:k-M+1); % 滤波器M个抽头的输入 y = W(:,k-1). * x; % 滤波器的输出 en(k) = dn(k) - y ; % 第k次迭代的误差 % 滤波器权值计算的迭代式 W(:,k) = W(:,k-1) + 2*mu*en(k)*x;end% 求最优时滤波器的输出序列yn = inf * ones(size(xn);for k = M:length(xn) x = xn(k:-1:k-M+1); yn(k) = W(:,end).* x;end调用LMS算法%function main()close all% 周期信号的产生 t=0:99;xs=10*sin(0.5*t);figure;subplot(2,1,1);plot(t,xs);grid;ylabel(幅值);title(it输入周期性信号);% 噪声信号的产生randn(state,sum(100*clock);xn=randn(1,100);subplot(2,1,2);plot(t,xn);grid;ylabel(幅值);xlabel(时间);title(it随机噪声信号);% 信号滤波xn = xs+xn;xn = xn. ; % 输入信号序列dn = xs. ; % 预期结果序列M = 20 ; % 滤波器的阶数rho_max = max(eig(xn*xn.); % 输入信号相关矩阵的最大特征值mu = rand()*(1/rho_max) ; % 收敛因子 0 mu 1/rhoyn,W,en = LMS(xn,dn,M,mu);% 绘制滤波器输入信号figure;subplot(2,1,1);plot(t,xn);grid;ylabel(幅值);xlabel(时间);title(it滤波器输入信号);% 绘制自适应滤波器输出信号subplot(2,1,2);plot(t,yn);grid;ylabel(幅值);xlabel(时间);title(it自适应滤波器输出信号);% 绘制自适应滤波器输出信号,预期输出信号和两者的误差figure plot(t,yn,b,t,dn,g,t,dn-yn,r);grid;legend(自适应滤波器输出,预期输出,误差);ylabel(幅值);xlabel(时间);title(it自适应滤波器);运行结果LMS算法DSP程序#includemath.h#define PI 3.1415926#define Coeff 16 /定义阶数16阶#define num 1024 /点数int FIRLMS(int *nx,float *nh,int nError,int nCoeffNum); /LMS函数声明float hCoeff,fU; /h 单位脉冲响应 fu-2U的值int xnum,ynum,znum;/x 输入信号,y输出,z 误差信号main()int i,out; out=0;fU=0.0005;for ( i=0;iCoeff;i+ )hi=0;/初始化 噪声信号for ( i=0;inum;i+ )xi=256*sin(i*2*PI/34);/初始化输入信号yi=zi=0;/初始化 输出信号 误差信号for ( i=Coeff+1;inum;i+ )out=FIRLMS(x+i,h,out-xi-1,Coeff);/ 设置断点,调用LMS函数yi=out;zi=yi-xi;exit(0); /推出int FIRLMS(int *nx,float *nh,int nError,int nCoeffNum)int i,r;float fWork;r=0;for ( i=0;inCoeffNum;i+ )fWork=nxi*nError*fU; /h(n+1)=h(n)+2u*e(n)*x(n)nhi+=fWork;r+=(nxi-i*nhi);r/=128;return r;运行结果音频采集程序#include #include #include #include #include #include #include #include #include 5502_FLASH.h#include E2PROM_Function.h#include CODEC.h#undef CODEC_ADDR#define CODEC_ADDR 0x1AUint16 SourData165536=0;Uint16 SourData265536=0;Uint16 SourData365536=0;Uint16 OutData165536=0;Uint16 OutData265536=0;Uint16 OutData365536=0;#pragma DATA_SECTION (SourData1,.Audio_in_data1);#pragma DATA_SECTION (SourData2,.Audio_in_data2);#pragma DATA_SECTION (SourData3,.Audio_in_data3);#pragma DATA_SECTION (OutData1,.Audio_out_data1);#pragma DATA_SECTION (OutData2,.Audio_out_data2);#pragma DATA_SECTION (OutData3,.Audio_out_data3);/ 定义McBSP的句柄MCBSP_Handle hMcbsp;/*-*/ FUNCTION: MAIN/*-*/ void main(void) Uint16 DataTempLeft = 0;/ 暂存采样数据 Uint16 DataTempRight = 0;/ Initialize CSL library - This is REQUIRED ! CSL_init();#if TESTCOMMAND=1TestCommand =AUDIOTRY;/试听#endif#if TESTCOMMAND=2TestCommand =AUDIOCOPY;/录音并回放#endif/ The main frequency of system is 240MHz/ 该频率是为了设置IIC模块的需要设置的,为了使用I2C_setup函数 PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0); /EMIF初始化 Emif_Config(); / Open McBSP port 1 and get a McBSP type handlehMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);/ Config McBSPport 1 by use previously defined structureMcbsp_Config(hMcbsp);/I2C初始化I2C_cofig(); /CODEC寄存器初始化inti_AIC(); /*-*/ / Receive the ADC output data of CODEC / Then output the received data to DAC of CODEC /*-*/while(1) /* 左通路数据 */while(!MCBSP_rrdy(hMcbsp);DataTempLeft = MCBSP_read16(hMcbsp); /* 右通路数据 */ while(!MCBSP_rrdy(hMcbsp);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论