MATLAB自适应滤波去噪

上传人:枫** 文档编号:563448739 上传时间:2022-09-15 格式:DOCX 页数:11 大小:245.93KB
返回 下载 相关 举报
MATLAB自适应滤波去噪_第1页
第1页 / 共11页
MATLAB自适应滤波去噪_第2页
第2页 / 共11页
MATLAB自适应滤波去噪_第3页
第3页 / 共11页
MATLAB自适应滤波去噪_第4页
第4页 / 共11页
MATLAB自适应滤波去噪_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《MATLAB自适应滤波去噪》由会员分享,可在线阅读,更多相关《MATLAB自适应滤波去噪(11页珍藏版)》请在金锄头文库上搜索。

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

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

3、重叠比例都是可行的,但以50%的重叠计算效率为最高。对FBLMS算法和典型LMS算法的运算量做了比较,并从理论上讨论了两个算法中乘法部分的运算量。本文从实际工程出发,详细分析了两个算法中乘法和加法的总运算量,其结果为:复杂度之比= FBLMS实数乘加次数/LMS实数乘加次数=(25Nlog2N+2N 4)/2N(2N1)采用ADSP的C语言来实现FBLMS算法的程序如下:for(i = 0;iV = 30;i + + )for(j = 0;jV=nl;j + +)inj=inp ut iXN+j; rfft(in,tin, nf,wfft,wst,n);rfft(w,t w,wf,wf ft

4、,ws t,n);cvecvm lt(i nf,wf,inw,n);ifft(inw,t, O,wfft,wst,n);for(j = 0,jV=Nl;j + +)yiXN+j=ON+j. re;eiXN+j =refereiXN+jyiXN+j;t empN+j=eiXN+j;rfft(t emp ,t ,E,wf ft ,ws t,n);for(j = 0;jV=nl;j + +)inf_conjj =conjf(infj);cvecvm lt( E,inf_conj,Ein,n);ifft(Ein,t ,Ein,wf ft ,ws t,n);for(j = O;jV=Nl;j + +)O

5、Oj=Einj. re;wj=wj+2*u*OOj;在EZ KIT测试板中,笔者用汇编语言和C语言程序分别测试了典型LMS算法的 运行速度,并与FBLMS算法的C语言运行速度进行了比较,表2所列是其比较结果, 从表2可以看出滤波器阶数为64时,即使是用C语言编写的FBLMS算法也比用汇编 编写的LMS算法速度快20%以上,如果滤波器的阶数更大,则速度会提高更多。2.2语音信号去噪声源程序%lms算法源程序clear allclose all%cha nnel system ordersysorder = 5 ;% Number of system pointsN=2000;inp = rand

6、n (N,1);n = randn( N,1);b,a = butter(2,0.25);Gz = tf(b,a,-1);%This fun cti on is subm itt ed to make in verse Z-tra nsform (Matlab cen tral file exchange)%The first sysorder weight value%h=ldiv(b,a,sysorder);% if you use ldiv this will give h :filter weights to beh= 0.0976;0.2873;0.3360;0.2210;0.096

7、4;y = lsim(G z,in p);%add some no isen = n * std(y)/(10*std( n);d = y + n;totalle ngth=size(d,1);%Take 60 points for tra iningN=60 ;%beg in of algorithmw = zeros ( sysorder , 1 );for n = sysorder : Nu = inp(n :-1:n-sysorder+1);y(n )= w * u;e( n) = d(n) - y( n);% Start with big mu for speed ing the c

8、on verge nee the n slow dow n to reach the correct weightsif n 20mu=0.32;elsemu=0.15;endw = w + mu * u * e(n);end%check of resultsfor n = N+1 : totalle ngthu = inp(n :-1:n-sysorder+1);y(n) = w * u ;e( n) = d(n) - y( n);endhold onplot(d)plot(y,r);title(System output);xlabel(Samples)ylabel(True and es

9、timated output)figuresemilogy(abs(e);title(Error curve);xlabel(Samples)ylabel(Error value)figureplot(h, k+)hold onplot(w, r*)lege nd(Actual weights,Estimated weights)title(Comparis on of the actual weights and the estimated weights); axis(0 6 0.05 0.35)% RLS算法randn( seed, 0);ran d(seed, 0);NoOfData

10、= 8000 ; % Set no of data points used for trainingOrder = 32 ;% Set the adaptive filter orderLambda = 0.98 ;% Set the forgetti ng factorDelta = 0.001 ;% R in itialized to Delta*Ix = randn (NoOfData, 1) ;% In put assumed to be whiteh = ran d(Order, 1) ; % System picked ran domlyd = filter(h, 1, x) ;

11、% Gen erate output (desired sig nal)% In itialize RLSP = Delta * eye ( Order, Order );w = zeros ( Order, 1 );% RLS Adaptationfor n = Order : NoOfData ;u = x( n:-1: n-Order+1); pi_ = u * P ;k = Lambda + pi_ * u ;K = pi_/k;e(n) = d(n) - w * u ;w = w + K * e(n);PPrime = K * pi_ ;P = ( P - PPrime ) / La

12、mbda ;w_err (n) = n orm(h - w);end ;% Plot resultsfigure ;plot(20*log10(abs (e); title(Lear ning Curve);xlabel(lterati on Number); ylabel(Output Estimati on Error in dB);figure ;semilogy(w_err);title(Weight Estimation Error); xlabel(Iterati on Number); ylabel(Weight Error in dB);2.3去噪声前后信号波形System o

13、utput-nchnDP3SREH 窃心 宦V己System output200100WQ30010DD12001400SamplEE-160010002000Error curveComparisonCompa rison of the actual eights and the osli mated weights+ Aclual weights* E3limated wights0.26 -0.2 -0.160.1 -Learning CurveLearning CuruBmp u-ou 山 UQ-leE一山 4n-nD5looa20003DDD40005D007000hBration NumberD50D -uD5eaaoaaoDWeight Estimation ErrorWsignl EstimaliDn Errorla?二电山E尝la20003000400060006000Iteration Number7DDD9000

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号