小波变换语音消噪(改进阈值)资料
- 格式:doc
- 大小:594.50 KB
- 文档页数:28
小波分析的语音信号噪声消除方法小波分析是一种有效的信号处理方法,可以用于噪声消除。
在语音信号处理中,噪声常常会影响语音信号的质量和可理解性,因此消除噪声对于语音信号的处理非常重要。
下面将介绍几种利用小波分析的语音信号噪声消除方法。
一、阈值方法阈值方法是一种简单而有效的噪声消除方法,它基于小波变换将语音信号分解为多个频带,然后通过设置阈值将各个频带的噪声成分消除。
1.1离散小波变换(DWT)首先,对语音信号进行离散小波变换(DWT),将信号分解为近似系数和细节系数。
近似系数包含信号的低频成分,而细节系数包含信号的高频成分和噪声。
1.2设置阈值对细节系数进行阈值处理,将细节系数中幅值低于设定阈值的部分置零。
这样可以将噪声成分消除,同时保留声音信号的特征。
1.3逆变换将处理后的系数进行逆变换,得到去噪后的语音信号。
1.4优化阈值选择为了提高去噪效果,可以通过优化阈值选择方法来确定最佳的阈值。
常见的选择方法有软阈值和硬阈值。
1.4.1软阈值软阈值将细节系数进行映射,对于小于阈值的细节系数,将其幅值缩小到零。
这样可以在抑制噪声的同时保留语音信号的细节。
1.4.2硬阈值硬阈值将细节系数进行二值化处理,对于小于阈值的细节系数,将其置零。
这样可以更彻底地消除噪声,但可能会损失一些语音信号的细节。
二、小波包变换小波包变换是对离散小波变换的改进和扩展,可以提供更好的频带分析。
在语音信号噪声消除中,小波包变换可以用于更精细的频带选择和噪声消除。
2.1小波包分解将语音信号进行小波包分解,得到多层的近似系数和细节系数。
2.2频带选择根据噪声和语音信号在不同频带上的能量分布特性,选择合适的频带对语音信号进行噪声消除。
2.3阈值处理对选定的频带进行阈值处理,将噪声成分消除。
2.4逆变换对处理后的系数进行逆变换,得到去噪后的语音信号。
三、小波域滤波小波域滤波是一种基于小波变换的滤波方法,通过选择合适的小波函数和滤波器来实现噪声消除。
小波变换在语音降噪中的阈值选择与去噪效果评估实验引言:语音信号是人类交流的重要媒介,然而,在实际应用中,语音信号常常受到噪音的干扰,导致语音信息的失真和不清晰。
为了提高语音信号的质量,降噪技术成为研究的热点之一。
小波变换作为一种有效的信号分析工具,已广泛应用于语音降噪领域。
本文将探讨小波变换在语音降噪中的阈值选择以及去噪效果评估实验。
一、小波变换在语音降噪中的原理小波变换是一种时频分析方法,能够将信号分解成不同频率的子带,并提供时间和频率的局部信息。
在语音降噪中,小波变换可以将语音信号和噪音信号在时频域上进行分离,进而实现去噪的目的。
二、阈值选择方法阈值选择是小波降噪的关键步骤,合理的阈值选择可以有效地去除噪音同时保留语音信号的重要信息。
常用的阈值选择方法有固定阈值、自适应阈值和软硬阈值等。
1. 固定阈值固定阈值是指将所有小波系数与一个预先设定的固定阈值进行比较,小于阈值的系数被置零,大于阈值的系数保留。
这种方法简单直观,但存在一个问题,就是阈值的选择对不同语音信号和噪音的适应性较差。
2. 自适应阈值自适应阈值方法根据信号的统计特性自动选择阈值,具有较好的适应性。
常用的自适应阈值方法有Stein估计、Bayes估计和Sure估计等。
这些方法通过对信号和噪音的统计特性进行建模,选择最优的阈值,从而提高去噪效果。
3. 软硬阈值软硬阈值方法是在自适应阈值的基础上发展而来的,它引入了非线性的阈值函数,能够更好地处理信号中的细节信息。
软阈值将小于阈值的系数按比例缩小,而硬阈值直接置零小于阈值的系数。
这种方法在保留语音信号重要信息的同时,能够有效地去除噪音。
三、去噪效果评估实验为了评估小波变换在语音降噪中的效果,需要选择合适的评估指标。
常用的评估指标有信噪比(SNR)、均方根误差(RMSE)和语音质量主观评价等。
1. 信噪比(SNR)信噪比是衡量信号质量的重要指标,它表示语音信号和噪音信号之间的比值。
计算公式为SNR = 10 * log10(信号能量/噪音能量)。
测试信号处理作业题目:基于小波变换的语音信号去噪年级:级班级:仪器科学与技术学号:姓名:日期:2015年6月基于小波变换的语音信号去噪对于信号去噪方法的研究是信号处理领域一个永恒的话题。
经典的信号去噪方法,如时域、频域、加窗傅立叶变换、维纳分布等各有其局限性,因此限制了它们的应用范围。
小波变换是八十年代末发展起来的一种新时-频分析方法,它在时-频两域都具有良好的局部化特性;并且在信号去噪领域获得了广泛的应用。
目前已经提出的小波去噪方法主要有三种:模极大值去噪、空域相关滤波去噪以及小波阈值去噪法。
阈值法具有计算量小、去噪效果好的特点,取得了广泛的应用。
然而在阈值法中,阈值的选取直接关系到去噪效果的优劣。
如果阈值选取过小,那么一部分噪声小波系数将不能被置零,从而在去噪后的信号中保留了部分噪声信息;如果阈值选的偏大,则会将一部分有用信号去掉,使得去噪后的信号丢失信息。
1、语音信号特性由于语音的生成过程与发音器宫的运动过程密切相关,而且人类发音系统在产生不同语音时的生理结构并不相同,因此使得产生的语音信号是一种非平稳的随机过程(信号)。
但由于人类发生器官变化速度具有一定的限度而且远小于语音信号的变化速度,可以认为人的声带、声道等特征在一定的时间内(10- 30ms)基本不变,因此假定语音信号是短时平稳的,即语音信号的某些物理特性和频谱特性在10-30ms的时间段内近似是不变的,具有相对的稳定性,这样可以运用分析平稳随机过程的方法来分析和处理语音信号。
在语音增强中就是利用了语音信号短时谱的平稳性。
语音信号基本上可以分为清音和浊音两大类。
清音和浊音在特性上有明显的区别,清音没有明显的时域和频域特性,看上去类似于白噪声,并具有较弱的振幅;而浊音在时域上有明显的周期性和较强的振幅,其能量大部分集中在低频段内,而且在频谱上表现出共振峰结构。
在语音增强中可以利用浊音所具有的明显的周期性来区别和抑制非语音噪声,而清音由于类似于白噪声的特性,使其与宽带平稳噪声很难区分。
小波变换语音消噪(改进阈值)资料改进阈值函数进行语音信号消噪,但是在程序运行过程中频频报错。
本人经验不足调试不出,希望指导。
改进函数表达式附图clear all; clc; close all;fs=8000; %语音信号采样频率为8000xx=wavread('lw1.wav');x1=xx(:,1);%取单声道t=(0:length(x1)-1)/8000;y1=fft(x1,2048); %对信号做2048点FFT变换f=fs*(0:1023)/2048;figure(1)plot(t,x1) %做原始语音信号的时域图形y=awgn(x1',10,'measured'); %加10db的高斯白噪声[snr,mse]=snrmse(x1,y')%求得信噪比均方误差figure(2)plot(t,y) %做加噪语音信号的时域图形[c,l]=wavedec(y,3,'db1');%多尺度一维分解%用db1小波对信号进行3层分解并提取系数a3=appcoef(c,l,'db1',3);%a2=appcoef(c,l,'db1',2);%a1=appcoef(c,l,'db1',1);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);thr1=thselect(d1,'rigrsure');%阈值获取,使用Stein的无偏风险估计原理thr2=thselect(d2,'rigrsure');thr3=thselect(d3,'rigrsure');%利用改进阈值函数进行去噪处理gd1=Garrote_gg(d1,thr1);gd2=Garrote_gg(d2,thr2);gd3=Garrote_gg(d3,thr3);c1=[a3 gd3 gd2 gd1];y1=waverec(c2,l,'db1');%多尺度重构[snr,mse]=snrmse(x1,y1')%求得信噪比均方误差figure(3);plot(t,y1);function gd=Garrote_gg(a,b)%a为信号分解后的小波系数,b为获得的阈值m=0.2*((a*a)-(b*b));if (abs(a)>=b)gd=sign(a)*(abs(a)-b/exp(m));else (abs(a)<b)gd=0;endfunction [snr,mse]=snrmse(I,In)% 计算信噪比函数% I :原始信号% In:去噪后信号snr=0;Ps=sum(sum((I-mean(mean(I))).^2));%signal power Pn=sum(sum((I-In).^2)); %noise powersnr=10*log10(Ps/Pn);mse=Pn/length(I);QQ截图20130516175535.png(11.18 KB, 下载次数: 0)改进函数表达式本帖最后由罗志雄于 2013-5-16 21:58 编辑function [snr,mse]=snrmse(I,In)% 计算信噪比函数% I :原始信号% In:去噪后信号snr=0;Ps=sum(sum((I-mean(mean(I))).^2));%signal power Pn=sum(sum((I-In).^2)); %noise powersnr=10*log10(Ps/Pn);mse=Pn/length(I);修改后程序清单如下:clear all; clc; close all;fs=8000; %语音信号采样频率为8000xx=wavread('lw1.wav');x1=xx(:,1);%取单声道x1=x1-mean(x1);t=(0:length(x1)-1)/8000;y1=fft(x1,2048); %对信号做2048点FFT变换f=fs*(0:1023)/2048;figure(1)plot(t,x1) %做原始语音信号的时域图形y=awgn(x1',10,'measured'); %加10db的高斯白噪声[snr,mse]=snrmsel(x1',y) %求得信噪比均方误差snr1=SNR_singlech(x1',y)figure(2)plot(t,y) %做加噪语音信号的时域图形[c,l]=wavedec(y,3,'db1');%多尺度一维分解%用db1小波对信号进行3层分解并提取系数a3=appcoef(c,l,'db1',3);%a2=appcoef(c,l,'db1',2);%a1=appcoef(c,l,'db1',1);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);thr1=thselect(d1,'rigrsure');%阈值获取,使用Stein的无偏风险估计原理thr2=thselect(d2,'rigrsure');thr3=thselect(d3,'rigrsure');%利用改进阈值函数进行去噪处理gd1=Garrote_gg(d1,thr1);gd2=Garrote_gg(d2,thr2);gd3=Garrote_gg(d3,thr3);c1=[a3 gd3 gd2 gd1];function gd=Garrote_gg(a,b)%a为信号分解后的小波系数,b为获得的阈值m=0.2*((a.*a)-(b*b));if (abs(a)>=b)gd=sign(a)*(abs(a)-b/exp(m));elsegd=zeros(size(a));endy1=waverec(c1,l,'db1');%多尺度重构[snr,mse]=snrmsel(x1',y1) %求得信噪比均方误差figure(3);plot(t,y1);小波去噪软阈值和硬阈值的matlab仿真程序硬阈值、软阈值这里有一段不知道有用没%设置信噪比和随机种子值snr=4;init=2055615866;%产生原始信号sref和高斯白噪声污染的信号s[sref,s]=wnoise(1,11,snr,init);%用db1小波对原始信号进行3层分解并提取系数[c,l]=wavedec(s,3,'db1');a3=appcoef(c,l,'db1',3);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);thr=1;%进行硬阈值处理ythard1=wthresh(d1,'h',thr);ythard2=wthresh(d2,'h',thr);ythard3=wthresh(d3,'h',thr);c2=[a3 ythard3 ythard2 ythard1];s3=waverec(c2,l,'db1');%进行软阈值处理ytsoftd1=wthresh(d1,'s',thr);ytsoftd2=wthresh(d2,'s',thr);ytsoftd3=wthresh(d3,'s',thr);c3=[a3 ytsoftd3 ytsoftd2 ytsoftd1];s4=waverec(c3,l,'db1');%对上述信号进行图示subplot(5,1,1);plot(sref);title('参考信号');subplot(5,1,2);plot(s);title('染噪信号');subplot(5,1,3);plot(s3);title('硬阈值处理');subplot(5,1,4);plot(s4);title('软阈值处理');matlab小波除噪,为何硬阈值和软阈值除躁信噪比一样了?load leleccum;index=1:1024;f1=leleccum(index); % 产生含噪信号init=2055615866;randn('seed',init);f2=f1+18*randn(size(x));snr=SNR_singlech(f1,f2) %信噪比subplot(2,2,1);plot(f1);title('含噪信号'); %axis([1,1024,-1,1]); subplot(2,2,2);plot(f2);title('含噪信号'); %axis([1,1024,-1,1]); %用db5小波对原始信号进行3层分解并提取系数[c,l]=wavedec(f2,3,'db6');a3=appcoef(c,l,'db6',3);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);sigma=wnoisest(c,l,1);thr=wbmpen(c,l,sigma,2);%进行硬阈值处理ythard1=wthresh(d1,'h',thr);ythard2=wthresh(d2,'h',thr);ythard3=wthresh(d3,'h',thr);c2=[a3 ythard3 ythard2 ythard1];f3=waverec(c2,l,'db6');%进行软阈值处理ytsoftd1=wthresh(d1,'s',thr);ytsoftd2=wthresh(d2,'s',thr);ytsoftd3=wthresh(d3,'s',thr);c3=[a3 ytsoftd3 ytsoftd2 ytsoftd1];f4=waverec(c3,l,'db6');%对上述信号进行图示subplot(2,2,3);plot(f3);title('硬阈值处理');%axis([1,1024,-1,1]);subplot(2,2,4);plot(f4);title('软阈值处理');%axis([1,1024,-1,1]);snr=SNR_singlech(f1,f3)snr=SNR_singlech(f1,f4)信噪比函数SNR_singlech(I,In)function snr=SNR_singlech(I,In)% 计算信噪比函数% I:riginal signal% In:noisy signal(ie. original signal + noise signal)snr=0;Ps=sum(sum((I-mean(mean(I))).^2));%signal powerPn=sum(sum((I-In).^2)); %noise powersnr=10*log10(Ps/Pn);%% 利用小波分析对监测采集的信号进行去噪处理,恢复原始信号%小波分析进行去噪有3中方法:%1、默认阈值去噪处理。
第28卷第3期2007年 6月河南科技大学学报:自然科学版Journal of Henan University of Science and Technol ogy:Natural Science Vol .28No .3Jun .2007作者简介:王 艳(1982-),女,辽宁沈阳人,硕士生;金太东(1952-),男,辽宁抚顺人,教授,主要研究方向为电气自动化.收稿日期:2006-11-10文章编号:1672-6871(2007)03-0046-03改进的小波变换阈值去噪方法王 艳1,金太东1,杜明娟1,金 帅2(1.辽宁石油化工大学信息与控制工程学院,辽宁抚顺113001;2.中国石油辽阳石化分公司聚脂厂,辽宁辽阳111003)摘要:针对Donoho 的阈值去噪方法有时去噪效果不能令人满意的问题,提出了一种二次小波变换阈值去噪的方法———对小波变换各个尺度上的小波系数都进行二次小波变换,并进行去噪处理后重构小波系数,再由重构的小波系数重构原信号,此时原信号中已去除大部分随机噪声,此后再对重构后的原信号进行小波域阈值去噪。
仿真结果表明:该方法具有良好的去噪效果,而且对信号的主要细节保留较好。
关键词:小波变换;阈值去噪;二次小波变换中图分类号:T N911.72文献标识码:A0 前言信号中噪声的消除是信号处理中的一个重要内容,能否有效地滤出噪声直接影响后续工作的进行。
在传统的基于傅立叶变换的信号处理方法中,要使信号和噪声的频带重叠部分尽可能地小,这样,在频域就可以通过时不变滤波方法将信号同噪声区分开。
而当他们的频谱重叠时,这种方法就无能为力了[1]。
而小波的多分辨特性,在降噪过程中使它既可以有效地抑制噪声,又可以较好的保持信号的细节信息。
1995年Donoho 等人设计了一种完全不同的基于幅度的阈值去噪方法[2-3],这种方法的基本思想是:使得信号和噪声的幅度(而不是谱的位置)要尽可能不同,虽然噪声和信号在小波域的分布是重叠在一起的,但是他们的幅度是不同的,这样就可以以对幅度进行滤波的方式,去除噪声的影响。
“数字图像处理与目标跟踪技术”[摘要]图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。
数字图像噪声去除涉及光学系统、微电子技术、计算机科学、数学分析等领域,是一门综合性很强的边缘科学,如今其理论体系已十分完善,且其实践应用很广泛,在医学、军事、艺术、农业等都有广泛且成熟的应用。
本文概述了小波阈值去噪的基本原理。
对常用的几种阈值去噪方法进行了分析比较和仿真实现。
最后结合理论分析和实验结果,讨论了一个完整去噪算法中影响去噪性能的各种因素。
为实际的图像处理中,小波阈值去噪法的选择和改进提供了数据参考和依据。
[关键字]:小波变换图像去噪阈值[引言]图像在生成和传输过程中常常因受到各种噪声的干扰和影响而使图像降质,这对后续图像的处理(如分割、压缩和图像理解等)将产生不利影响。
噪声种类很多,如:电噪声、机械噪声、信道噪声和其他噪声。
在图像处理中,图像去噪是一个永恒的主题,为了抑制噪声,改善图像质量,便于更高层次的处理,必须对图像进行去噪预处理。
计算机图像处理主要采取两大类方法:一是在空间域中的处理,即在图像空间中对图像进行各种处理;另一类是把空间域中的图像经过正交变换到频域,在频域里进行各种处理然后反变换到空间域,形成处理后的图像。
人们也根据实际图像的特点、噪声的统计特征和频谱分布的规律,发展了各式各样的去噪方法。
其中最为直观的方法,是根据噪声能量一般集中于高频而图像频谱则分布于一个有限区间的这一特点,采用低通滤波方式来进行去噪,或对图像进行平滑处理等,这属于第一类图像处理方法。
还有就是在频域进行处理,如:傅立叶变换、小波基变换。
近年来,小波理论得到了非常迅速的发展,而且由于其具备良好的时频特性,实际应用也非常广泛。
其中图像的小波阈值去噪方法可以说是众多图像去噪方法的佼佼者。
基本思想就是利用图像小波分解后,各个子带图像的不同特性选取不同的阈值,从而达到较好的去噪目的。
而且,小波变换本身是一种线形变换,而国内外的研究大多集中在如何选取一个合适的全局阈值,通过处理低于该阈值的小波系数同时保持其余小波系数值不变的方法来降噪,因而大多数方法对于类似于高斯噪声的效果较好,但对于混有脉冲噪声的混合噪声的情形处理效果并不理想。
小波阈值去噪改进算法研究
小波阈值去噪改进算法的研究是一项重要的工作,它强调了小波变换的在图像处理中的广泛应用以及实现去噪的能力。
小波变换不仅仅是一种工具,而且它能够获得更高的信息熵,这使得小波变换更适合用于处理更大的噪声。
由于小波变换是一种分解性变换方法,因此它可以将原始信号分解为不同频带上的分量,使得噪声更容易消除。
在小波变换去噪方法中,小波阈值去噪改进算法是最重要的,这种技术结合了小波变换和基于阈值的去噪方法,来有效地消除噪声并保留原始结构。
这种方法首先对原始图像进行小波分解,然后在不同尺度子带内找出噪声的位置,并APPly适当的阈值对噪声进行抑制。
在阈值去噪的基础上,小波阈值去噪改进算法还将小波分解噪声改变为一种小波系数变换,以便更有效地实施阈值去噪。
小波阈值去噪改进算法的优点是它不仅可以有效地去除噪声,而且还可以在保持结构的基础上进行噪声抑制。
这种方法的缺点是它需要一个适当的参数,以便选择正确的阈值,并且这个阈值也可能根据噪声的特性而有所不同。
此外,有些情况下,小波阈值去噪改进算法可能会丢失极少量的有用信息,因此应当尽量避免。
小波阈值去噪改进算法的研究是一项艰巨的任务,但它所带来的利益是巨大的。
它可以在降低噪声的同时保留图像的有用结构,使图像变得更加清晰更加细致,可以大大提高图像处理的效果。
因此,小波阈值去噪改进算法的研究仍然具有极强的学术价值和现实意义。
摘要语音是语言信息的载体,是人类交流信息最自然、最有效、最方便的手段。
在许多情况下,人们所关心的语音信号不可避免地被其他信号所污染,影响了人们的听辨。
小波变换在当今信号处理领域中是一种十分活跃的理论,小波阈值消减法是对小波分解系数进行阈值化的降噪技术。
本文简要介绍了语音增强技术,主要针对基于小波变换的阈值去噪方法进行了研究,对小波阈值消噪从两个方面进行改进。
一方面,通过对传统小波阈值消噪算法中的软阈值函数和硬阈值函数以及LBreiman提出的非负死区阈值函数进行分析,提出了两种改进的阈值函数。
另一方面,受到谱减法思想的启发,提出了新的阈值估计思想。
经实验证明,本文阈值函数和阈值估计的消噪结果保持了信号的边缘特性,并且提高了语音信噪比。
关键词:小波消噪阈值估计阈值函数高斯白噪声AbstractSpeech signal is the carrier of the speech information, and also is the most nature, convenient and shortcut way of intercommunication. However in most cases, speech signal is disturbed and polluted inevitably so that we can't catch the explicit meaning of the speech signal.Wavelet transform theory is one of the modem analysis methods. Wavelet threshold de-noising is a de-noising technique based on the threshold of the wavelet coefficients. In this paper, several approaches of speech enhancement are introduced briefly- Wavelet threshold de-noising is the main part in this paper • Two aspects improvement is presented in this paper. In one aspect, two new threshold fimction is presented based on the analysis of the traditional soft-threshold,hard-threshold functions and the threshold fimction presented by L.Breiman . In the another aspect, a new idea about threshold estimation which is affected by the idea of spectral subtraction is proposed. Experiment results demonstrate that this method is effective in aspect of remaining geometrical characteristics of signal and improving the signal-to-noise ratio (SNR).Key words: wavelet de-noising threshold estimation threshold functionswhite Gaussian noise第一章绪论语音信号处理是信息高速公路、多媒体技术、办公自动化、现代通信及智能系统等新兴领域应用的核心技术之一。
改进的小波阈值语音去噪算法赵鸿图;刘云【摘要】小波阈值去噪算法简单,计算量小,但是硬阈值函数的不连续性会造成信号的振荡,软阈值函数太过光滑会造成信号高频信息丢失.基于两种阈值函数存在的缺点,在小波变换理论基础上研究了一种改进的小波阈值语音去噪算法,提出了一种改进的阈值函数,同时也提出了修正阈值的修正系数.最后通过MATLAB仿真结果证明该方法在一定程度上可以去除噪声,减少信号的振荡,保留原信号的特征尖峰点信息,降低了信号的失真,更好地估计原始信号,明显改善了语音质量.【期刊名称】《河南理工大学学报(自然科学版)》【年(卷),期】2014(033)005【总页数】4页(P647-650)【关键词】小波阈值去噪;小波变换;阈值函数【作者】赵鸿图;刘云【作者单位】河南理工大学计算机科学与技术学院,河南焦作454000;河南理工大学计算机科学与技术学院,河南焦作454000【正文语种】中文【中图分类】O4841995年D.L.Donoho提出了一种基于小波阈值的简单有效去噪方法[1-2],该方法在Besov空间上具有明显的最优估计,在实际中得到了广泛的应用,但此方法采用的硬阈值函数[3]虽然可以保留信号的有用信息,同时也会产生新的不连续点,造成信号的振荡,经过软阈值函数[4]处理后的小波系数产生了收缩,去噪后的信号太过光滑,造成了信号高频信息丢失、边缘模糊等.目前,国内外研究者们针对不同的噪声、不同的应用提出了许多解决方案和改进方法,如多项式差值法、软硬阈值法[5-6]和最大似然估计法等,但对于语音这种非平稳信号,这些去噪方法就有很大的局限性.近年来,小波理论的研究日趋成熟,基于小波阈值去噪的新算法和新方案不断涌现.小波变换具有良好的时频局部化特性[7],在信号的高频部分可以获得较好的时间分辨率,在信号的低频部分可以获得较高的频率分辨率.本文在小波变换理论的基础上提出一种改进的小波阈值语音去噪算法,采用改进的阈值函数来确定阈值,并通过修正系数对阈值进行修正.最后MATLAB仿真证明,将本文改进的去噪算法应用到语音去噪中,不仅克服了软、硬阈值的缺点,而且还能很好地保留原信号的重要信息,降低信号失真度,更好地估计原始信号.任意函数f(t)的连续小波变换[8]定义为式中:ψ(t)∈L2(R)为基小波函数,它要求具有衰减性和波动性,即其重构公式(逆变换)为将式(1)离散化,取a=a0j,b=ka0jb0,j∈Z,扩展步长a0≠1,为固定值,且一般假定a0>1.因此,对应的离散小波函数ψj,k(t)为一般采用a0=2,b0=1的二进小波,由式(4)可知二进小波表达式为则信号f(t)的离散小波变换(DWT)定义为2.1 小波阈值去噪算法原理小波阈值去噪算法[9-10]实现简单、计算量小,对于语音信号是一种很好的去噪算法.其基本原理:对属于Besov空间的能量主要集中在有用信号对应的小波系数中,噪声产生的能量遍布整个小波域[11].小波变换能够将带噪信号在各尺度上进行小波分解,保留幅值较大的有用信号对应的小波系数,去掉幅值较小的噪声对应的小波系数;对于各尺度分辨率下的小波系数,可以选择一个合适的门限阈值T对小波系数进行阈值处理,把幅值低于设定阈值的小波系数置为0,将其舍弃,高于该设定阈值的小波系数或者完整保留,或者做相应的“收缩”处理.最后把这些经过阈值处理后的小波系数通过小波逆变换进行重构得去噪后的信号.2.2 阈值函数的改进对于阈值T的选取由软阈值函数估计出来的y,其绝对值总比x小(|x|≥T ).因此,要设法减小此偏差,但若把这种偏差减小到0(硬阈值的情况)也不是最好的.基于分析软、硬阈值函数存在的不足,在文献[12]基础上提出了一种介于软、硬阈值之间的改进的阈值函数,其表达式为其中,小波阈值采用的是sqtwolog规则固定的阈值形式,产生的阈值为由式(7)可知,本文提出改进的阈值函数在小波域内是连续的,而且导数也是连续的.当α系数取0时,该方法便是硬阈值算法;当α系数取1时,该方法便是软阈值算法;选择2arcsin α/π作为T的修正系数,是为了使α的影响有渐变的效果.因为x本身就是由信号小波系数和噪声小波系数组成的,所以在2arcsin α/π中加上可调因子α,在0和1之间适当的调整α的大小,使得调整后的阈值函数更加适应不同情况下的阈值处理,获得更好的去噪效果,本文实验中取α=0.5.从以上分析中可以看出,本文提出改进的阈值函数是针对传统的软、硬阈值函数的缺点进行的,是介于软、硬阈值之间的一个灵活的改进方案.通过2arcsin α/π修正阈值,克服了采用硬阈值函数的不连续性和软阈值函数处理后由于小波系数收缩而丢失信号信息的缺点,使小波阈值去噪算法更加完善,既有效去除了噪声,又减小了语音信号的失真.假设有一加噪语音信号,经过离散后,表达式为f(k)=s(k)+n(k)[13],其中s(k)为原始信号,n(k)为高斯白噪声.经小波变换之后,得到的小波系数wj,k也是由两部分组成:一部分是s(k)对应的小波系数Ws(j,k),记为uj,k,另一部分是n(k)对应的小波系数Wn(j,k),记为vj,k.由此就可以得出去噪算法步骤.因此,改进的小波阈值去噪算法步骤[14]为.(1)选择db3作为小波基,对带噪的语音信号f(k)进行5层小波分解,得到一系列的小波系数wj,k.(2)采用式(7)改进的阈值函数对wj,k进行阈值处理,得出估计小波系数使尽可能小.(3)根据步骤(2)得到的估计小波系数对小波进行重构,得到去噪后的信号).在上述小波阈值的去噪算法中,核心步骤是阈值处理.阈值处理就是找到一个合适的T作为阈值(门限),把幅值低于T的小波系数wj,k(主要由噪声n(k)引起)设为0,将幅值高于T的小波系数wj,k(主要由信号s(k)引起),则予以保留或进行收缩处理,从而得到估计小波系数然后利用进行信号重构,就可得到去噪后的信号).本文采用改进的小波阈值去噪算法的核心部分就是在软、硬阈值函数的基础上,通过分析两者存在的不足,提出了一种改进的阈值函数和一个修正阈值的修正系数,并由此改进的阈值函数确定阈值,得到估计小波系数,进而重构信号,达到滤波去噪的目的,改进的小波阈值去噪算法流程如图1所示.在MATLAB7.0环境下,本文选取noisbump作为噪声信号,语音信号长度为1 200,采样率为8 kHZ.采用db3小波进行5层分解,分别运用硬阈值法、硬阈值法和本文改进的小波阈值法分别对加噪信号进行去噪.改进的阈值函数为仿真结果如图2~图5所示.由图3~图5可见,这3种方法去噪后信号的形状与原始信号的形状基本一致,噪声干扰明显被滤除,而且原信号的特征尖峰点得到了很好得保留.软阈值得到的去噪信号有明显得收缩,虽然比较光滑,但去噪的同时也把很多原始信号信息去掉了;硬阈值去除噪声不彻底,在一些地方发生了突变,去噪后的信号出现了振荡现象;而本文改进的小波阈值去噪后的信号失真较小也没出现振荡,不仅去噪效果好,而且保留了信号的一些重要信息,能够更好地估计原始信号.经3种阈值方法去噪后,信号的信噪比如表1所示.通过表1信噪比数据可知,在大信噪比的情况下,硬阈值去噪的信噪比要高于软阈值的信噪比,小信噪比的情况下,软阈值要高于硬阈值的,不管什么情况下,本文改进的阈值算法的信噪比增益都是最大的,性能明显优于前两种去噪算法.在分析软硬阈值函数各自缺陷的基础上,基于小波分析的理论提出了一种改进的阈值函数,这个函数结合了软、硬阈值的优点又弥补了两种方法的缺陷.仿真实验结果表明,将改进的小波阈值算法应用于语音信号中具有更优越的去噪性能,降低了失真度,改善了语音质量,使得语音信号得到增强.但由于噪声信号都是随机产生的,完全消噪几乎不可能,以及小波基、分解层数和阈值函数的选取问题还存在一些不足,需要作进一步研究.E-mail:******************.cn【相关文献】[1] 李克粉,王直.改进的小波阈值去噪在语音识别中的应用[J].计算机技术与发展,2013,23(5):231-234.[2] 张天祥,黄小欣.基于Matlab实现小波阈值去噪的图像处理方法[J].现代电子技术,2013,36(5):103-105.[3] 王拴中,朱玉田.改进小波阈值去噪法的对比性仿真实验与分析[J].噪声与振动控制, 2012(1):128-132.[4] 陈晓曦,王延杰,刘恋.小波阈值去噪法的深入研究[J].激光与红外,2012,42(1):105-110.[5] 许文博,武晓春,邢建平.一种新的小波阈值去噪方法[J].兰州交通大学学报,2012,31(3):120-124.[6] 曹晓英,张智军,向建军.基于提升小波改进阈值的雷达信号去噪方法[J].计算机工程与应用, 2012, 48(14): 143-147.[7] 王大巍.一种改进的小波阈值去噪算法研究[J] .高新技术产业发展,2012(5):36-38.[8] 林克.基于小波分析的信号去噪方法研究[J].广西轻工业,2011,6(6):67-68.[9] 赵银善,吐尔洪江·阿不都克力木.一种改进的小波阈值函数去噪方法[J].计算机工程与应用,2013,49(22):58-59.[10] 钱苏敏,张琳絮,张云,等.基于小波阈值改进的去噪算法研究[J].研究与开发,2012,31(5):49-51.[11] 王瑞,张友纯.新阈值函数下的小波阈值去噪[J]. 计算机工程与应用,2013,49(15):215-218.[12] 牟海维,马娜,焦善玉.基于小波阈值法的语音增强算法的研究[J].科学技术与工程,2010,10(36):8995-8999.[13] 王京港,黄雨青.基于一种新阈值函数的小波阈值去噪方法研究[J].数字技术与应用,2012(9):43-45.[14] 印红群,吴达胜.5种小波阈值去噪法处理木材缺陷图像的仿真比较[J].江苏农业科学,2013,41(5):288-290.。
改进阈值函数进行语音信号消噪,但是在程序运行过程中频频报错。
本人经验不足调试不出,希望求得各位指导改进函数表达式附图clear all; clc; close all;fs=8000; %语音信号采样频率为8000xx=wavread('lw1.wav');x1=xx(:,1);%取单声道t=(0:length(x1)-1)/8000;y1=fft(x1,2048); %对信号做2048点FFT变换f=fs*(0:1023)/2048;figure(1)plot(t,x1) %做原始语音信号的时域图形y=awgn(x1',10,'measured'); %加10db的高斯白噪声[snr,mse]=snrmse(x1,y')%求得信噪比均方误差figure(2)plot(t,y) %做加噪语音信号的时域图形[c,l]=wavedec(y,3,'db1');%多尺度一维分解%用db1小波对信号进行3层分解并提取系数a3=appcoef(c,l,'db1',3);%a2=appcoef(c,l,'db1',2);%a1=appcoef(c,l,'db1',1);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);thr1=thselect(d1,'rigrsure');%阈值获取,使用Stein的无偏风险估计原理thr2=thselect(d2,'rigrsure');thr3=thselect(d3,'rigrsure');%利用改进阈值函数进行去噪处理gd1=Garrote_gg(d1,thr1);gd2=Garrote_gg(d2,thr2);gd3=Garrote_gg(d3,thr3);c1=[a3 gd3 gd2 gd1];y1=waverec(c2,l,'db1');%多尺度重构[snr,mse]=snrmse(x1,y1')%求得信噪比均方误差figure(3);plot(t,y1);function gd=Garrote_gg(a,b)%a为信号分解后的小波系数,b为获得的阈值m=0.2*((a*a)-(b*b));if (abs(a)>=b)gd=sign(a)*(abs(a)-b/exp(m));else (abs(a)<b)gd=0;endfunction [snr,mse]=snrmse(I,In)% 计算信噪比函数% I :原始信号% In:去噪后信号snr=0;Ps=sum(sum((I-mean(mean(I))).^2));%signal powerPn=sum(sum((I-In).^2)); %noise powersnr=10*log10(Ps/Pn);mse=Pn/length(I);QQ截图20130516175535.png(11.18 KB, 下载次数: 0)改进函数表达式本帖最后由罗志雄于2013-5-16 21:58 编辑function [snr,mse]=snrmse(I,In)% 计算信噪比函数% I :原始信号% In:去噪后信号snr=0;Ps=sum(sum((I-mean(mean(I))).^2));%signal powerPn=sum(sum((I-In).^2)); %noise powersnr=10*log10(Ps/Pn);mse=Pn/length(I);修改后程序清单如下:clear all; clc; close all;fs=8000; %语音信号采样频率为8000xx=wavread('lw1.wav');x1=xx(:,1);%取单声道x1=x1-mean(x1);t=(0:length(x1)-1)/8000;y1=fft(x1,2048); %对信号做2048点FFT变换f=fs*(0:1023)/2048;figure(1)plot(t,x1) %做原始语音信号的时域图形y=awgn(x1',10,'measured'); %加10db的高斯白噪声[snr,mse]=snrmsel(x1',y) %求得信噪比均方误差snr1=SNR_singlech(x1',y)figure(2)plot(t,y) %做加噪语音信号的时域图形[c,l]=wavedec(y,3,'db1');%多尺度一维分解%用db1小波对信号进行3层分解并提取系数a3=appcoef(c,l,'db1',3);%a2=appcoef(c,l,'db1',2);%a1=appcoef(c,l,'db1',1);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);thr1=thselect(d1,'rigrsure');%阈值获取,使用Stein的无偏风险估计原理thr2=thselect(d2,'rigrsure');thr3=thselect(d3,'rigrsure');%利用改进阈值函数进行去噪处理gd1=Garrote_gg(d1,thr1);gd2=Garrote_gg(d2,thr2);gd3=Garrote_gg(d3,thr3);c1=[a3 gd3 gd2 gd1];function gd=Garrote_gg(a,b)%a为信号分解后的小波系数,b为获得的阈值m=0.2*((a.*a)-(b*b));if (abs(a)>=b)gd=sign(a)*(abs(a)-b/exp(m));elsegd=zeros(size(a));endy1=waverec(c1,l,'db1');%多尺度重构[snr,mse]=snrmsel(x1',y1) %求得信噪比均方误差figure(3);plot(t,y1);小波去噪软阈值和硬阈值的matlab仿真程序硬阈值、软阈值这里有一段不知道有用没%设置信噪比和随机种子值snr=4;init=2055615866;%产生原始信号sref和高斯白噪声污染的信号s[sref,s]=wnoise(1,11,snr,init);%用db1小波对原始信号进行3层分解并提取系数[c,l]=wavedec(s,3,'db1');a3=appcoef(c,l,'db1',3);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);thr=1;%进行硬阈值处理ythard1=wthresh(d1,'h',thr);ythard2=wthresh(d2,'h',thr);ythard3=wthresh(d3,'h',thr);c2=[a3 ythard3 ythard2 ythard1];s3=waverec(c2,l,'db1');%进行软阈值处理ytsoftd1=wthresh(d1,'s',thr);ytsoftd2=wthresh(d2,'s',thr);ytsoftd3=wthresh(d3,'s',thr);c3=[a3 ytsoftd3 ytsoftd2 ytsoftd1];s4=waverec(c3,l,'db1');%对上述信号进行图示subplot(5,1,1);plot(sref);title('参考信号');subplot(5,1,2);plot(s);title('染噪信号');subplot(5,1,3);plot(s3);title('硬阈值处理');subplot(5,1,4);plot(s4);title('软阈值处理');matlab小波除噪,为何硬阈值和软阈值除躁信噪比一样了?load leleccum;index=1:1024;f1=leleccum(index); % 产生含噪信号init=2055615866;randn('seed',init);f2=f1+18*randn(size(x));snr=SNR_singlech(f1,f2) %信噪比subplot(2,2,1);plot(f1);title('含噪信号'); %axis([1,1024,-1,1]); subplot(2,2,2);plot(f2);title('含噪信号'); %axis([1,1024,-1,1]); %用db5小波对原始信号进行3层分解并提取系数[c,l]=wavedec(f2,3,'db6');a3=appcoef(c,l,'db6',3);d3=detcoef(c,l,3);d2=detcoef(c,l,2);d1=detcoef(c,l,1);sigma=wnoisest(c,l,1);thr=wbmpen(c,l,sigma,2);%进行硬阈值处理ythard1=wthresh(d1,'h',thr);ythard2=wthresh(d2,'h',thr);ythard3=wthresh(d3,'h',thr);c2=[a3 ythard3 ythard2 ythard1];f3=waverec(c2,l,'db6');%进行软阈值处理ytsoftd1=wthresh(d1,'s',thr);ytsoftd2=wthresh(d2,'s',thr);ytsoftd3=wthresh(d3,'s',thr);c3=[a3 ytsoftd3 ytsoftd2 ytsoftd1];f4=waverec(c3,l,'db6');%对上述信号进行图示subplot(2,2,3);plot(f3);title('硬阈值处理');%axis([1,1024,-1,1]); subplot(2,2,4);plot(f4);title('软阈值处理');%axis([1,1024,-1,1]); snr=SNR_singlech(f1,f3)snr=SNR_singlech(f1,f4)信噪比函数SNR_singlech(I,In)function snr=SNR_singlech(I,In)% 计算信噪比函数% I:riginal signal% In:noisy signal(ie. original signal + noise signal)Ps=sum(sum((I-mean(mean(I))).^2));%signal powerPn=sum(sum((I-In).^2)); %noise powersnr=10*log10(Ps/Pn);小波去噪程序Matlab小波去噪(默认,强制,给定三种情况)%% 利用小波分析对监测采集的信号进行去噪处理,恢复原始信号%小波分析进行去噪有3中方法:%1、默认阈值去噪处理。