您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > Levinson-Durbin算法实验报告
音视频信号处理实验报告一、实验目地:(1)、理解Levinson-Durbin算法的迭代过程;(2)、学会使用MATLAB编写Levinson-Durbin算法函数。二、实验内容:Levinson-Durbin算法的编程仿真。三、实验原理:1、线性预测分析的基本原理由于语音样点之间存在相关性,所以可以用过去的样点值来预测现在或未来的样点值。即plpllnxanx1)()(,从而可以通过使实际语音x(n)和线性预测结果)(nx之间的误差e(n)在某个准则下达到最小值来决定唯一的一组预测系数pla。而这组系数就能反映语音信号的特性,可以作为语音信号特征参数来用于语音编码、语音合成和语音识别等应用中去。2、Levinson-Durbin算法简介Levinson-Durbin算法首先由一阶AR模型开始,按照前面的Y-W方程可有,一阶AR模型(p=1)的Y-W方程是010101011021121112111xxxxxxxxxxxxxxrarraarrrr该方程解出:然后增加一阶,即令p=2,可得到:00a1012101210222221arrrrrrrrrxxxxxxxxxxxxxxxxxx由上式可解出:2122222112211212111221/22aaaaararaxxxx然后令,...3,2p以此类推,可以得到一般的递推公式:nxErkpkakaaakkpraprkxxpppkpppkppkpppppkxxpxxp2202122))(1()1(21111011,...2,1式中的pk称为反射系数,而2p和21p是预测误差的均方误差值,因此,21pk必须大于等于0,这样pk应满足下式1pk,进而得到221pp,即预测误差随递推次数增加而减少。四、实验过程按照前文所述的Levinson-Durbin算法的递推公式编写程序:1、信号产生t=0:499;N=500;x=10*(randn(1,N)+i*rand(1,N))/sqrt(2);%长500的复高斯白噪声序列N=x(1:300);%取信号观察样本长度3002、利用xcorr函数求样本函数的自相关函数。3、计算出1阶AR模型系数a1,0=a(1,1)=1,a1,1=a(1,2)=-R(1)/R(0),及预测误差的均方值var(2)a(1,1)=-r(2)/r(1);wucha(1)=r(1)-abs(r(2))*abs(r(2))/r(1);%求最小预测误差的均方值3、按照实验原理中所述的推导方程编写如下推导程序form=2:ptemp=0;fori=1:m-1temp=temp+a(m-1,i)*r(m-i+1);endk(m)=-(r(m+1)+temp)/wucha(m-1);%反射系数更新a(m,m)=k(m);fori=1:m-1a(m,i)=a(m-1,i)+k(m)*a(m-1,m-i)';%系数更新endwucha(m)=wucha(m-1)*(1-abs(k(m))*abs(k(m)));%预测误差更新end4、最后输出预测误差随阶次的变化曲线如下图plot(wucha);xlabel('阶次P');ylabel('预测误差');title('预测误差随阶次的变化曲线')图1预测误差随阶次的变化曲线由图我们很容易看出预测误差随阶次的增加而减少,这说明适当增加预测滤波器阶数可以有效的降低误差。五、实验总结:通过本实验,我基本了解了Levinson-Durbin算法的基本原理和自适应波器原理及性能分析的的方法。为我以后进行相关研究打下了基础。六、实验程序clearall;clc;closeall;%产生已知的信号t=0:499;N=500;x=10*(randn(1,N)+i*rand(1,N))/sqrt(2);%长500的复高斯白噪声序列N=x(1:300);%信号观察样本长度300p=36;%阶数为r0=xcorr(N,p,'biased');%自相关函数的求解r=r0(p+1:2*p+1);%自相关函数的更新a=zeros(p,p);%产生p*p的零系数矩阵wucha=zeros(1,p);%1阶AR模型系数a(1,0)=1,a(1,1)=-r(2)/r(1),及预测误差的均方值a(1,1)=-r(2)/r(1);wucha(1)=r(1)-abs(r(2))*abs(r(2))/r(1);%求最小预测误差的均方值k=zeros(1,p);%反射系数矩阵form=2:ptemp=0;fori=1:m-1temp=temp+a(m-1,i)*r(m-i+1);endk(m)=-(r(m+1)+temp)/wucha(m-1);%反射系数更新a(m,m)=k(m);fori=1:m-1a(m,i)=a(m-1,i)+k(m)*a(m-1,m-i)';%系数更新endwucha(m)=wucha(m-1)*(1-abs(k(m))*abs(k(m)));%预测误差更新endplot(wucha);xlabel('阶次P');ylabel('预测误差');title('预测误差随阶次的变化')
本文标题:Levinson-Durbin算法实验报告
链接地址:https://www.777doc.com/doc-5200907 .html