小波变换语音消噪(改进阈值)
小波分析的语音信号噪声消除方法
小波分析的语音信号噪声消除方法小波分析是一种有效的信号处理方法,可以用于噪声消除。
在语音信号处理中,噪声常常会影响语音信号的质量和可理解性,因此消除噪声对于语音信号的处理非常重要。
下面将介绍几种利用小波分析的语音信号噪声消除方法。
一、阈值方法阈值方法是一种简单而有效的噪声消除方法,它基于小波变换将语音信号分解为多个频带,然后通过设置阈值将各个频带的噪声成分消除。
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)
2008年2月第2期电子测试E LECTRON I C TESTFeb .2008No .2几种基于小波阈值去噪的改进方法朱艳芹,杨先麟(武汉工程大学 武汉 430074)摘 要:传统小波阈值去噪分为硬阈值去噪和软阈值去噪,而在其去噪过程中,硬阈值函数在一些不连续点处有时会产生伪吉布斯现象;软阈值函数中估计的小波系数与信号的小波信号之间存在恒定偏差。
为了去除这些现象,本文提出了几种新阈值函数的改进方案。
实验结果表明,新阈值函数消噪后的视觉特性较好,并且信噪比提高,均方根误差有所降低。
从而说明这些方法的有效性。
关键词:小波变换;阈值消噪;门限规则中图分类号:TP274 文献标识码:BSeveral ne w methods based on wavelet thresholding denoisingZhu Yanqin,Yang Xianlin(W uhan I nstitute of Technol ogy,W uhan 430074,China )Abstract:The typ ical method of threshold in de 2noising has t w o kinds of ways,one of the m is hard one and the other is s oft.I n s ome cases,such as on the discontinuities points,the Gibbs phenomenon will exhibit when we use hard thresholding functi on t o re move noise of signals and s oft hresholding method als o has disadvantages .I n order t o re move the shortings,s ome ne w thresholding functi ons are p resented .The results of the experi m ent show that the visi on of de 2noising is better and the R MSE of signal has been decreased a l ot while the S NR has been increased,which indicates the methods p resented in this paper are effective .Keywords:wavelet transf or m;thresholding denoising;method of threshold0 引 言近年来,小波理论得到了迅速发展,而且由于小波具有低熵性、多分辨特性、去相关性和选基灵活性等特点,所以它在处理非平稳信号、去除图像信号噪声方面表现出了强有力的优越性。
小波去噪 阈值处理
小波去噪阈值处理小波去噪是一种非常有效的信号处理方法,可以用于降低信号噪声对信号质量的影响,在很多应用场景中得到了广泛的应用,例如图像处理、语音处理、生物信号处理等。
而阈值处理是小波去噪过程中的一个关键环节,它决定了去除噪声的效果和保留信号细节的程度。
本文将详细介绍小波去噪和阈值处理的原理、方法和应用。
一、小波去噪原理小波去噪的基本原理是利用小波变换将信号分解成不同频率的子信号,然后通过对不同频率子信号进行阈值处理来去除噪声。
具体步骤如下:1. 将原始信号进行小波分解,得到多个尺度和频带的子信号。
2. 对每个子信号进行阈值处理,将小于某个阈值的系数置为0,大于阈值的系数保留。
3. 将处理后的子信号进行小波重构,得到去噪后的信号。
小波去噪的实现可以采用基于硬阈值或软阈值的方法。
硬阈值法:当小波系数绝对值小于阈值时,将其置为0。
软阈值法:当小波系数绝对值小于阈值时,将其置为0;当小波系数绝对值大于阈值时,用系数减去阈值的符号函数乘以阈值得到新的系数。
二、阈值确定方法阈值处理的成功与否取决于选择适当的阈值。
阈值的确定是小波去噪的核心问题之一,以下是几种比较常见的阈值确定方法:1. 固定阈值法:直接将固定的阈值应用到所有子带中。
缺点是不同信号质量和性质的信号适用的阈值不同,固定阈值法不灵活。
2. 聚类阈值法:将小波系数按大小排序,按固定的步长确定一定数量的阈值。
计算每个子带中小于阈值的系数的平均值和标准差,再将它们作为该子带的阈值参数。
缺点是对于每个信号,都需要多次试验选择最优的步长。
3. 利用样本特征值确定阈值:对于多种不同性质的样本,提取其中一定的特征值,如样本的均值或中值,并将其作为阈值对待。
缺点是对于不同的信号,需要多次测试阈值的灵敏度。
4. 神经网络法:利用神经网络的训练能力,让神经网络自己学习适合某种类型信号的阈值算法。
神经网络法带有较强的自适应性和实时性,但缺点是需要大量的样本数据和更高的计算复杂度。
小波变换语音消噪(改进阈值)
改进阈值函数进行语音信号消噪,但是在程序运行过程中频频报错。
本人经验不足调试不出,希望求得各位指导改进函数表达式附图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);小波去噪程序Matlab小波去噪(默认,强制,给定三种情况)%% 利用小波分析对监测采集的信号进行去噪处理,恢复原始信号%小波分析进行去噪有3中方法:%1、默认阈值去噪处理。
基于改进阈值函数的提升小波变换超声信号去噪研究
( olg f ce c ,Xi a iest o ce c n eh oo y h n i ’ n7 0 5 C l eo in e e S ’ n Unv ri fS in e a d T c n lg ,S a x a 1 0 4,C ia y Xi hn )
k y t uc e su a c to f ul a o c N D T n D E.I h s e o s c s f l ppl a i n o t s ni i r a d N n t i pa r h h o y f l tn a ee pe ,t e t e r o i i g w v lt f ta so m s ito u e ,a d t e p icpl fwa ltt r s od d - o sngm eh d i n l e .Th n o h r n f r i n r d c d n h rn i e o vee h e h l en ii t o s a ays d e n te b ss o o ta d h d t r s od f n to a l t g wa ee e n iig m eh d b s d o mpr ve h e h l a i fs f n a h e h l u c in, i i v ltd - o sn t o a e n i r fn o d t rs od f n to s pu o wad. nal u c in i tf r r Fi l y,t e e pei e tlsu is o i a e n iig ae c rid o t or uta o i h x rm n a t d e f sg ld - o sn r a re u f lrs n c n e h - i as o ed g fa s nd t e pef r a c f d - o s g i o pae a d a ays d r m wo a 。 c o sg l fw li w ,a h ro n n l m n e o en ii s c m r d n n l e fo t s n
小波信号消噪及阈值函数的一种改进方法
c mpr o fiwt ad f el ligad s - o ai n0 t i h r-e s ̄dn n dt s h l  ̄
ligaec re U. e8 ll 陷 aec d e bu ea pia o s dn I ar dO tnl i l i i 珊 ao I o  ̄ d a ott p l  ̄ n n h c
( . ea n 0 ‘ u ,ot et i t n e i m i r c ,m i 122 C i ; 1D pr  ̄ f 釉p衄 Su w s J o n U i lt E e Ba h E e 640 cl u m tn Su w sJ o n n esyC e . tu Ee r a A t a o ,ot et i t gU i rt, h, 60 3 ,h a n it 0 c i o i h a o v i  ̄ 10 1C i ) n
维普资讯
中 国 测试 技 术
aH A A 【 日d T - l N) J G ME S m I 1 I II Y D
V0 . 2 No 4 13 .
Jl ,0 6 uy2 O
小 波 信 号 消 噪 及 阈 值 函数 的 一种 改进 方 法
Ab ta t I i n e e t e meh d t d c h ds sb a ee l- c l e o o i o n n n tl ay s n l . he  ̄ l sr c :t s a f c v to o r u e te n e y w v ltmut sae d c mp st n i o s  ̄n r i as T rs d i e i i a g c l u t nmeh d ,u h a UR Mut rs l t nS RE, n rm ac li ao t o s s c sS E, l -e ou o U i i a dT 鼍 0 w舶 lh tu d dn , I n rd c d B s e , s n t h ig a eito u e . e i s e t m e d l
小波变换图像去噪的算法研究自设阈值
基于小波的图像去噪一、小波变换简介在数学上,小波定义卫队给定函数局部化的新领域,小波可由一个定义在有限区域的函数()x ψ来构造,()x ψ称为母小波,(mother wavelet )或者叫做基本小波。
一组小波基函数,()}{,x b a ψ,可以通过缩放和平移基本小波 来生成:())(1,ab x a x b a -ψ=ψ (1) 其中,a 为进行缩放的缩放参数,反映特定基函数的宽度,b 为进行平移的平移参数,指定沿x 轴平移的位置。
当a=2j 和b=ia 的情况下,一维小波基函数序列定义为:()()1222,-ψ=ψ--x x j j j i (2) 其中,i 为平移参数,j 为缩放因子,函数f (x )以小波()x ψ为基的连续小波变换定义为函数f (x )和()x b a ,ψ的内积:()dx ab x a x f f x W b a b a )(1)(,,,-ψ=ψ=⎰+∞∞- (3)与时域函数对应,在频域上则有:())(,ωωa e a x j b a ψ=ψ- (3)可以看出,当|a|减小时,时域宽度减小,而频域宽度增大,而且()x b a ,ψ的窗口中心向|ω|增大方向移动。
这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。
总体说来,小波变换具有更好的时频窗口特性。
二、图像去噪描述所谓噪声,就是指妨碍人的视觉或相关传感器对图像信息进行理解或分析的各种因素。
通常噪声是不可预测的随机信号。
由于噪声影响图像的输入、采集、处理以及输出的各个环节,尤其是图像输入、采集中的噪声必然影响图像处理全过程乃至最终结果,因此抑制噪声已成为图像处理中极其重要的一个步骤。
依据噪声对图像的影响,可将噪声分为加性噪声和乘性噪声两大类。
由于乘性噪声可以通过变换当加性噪声来处理,因此我们一般重点研究加性噪声。
设f(x,y)力为理想图像,n(x,y)力为噪声,实际输入图像为为g(x,y),则加性噪声可表示为:g(x,y)= f(x,y)+ n(x,y), (4)其中,n(x,y)和图像光强大小无关。
基于改进阈值法的小波去噪研究
式中: e为 自然 对 数 , 为分 解 尺 度 , 为 第 尺 度 K
改 进 方 法 2 本 文 改 进 方 法 ( ) ()
2 0 0 . 0 1 5 3 . 2 I 2 9 . 8 11 7 . 4 10 0 . 5 0 9 9 . 7 0 9 4 . 2 0 8 0 . 8 0 8 3 . 4 O 8 3 . l 20 0 .0 1 2 9 . 8 1 0 0 . 5 0 9 4 . 2 0 8 3 . 4 0 7 6 . 8 0 7 4 . 4
的 阈值计 算公 式 口 : ]
Kj一 ,2・ g i ( 1 . / lN/n + ) () 4
作 面地 表岩 移 监测 点 的 GP S监 测 数 据见 文献 E ] 8,
为 了 弥 补 公 式 中 当 尺 度 J一 1 时 , K 一 /n 2 > K=a l( ) 的缺点 , 鸿雁 文
0 。然 后 , 再将 阈值 处 理 后 的 分 解信 号 进 行 重 构 , 得 到原 始信 号 的估计 面 。 从 以上 阈值 K 的计 算 公式 可 以看 出 , 于不 同 对 的尺 度 , 阈值 K 是 不变 的 。然 而小 波 变换 系数 会 随
着尺 度 的增 大而逐 渐减 小 , 为此 , 赵瑞 珍提 出了改 进
3 算例 分析
由于 已有 的 2 改进 方法 消噪 所得 重构 信号 的 种 信 噪 比增益 以及 视觉 效果 都 比传统 的 消噪方 法有 了 提高, 因此 , 文 只对 比 3种 改 进 方 法 的 去 噪效 果 。 本
为 了验 证本 文改 进 方法 去 噪 的优 越 性 , 某 煤 矿工 对
一
个 非平 稳 的 、 噪声 的 、 含 一维 信号 模型 _可 以 5 ]
小波变换在语音降噪中的阈值选择与去噪效果评估实验
小波变换在语音降噪中的阈值选择与去噪效果评估实验引言:语音信号是人类交流的重要媒介,然而,在实际应用中,语音信号常常受到噪音的干扰,导致语音信息的失真和不清晰。
为了提高语音信号的质量,降噪技术成为研究的热点之一。
小波变换作为一种有效的信号分析工具,已广泛应用于语音降噪领域。
本文将探讨小波变换在语音降噪中的阈值选择以及去噪效果评估实验。
一、小波变换在语音降噪中的原理小波变换是一种时频分析方法,能够将信号分解成不同频率的子带,并提供时间和频率的局部信息。
在语音降噪中,小波变换可以将语音信号和噪音信号在时频域上进行分离,进而实现去噪的目的。
二、阈值选择方法阈值选择是小波降噪的关键步骤,合理的阈值选择可以有效地去除噪音同时保留语音信号的重要信息。
常用的阈值选择方法有固定阈值、自适应阈值和软硬阈值等。
1. 固定阈值固定阈值是指将所有小波系数与一个预先设定的固定阈值进行比较,小于阈值的系数被置零,大于阈值的系数保留。
这种方法简单直观,但存在一个问题,就是阈值的选择对不同语音信号和噪音的适应性较差。
2. 自适应阈值自适应阈值方法根据信号的统计特性自动选择阈值,具有较好的适应性。
常用的自适应阈值方法有Stein估计、Bayes估计和Sure估计等。
这些方法通过对信号和噪音的统计特性进行建模,选择最优的阈值,从而提高去噪效果。
3. 软硬阈值软硬阈值方法是在自适应阈值的基础上发展而来的,它引入了非线性的阈值函数,能够更好地处理信号中的细节信息。
软阈值将小于阈值的系数按比例缩小,而硬阈值直接置零小于阈值的系数。
这种方法在保留语音信号重要信息的同时,能够有效地去除噪音。
三、去噪效果评估实验为了评估小波变换在语音降噪中的效果,需要选择合适的评估指标。
常用的评估指标有信噪比(SNR)、均方根误差(RMSE)和语音质量主观评价等。
1. 信噪比(SNR)信噪比是衡量信号质量的重要指标,它表示语音信号和噪音信号之间的比值。
计算公式为SNR = 10 * log10(信号能量/噪音能量)。
改进型阈值函数在小波阈值图像去噪中的应用
f u n c t i o n i m a g e d e n o i s i n g p r o c e s s i n g , i m a g e h a s h i g h e r p e a k s i g n a l t o n o i s e r a t i o( P S N R) , me a n s q u a r e
・
8 0・
ቤተ መጻሕፍቲ ባይዱ
工业仪表 与 自动化装置
2 0 1 3年第 5期
改 进 型 阈值 函数 在 小 波 阈值 图像 去 噪 中 的应 用
缑新科 , 余 超
( 兰 州理 工大 学 电 气工程 与信 息工程 学院 ,兰 州 7 3 0 0 5 0 )
摘要: 介 绍 了传统 小波 阈值 去噪 方 法的去 噪 原理 。小 波 阈值 去 噪 的 关键 是 阈值 的设 置 和 阈值
函数 进行 图像 去噪 处理 后 , 图像 具有 更 高的峰 值信 噪 比 , 均方差更小, 同时对软 阈值 函数 的 细 节模
糊现 象和硬 阈值 函数 的 G i b b s 现 象都有 不 同程度 的 改 良。
关 键词 : 小波 阈值 去噪 ; 阈值 函数 ; 小波 系数 ; 峰值 信 噪 比 中图分 类号 : T N 9 1 1 . 7 3 ; T P 3 9 1 文 献标 志码 : A 文章 编号 : 1 0 0 0— 0 6 8 2 ( 2 0 1 3 ) 0 5— 0 0 8 0— 0 4
GOU Xi nk e, YU Ch a o
( L a n z h o u U n i v e r s i t y o fT e c h n o l o g y , L a n z h o u 7 3 0 0 5 0, C h i n a )
一种改进的小波阈值去噪算法及其仿真分析
种改进 的小 波阈值去 噪算法及 其仿真分析
李永 军 。 等
一
种改进 的小波 阈值 去噪算法及其仿 真分析
An I p o e a eltTh e h d De osn g i m n t m ua i ay i m r v d W v e s ol n iig Alor h a d I Si lt r t s on An lss
突变部分 , 且噪声也不是平稳的 白噪声 , 采用传统 的傅
里叶变换对 这种信号 进行 消噪 , 效果 不 明显 。而小 波 变换 法 由于具有时频局部 化 、 小波基选 择灵活 、 计算速
信号 ( ) n 0 12 … , n ( = , , , N一1 。对信号 ( ) ) r 作离散 t
李永
马 互元 彼 永曰 | J
000 ) 503
( 军械 工程 学院导 弹工程 系, 河北 石 家庄
摘 要:针对小波阈值去噪方法中传统软硬阅值法各 自 存在的缺点 , 提出了开方法阈值去噪法。该方法对阈值的处理采用开方逼近的
思路 , 曲线 能很快 逼近硬 阈值 方法 曲线 , 使其 并具有较 好 的连 续性 , 服 了硬 阈值 法 不连续 和软 阈值 法有 恒定偏 差 的缺点 。通 过仿 真试 克 验将 开方法 与其 他三种 方法 的去噪效果进 行 了对 比。结果证 明 , 法兼顾 了软硬 阈值 法的优点 , 新方 去噪效果更 好 , 噪比更高 。 信
0 引言
在实际工作 中, 检测 到 的信号 中都夹 杂着各 种干 扰信号 ( 噪声 ) 这些干扰信号 的存在严 重影 响了信号 ,
本身 。为了更好号往往 包含 许多尖 峰或 信
系统输 出信号 , 即观测信号 () t可表示为 :
一种改进的小波变换阈值去噪法
应位置上往往有较强 的相关性 , 尤其是在信号的 边缘附近 , 其相关性更加 明显 , 而噪声对应的小波
系数 在尺 度 问是 不 相 关 或 弱 相 关 的。 因此 , 以 可 考虑 利用小 波 系数在 不 同尺 度 上对 应 点处 的相关
于或 等 于 0的 , 时 小 波 变 换 的 幅 值 随 着 尺 度 的 这 增加 而增 加或 保 持 不 变 ; 对 于 噪 声 , Lpci 而 其 isht z 指数是 小 于 0的 , 时 小 波 变换 的 幅值 随 着 尺 度 这
的增加而迅速衰减。当尺度增大 到一定程度 , 噪 声控制点的小波变换 的模极值点将会消失。信号
Ke r s a ee e n sn ;t r s o d f n t n;S ailC r lt n;s n lt o s ai y wo d :w v ltd - o i g h e h l u ci o p t o r ai a e o i a o n ie r t g o
对于信号 的正常边缘 , L s i 指数是大 其 ict p hz
Absr c :An i r v me t t r d t n l d — osn t o wa r s ne ta t mp o e n o ta ii a e n ii g meh d o s p e e td. Th ea e e n ii g e r l td d — osn meh d a d t h e h l e n ii gmeh d a e c mbn d t e a mp o e t o t o n het r s o d d — osn t o r o ie o b n i r v d meh d.W i hi t - t t smeh h o d,t v ltc efce t o n y ha e g o o tn iy a d h g c u a y b tas r a y t e he wa e e o f i n sn to l v o d c n i u t n i h a c r c u lo ae e s o r — i c nsr c in l fe le i g o tu tsg a sat rf t rn .Th i ain r s lss o d — o sng ef csa e ce ry i r v d. i e smulto e u t h w e n ii fe t r l al mp o e
小波变换语音消噪(改进阈值)资料教程文件
小波变换语音消噪(改进阈值)资料改进阈值函数进行语音信号消噪,但是在程序运行过程中频频报错。
本人经验不足调试不出,希望指导。
改进函数表达式附图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、默认阈值去噪处理。
小波阈值去噪,信号去噪,小波变换,傅里叶变换
小波阈值去噪,信号去噪,小波变换,傅里叶变换小波阈值去噪是一种常用的去噪方法,基于小波变换的原理。
小波变换是一种在时间-频率领域上分析信号的工具,它将信号分解为不同尺度的小波函数,进而揭示信号的瞬时特性和频率信息。
傅里叶变换则是将一个信号在时域和频域之间进行转换。
小波阈值去噪的步骤如下:
1. 对信号进行小波变换,将信号分解为多个尺度的小波系数。
2. 对每个尺度的小波系数进行阈值处理,将绝对值小于某个阈值的系数置零,保留绝对值较大的系数。
3. 对处理后的小波系数进行逆变换,得到去噪后的信号。
小波阈值去噪的关键在于如何选择合适的阈值,通常会使用软阈值或硬阈值进行处理。
软阈值将绝对值小于阈值的系数置零,并对绝对值较大的系数进行调整。
硬阈值则只保留绝对值较大的系数,将绝对值小于阈值的系数置零。
与小波阈值去噪相比,傅里叶变换是一种全局变换方法,它将信号转换到频域中,展示了信号包含的不同频率成分。
傅里叶变换的主要特点是能够提供信号的频率信息,但无法提供信号的时域信息。
因此,在处理非周期性信号时,小波变换通常被认为是一种更有效的方法。
总结起来,小波阈值去噪和傅里叶变换是两种常用的信号处理方法,前者基于小
波变换,在时-频域上分析信号并通过阈值处理实现去噪,而后者则是通过将信号转换到频域中以展示信号的频率成分。
基于小波变换的语音去噪
答辩人:曹艳艳 导 师:裘雪红 教授
基于小波变换的语音去噪
阈值消噪方法 阈值函数 阈值估计 实验结果及总结
小波变换的一些特点
小波变换的基本原理 小波变换利用一个基本小波,然后将其 伸缩和平移得到一个函数簇(即小波基 函数),以便在一定条件下,任一能量 有限的信号可按其函数簇进行时频分解。
新的阈值估计
无音段中各个尺度的小波系数的最大值 可以认为是含噪语音小波系数中的噪声 小波系数上限。 新的阈值计算公式为
Tj max d j, k
d j , k 为经小波变换得到的小波系数
新的阈值估计
改进的阈值估计、非负死区及改进的阈值 函数结合对含噪语音消噪
新的阈值估计
非负死区阈值函数 6.0875
阈值估计
如果将同一尺度上小波变换后得到的小 波系数从小到大排列,那么我们可以认 为较小的那部分小波系数对应着噪声的 小波系数,较大部分的小波系数则对应 着信号的小波系数。 理想情况下,我们使选取的阈值等于噪 声和信号对应的小波系数的临界值
新的阈值估计
谱减法主要思想 根据谱减法的思想提出的阈值估计 a. 提取出含噪语音最开始的一段无音段 b. 对无音段进行小波变换 c. 取各个尺度上小波系数的最大值Βιβλιοθήκη d j, k T j
m R
R Tj 为与尺度有关的阈值 、 、
改进的第一种阈值函数
此阈值函数拥有硬阈值函数保持边缘特 性的优点,同时也具有软阈值函数连续 性平滑性的特点。
改进的第一种阈值函数
三种不同阈值函数对BLOCKS信号分别在不 同信噪比下的消噪后的信噪比
软阈值函数
sgn(d j , k ) * d j , k T D j , k 0 d j, k T d j, k T
基于小波变换的新阈值函数语音去噪方法
基于小波变换的新阈值函数语音去噪方法刘继锦;周萍;杨青;景新幸【摘要】针对硬阈值函数不连续性、软阈值函数中存在恒定偏差的问题,基于2种改进的阈值函数,构造了一种新阈值函数,提出了一种基于小波变换的新阈值函数语音去噪方法。
分别用硬阈值处理方法、软阈值处理方法及新阈值处理方法对系统信号和纯净语音信号进行去噪仿真实验。
实验结果表明,新阈值去噪方法能减小信号失真,使重构信号逼近原始信号,达到了良好的去噪效果,比传统方法更具优越性和有效性。
%In view of the discontinuity of hard threshold function and the constant bias in soft threshold function,a new threshold function based on two improved threshold functions is constructed,and a new function speech denoising method based on wavelet transform is proposed.Hard threshold processing method,soft threshold processing method and the new threshold processing method are used for the system signal and pure speech signal denoising simulation experiment.The ex-perimental results show that the new threshold denoising method can reduce signal distortion,make the reconstructed signal approximation to the original signal,and achieve good denoising effect.It is better than the traditional method in superiority and effectiveness.【期刊名称】《桂林电子科技大学学报》【年(卷),期】2015(000)003【总页数】5页(P232-236)【关键词】小波变换;语音信号;阈值去噪;阈值函数;信噪比【作者】刘继锦;周萍;杨青;景新幸【作者单位】桂林电子科技大学电子工程与自动化学院,广西桂林 541004;桂林电子科技大学电子工程与自动化学院,广西桂林 541004;桂林电子科技大学电子工程与自动化学院,广西桂林 541004;桂林电子科技大学信息与通信学院,广西桂林 541004【正文语种】中文【中图分类】TP391.42语音识别广泛应用于民用和军用领域,由于语音信号含噪多,语音信号预处理不好容易造成语音识别错误,因此对语音信号的去噪极其重要。
小波变换的阈值选取与去噪效果评估方法
小波变换的阈值选取与去噪效果评估方法小波变换是一种常用的信号分析方法,可以将信号分解成不同频率的子信号,从而实现信号的去噪和特征提取。
在小波变换中,阈值选取是一个重要的步骤,它决定了去噪效果的好坏。
本文将介绍小波变换的阈值选取方法,并探讨如何评估去噪效果。
一、小波变换的阈值选取方法小波变换的阈值选取方法有很多种,常用的有固定阈值法、基于统计特性的阈值法和基于小波系数分布的阈值法。
1. 固定阈值法固定阈值法是最简单的阈值选取方法,它将小波系数的绝对值与一个固定阈值进行比较,大于阈值的系数保留,小于阈值的系数置零。
这种方法简单直观,但对于不同信号的去噪效果不一致,需要根据实际情况进行调整。
2. 基于统计特性的阈值法基于统计特性的阈值法是根据信号的统计特性来选择阈值。
常用的方法有均值绝对偏差(MAD)和中值绝对偏差(MAD)。
MAD方法是通过计算小波系数的平均值和标准差来确定阈值。
具体步骤是先计算小波系数的平均值和标准差,然后将平均值加减一个倍数的标准差作为阈值。
一般情况下,取倍数为2或3可以得到较好的去噪效果。
3. 基于小波系数分布的阈值法基于小波系数分布的阈值法是根据小波系数的分布特点来选择阈值。
常用的方法有软阈值和硬阈值。
软阈值将小于阈值的系数置零,并对大于阈值的系数进行缩放。
这种方法可以保留信号的主要特征,同时抑制噪声。
硬阈值将小于阈值的系数置零,而大于阈值的系数保留。
这种方法对于信号的边缘特征保留较好,但可能会导致一些细节信息的丢失。
二、去噪效果评估方法选择合适的阈值选取方法可以实现较好的去噪效果,但如何评估去噪效果也是一个关键问题。
下面介绍两种常用的评估方法。
1. 信噪比(SNR)信噪比是一种常用的评估指标,它可以衡量信号与噪声的相对强度。
计算公式为SNR = 10 * log10(信号能量 / 噪声能量)。
当SNR值越大,说明去噪效果越好。
2. 均方根误差(RMSE)均方根误差是评估去噪效果的另一种指标。
一种新的小波阈值法在语音信号处理中的应用
一种新的小波阈值法在语音信号处理中的应用
小波阈值法是一种新的、有效的语音信号处理技术,它主要是通过利用小波变换将语音信号分解为多个频带,然后在不同频段对信号进行阈值处理而获得去噪效果。
该方法可以更好地处理语音信号中的噪声,从而提高语音质量。
在语音信号处理中,小波阈值法的核心是小波变换(wavelet transform)。
小波变换是一种多通道信号抽取方法,利用小波变换将信号分解为多个独立的子带,每个子带抽取一个特征参数,而这些参数都与原始信号相关,因此在处理信号时可以忽略不必要的参数,减少信号中的噪声,从而提高信号质量。
小波阈值法通过对每个子带中的信号进行灰度级变换处理,提取出正反馈和负反馈信号。
根据正反馈和负反馈的大小,确定每个子信号的阈值,从而实现语音信号的去噪处理。
这种方法可以有效抑制来自背景噪声的语音信号,从而提高语音质量。
在语音信号处理中,小波阈值法具有显著的优势,包括:首先,它可以有效抑制噪声,从而提高语音质量;其次,它可以更准确地预测语音特征;最后,它可以更有效地处理数据。
总之,小波阈值法是一种有效的语音信号处理技术,它可以抑制噪声并提高语音质量。
小波阈值法的引入使得自动识别技术可以更有效地处理语音信号,使得信号处理效果更加准确,同时也提高了技术的可靠性。
小波阈值去噪改进算法研究
小波阈值去噪改进算法研究
小波阈值去噪改进算法的研究是一项重要的工作,它强调了小波变换的在图像处理中的广泛应用以及实现去噪的能力。
小波变换不仅仅是一种工具,而且它能够获得更高的信息熵,这使得小波变换更适合用于处理更大的噪声。
由于小波变换是一种分解性变换方法,因此它可以将原始信号分解为不同频带上的分量,使得噪声更容易消除。
在小波变换去噪方法中,小波阈值去噪改进算法是最重要的,这种技术结合了小波变换和基于阈值的去噪方法,来有效地消除噪声并保留原始结构。
这种方法首先对原始图像进行小波分解,然后在不同尺度子带内找出噪声的位置,并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第一章绪论语音信号处理是信息高速公路、多媒体技术、办公自动化、现代通信及智能系统等新兴领域应用的核心技术之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
改进阈值函数进行语音信号消噪,但是在程序运行过程中频频报错。
本人经验不足调试不出,希望求得各位指导改进函数表达式附图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、默认阈值去噪处理。