小波平移不变量法去噪的快速算法(附程序)_第1页
小波平移不变量法去噪的快速算法(附程序)_第2页
小波平移不变量法去噪的快速算法(附程序)_第3页
小波平移不变量法去噪的快速算法(附程序)_第4页
小波平移不变量法去噪的快速算法(附程序)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

小波平移不变量法去噪的快速算法(附程序)小波平移不变量法去噪的快速算法(附程序)小波平移不变量法去噪的快速算法(附程序)xxx公司小波平移不变量法去噪的快速算法(附程序)文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度编程实现平移不变量去噪的快速算法,结合例子验证该方法的去噪性能[程序说明]:共包含三个M函数文件,分别是:shift_left函数,实现信号序列向左循环平移一位;shift_right函数,实现信号序列向右循环平移一位,这两个函数在程序实现和功能上都很简单,在此不再赘述;TI_Denoise函数,是该算法的主函数,用快速算法实现含噪信号的TI去噪。以下是该函数的帮助文档,比较清楚地说明了各参数的意义和该函数的用法:%FastTI_Denoisingof1-dsignalwithwaveletthresholding.%Usage%y=TI_Denoise(signal,wavename,L)%Inputs%signal1-dnoisysignal,length(signal)=2^J.Jmustbeanpositiveinteger.%wavenamenameofwavelet%LLow-Frequencycutoffforshrinkage.L<=J.%Outputs%ythesignalafterbeingdenoised另外一个文件main调用了TI_Denoise函数,分别用不同种类的小波,对系统自带的几个含噪信号进行了平移不变量去噪,并将去噪前后的信号显示出来。其中的signal可以选用系统本身带有的几个含噪信号之一,小波wavename和分解级数L也可任意选择(L<=J),以此对各种条件下的TI去噪性能进行比较。具体的M程序文件见附件。[算法流程]:TI小波去噪的功能基本上全是在TI_Denoise函数中实现的,主要流程如下:1.快速TI前向小波分解原理与课本上一致,不再赘述;这里调用了shift_left函数,来对各分辨级上的低频信号进行平移;做小波变换时,直接调用了dwt,并将延拓方式设为周期型’per’,保证了分解后系数的总数目不变;每一级dwt后的系数均直接存入TI表中,这里将每一级的低频系数也存入了TI表中,置于第一列,到下一级时再将其更新,直至最后一级的低频系数存入,则不再发生变化。2.软阈值法去噪先利用最高分辨级的小波系数对噪声的标准差做出估计,得到,再采用全局阈值对各小波系数进行软阈值法处理,这里的n为信号的长度。3.信号的重构类似TI小波分解的逆过程,在各个分辨级上,分别从TI表中取出低频系数和小波系数,用周期延拓的idwt进行重构,并用到了序列的反向平移shift_right,用每一级重构出的低频系数更新TI表的第一列,直至得到最终的重构信号。按照课本上的步骤,整个算法的思路很清晰,也并未涉及到比较复杂的运算,核心部分的操作只有两个:一个是平移,可以通过简单的循环平移来实现;另一个是正交小波变换与反变换,也可以通过直接调用dwt和idwt来实现。唯一有些麻烦的是,该算法涉及的系数比较多,对应关系比较繁琐,非常容易出错。[实验结果]:一、采用不同的小波进行去噪1.对含噪的方块信号(长度为1024),取分解级数为7<10,分别用Haar、Sym2、Sym8小波对其进行TI小波去噪,得到的结果如下:可见,对于这样的方块信号,用Haar小波来进行去噪,重构的效果是最好的;即便是消失矩为2的连续小波sym2,其重构的效果也要略优于消失矩为8的更加光滑的sym8。2.对含噪的Bumps信号(长度为1024),取分解级数为7<10,分别用Haar、Sym2、Sym8小波对其进行TI小波去噪,得到的结果如下:对于Bumps这样连续性不太好的信号,用Haar小波来进行去噪,重构的效果要稍好一点,但用各种小波来重构的差别已经很不明显。3.对含噪的Doppler信号(长度为1024),取分解级数为7<10,分别用Haar、Sym2、Sym8小波对其进行TI小波去噪,得到的结果如下:可见,对于Doppler这样的连续信号,用光滑性最好的Sym8小波来进行去噪,重构的效果是最好的;用Haar重构出的信号,在连续性上则要略差一些。总的来说,尽管利用TI方法对信号去噪的效果仍与所选择的小波有关,但是采用不同小波所带来的性能差异已经很不明显;与其它的小波去噪方法,比如传统的小波阈值法相比,去除了伪吉布斯现象,表现出了很好的去噪效果。二、分解级数对去噪效果的影响最后,分析了一下分解级数L对去噪效果的影响。在TI小波阈值去噪法中,并未指定分解级数L的大小,只要其满足L<=J即可,其中2^J=n,n为信号长度。这里我们选用Blocks信号和Doppler信号为例,分别用Haar和Sym8小波对其进行TI阈值去噪,并取不同的分解级数L=1,4,7。这两个信号长为1024,J=10。从下图的实验结果可以看出,分解级数越多,其去噪的效果也越好,这是很好理解的,与理论分析一致。当然,在实际工程应用中,考虑到分解级数多所带来的高复杂度和长的延迟,应该选用L适中的情况,以达到去噪效果、计算复杂度以及实时性的折中和综合最优。[有关程序附件]共有四个程序,分别为:,,,-------------------------------------------------------------------------------%loadnoisysignalswhichcanbenoisbloc,noisbump,ornoisdoppetc.loadnoisbloc;signal=noisbloc;subplot(4,1,1);plot(signal);axistight;title('Noisysignal:Blocks');%FastTI_Denoisingoftheloadedsignalwavename='haar';L=1;y1=TI_Denoise(signal,wavename,L);subplot(4,1,2);plot(y1);axistight;text(450,12,'Haar,L=1');wavename='haar';L=4;y2=TI_Denoise(signal,wavename,L);subplot(4,1,3);plot(y2);axistight;text(450,12,'Haar,L=4');wavename='haar';L=7;y3=TI_Denoise(signal,wavename,L);subplot(4,1,4);plot(y3);axistight;text(450,12,'Haar,L=7');--------------------------------------------------------------------------------------------------------------------------------------------------------------functiony=shift_left(x);y=[x(2:length(x))x(1)];--------------------------------------------------------------------------------------------------------------------------------------------------------------functiony=shift_right(x);n=length(x);y=[x(n)x(1:n-1)];--------------------------------------------------------------------------------------------------------------------------------------------------------------functiony=TI_Denoise(signal,wavename,L)%FastTI_Denoisingof1-dsignalwithwaveletthresholding.%Usage%y=TI_Denoise(signal,wavename,L)%Inputs%signal 1-dNoisysignal,length(Noisy)=2^J.Jmustbeanpositiveinteger.%wavenamenameofwavelet%L Low-Frequencycutoffforshrinkage.L<<J%Outputs%y thesignalafterbeingdenoised%%%FastTIforwardwavelettransformn=length(signal);%InitializeTItabletable=zeros(n,L+1);table(:,1)=signal';%Differentdecomposescalesfrom1toLfori=1:L,%Sizeofthelow_frequencycoefficientsorwaveletcoefficientsatdifferentscalessize=n/2^i;%thelow_frequencycoefficientsofthepriorscalelow_coef=table(:,1);forj=0:2:2^i-2,%Getthelow_frequencycoefficientsbelta(J+1-i,j/2)sig0=low_coef(size*j+1:size*(j+2));%DWTtogetthelow_frequencycoefficientsbelta(J-i,j)andwaveletcoefficientsalpha(J-i,j)[a1,b1]=dwt(sig0,wavename,'mode','per');%StorethecoefficientsintoTItabletable((j*size+1):(j+1)*size,1)=a1;table((j*size+1):(j+1)*size,i+1)=b1;%Shift1onbelta(J+1-i,j/2)sig1=shift_left(sig0);%DWTtogetthelow_frequencycoefficientsbelta(J-i,j+1)andwaveletcoefficientsalpha(J-i,j+1)[a2,b2]=dwt(sig1,wavename,'mode','per');%StorethecoefficientsintoTItabletable(((j+1)*size+1):(j+2)*size,1)=a2;table(((j+1)*size+1):(j+2)*size,i+1)=b2;endend%%%Softthresholddenoising%estimatethestandarddeviationofadditivenoise.d=table(:,2);sigma=median(abs(d))/;%Setthethresholdthresh=sqrt(2*log(n))*sigma;%Softthresholdfori=2:L+1,forj=1:n,ifabs(table(j,i))<thresh,table(j,i)=0;elseiftable(j,i)>=thresh,table(j,i)=table(j,i)-thresh;elsetable(j,i)=table(j,i)+thresh;endendend%%%Reconstructthesignal%DifferentreconstructionscalesfromLto1fori=L:-1:1,size=n/2^i;forj=0:2:2^i-2,%getthelow_frequencycoefficientsbelta(J-i,j)andwaveletcoefficientsalpha(J-i,j)a1=table((j*size+1):(j+1)*size,1);b1=table((j*size+1):(j+1)*size,i+1);%IDWTsig0=idwt(a1,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论