matlab自适应滤波去噪

matlab自适应滤波去噪

ID:11269093

大小:145.00 KB

页数:10页

时间:2018-07-11

matlab自适应滤波去噪_第1页
matlab自适应滤波去噪_第2页
matlab自适应滤波去噪_第3页
matlab自适应滤波去噪_第4页
matlab自适应滤波去噪_第5页
资源描述:

《matlab自适应滤波去噪》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《MATLAB自适应滤波去噪》课程设计报告1.课程设计目的此次课程设计目的是为了让我们学会使用MATLAB进行计算机仿真,使用自适应滤波法设计一个语音去噪声电路。培养我们的电路设计思路及其算法,明白理论与实践相结合的重要性,培养了我们的实际操作能力以及锻炼我们对实际问题的分析与解决的能力。2.课程设计内容2.1LMS自适应算法原理自适应过程一般采用典型LMS自适应算法,但当滤波器的输入信号为有色随机过程时,特别是当输入信号为高度相关时,这种算法收敛速度要下降许多,这主要是因为输入信号的自相关矩阵特征值的分散程度加剧将导致算法收敛性能的恶化和稳态

2、误差的增大。此时若采用变换域算法可以增加算法收敛速度。变换域算法的基本思想是:先对输入信号进行一次正交变换以去除或衰减其相关性,然后将变换后的信号加到自适应滤波器以实现滤波处理,从而改善相关矩阵的条件数。因为离散傅立叶变换DFT本身具有近似正交性,加之有FFT快速算法,故频域分块LMSFBLMS算法被广泛应用。FBLMS算法本质上是以频域来实现时域分块LMS算法的,即将时域数据分组构成N个点的数据块,且在每块上滤波权系数保持不变。其原理框图如图2所示。FBLMS算法在频域内可以用数字信号处理中的重叠保留法来实现,其计算量比时域法大为减少,

3、也可以用重叠相加法来计算,但这种算法比重叠保留法需要较大的计算量。块数据的任何重叠比例都是可行的,但以50%的重叠计算效率为最高。对FBLMS算法和典型LMS算法的运算量做了比较,并从理论上讨论了两个算法中乘法部分的运算量。本文从实际工程出发,详细分析了两个算法中乘法和加法的总运算量,其结果为:复杂度之比=FBLMS实数乘加次数/LMS实数乘加次数=(25Nlog2N+2N-4)/[2N(2N-1)]采用ADSP的C语言来实现FBLMS算法的程序如下:for(i=0;i<=30;i++){for(j=0;j<=n-1;j++){in[j]=i

4、nput[i×N+j;]rfft(in,tin,nf,wfft,wst,n);rfft(w,tw,wf,wfft,wst,n);cvecvmlt(inf,wf,inw,n);ifft(inw,t,O,wfft,wst,n);for(j=0,j<=N-1;j++){y[i×N+j]=O[N+j].re;e[i×N+j]=refere[i×N+j]-y[i×N+j];temp[N+j]=e[i×N+j;}rfft(temp,t,E,wfft,wst,n);for(j=0;j<=n-1;j++){inf_conj[j]=conjf(inf[j]);}

5、cvecvmlt(E,inf_conj,Ein,n);ifft(Ein,t,Ein,wfft,wst,n);for(j=0;j<=N-1;j++){OO[j]=Ein[j].re;w[j]=w[j]+2*u*OO[j];}}在EZ-KIT测试板中,笔者用汇编语言和C语言程序分别测试了典型LMS算法的运行速度,并与FBLMS算法的C语言运行速度进行了比较,表2所列是其比较结果,从表2可以看出滤波器阶数为64时,即使是用C语言编写的FBLMS算法也比用汇编编写的LMS算法速度快20%以上,如果滤波器的阶数更大,则速度会提高更多。2.2语音

6、信号去噪声源程序%lms算法源程序clearallcloseall%channelsystemordersysorder=5;%NumberofsystempointsN=2000;inp=randn(N,1);n=randn(N,1);[b,a]=butter(2,0.25);Gz=tf(b,a,-1);%ThisfunctionissubmittedtomakeinverseZ-transform(Matlabcentralfileexchange)%Thefirstsysorderweightvalue%h=ldiv(b,a,sysord

7、er)';%ifyouuseldivthiswillgiveh:filterweightstobeh=[0.0976;0.2873;0.3360;0.2210;0.0964;];y=lsim(Gz,inp);%addsomenoisen=n*std(y)/(10*std(n));d=y+n;totallength=size(d,1);%Take60pointsfortrainingN=60;%beginofalgorithmw=zeros(sysorder,1);forn=sysorder:Nu=inp(n:-1:n-sysorder+1);y

8、(n)=w'*u;e(n)=d(n)-y(n);%Startwithbigmuforspeedingtheconvergencethenslowdow

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。