当前位置:文档之家› 第六章 小波分析方法在滤波和消噪方面的应用

第六章 小波分析方法在滤波和消噪方面的应用


xd2=wden(x,'rigrsure','s','sln',lev,'sym8'); subplot(324);plot(xd2); axis([1,2048,-10,10]); title('用rigrsure阈值去噪后的信号'); xd3=wden(x,'sqtwolog','s','sln',lev,'sym8 '); subplot(325);plot(xd2); axis([1,2048,-10,10]); title('用sqtwolog阈值去噪后的信号'); xd4=wden(x,'minimaxi','s','sln',lev,'sym8 '); subplot(326);plot(xd4); axis([1,2048,-10,10]); title('用minimaxi阈值去噪后的信号');
正交小波变换对应的小波变换模极大值点 在不同尺度上存在移位现象,是由于不对 称造成的。需要使用对称小波进行分析。 如果将相邻两个尺度层上的小波变换对应 相乘,能进一步增强突变点的表现,并能 更好的消除噪声。
3、一维小波分析对平稳信号的消噪
2
白噪声的小波分析特点
1)实际工程中有用信号通常为低频信号或一些比较平稳 的信号,噪声通常为高频信号。通过小波分解,噪声 表现在高频部分,且衰减严重。各尺度上不相关;
2)消噪方法可分为强制消噪和门限消噪 强制消噪直接将小波分解的高频系数置零,然 后进行信号重构。 门限消噪根据经验和某种依据设定门限值(阈 值),对高频部分系数用门限值处理,大于门 限的保留,低于门限的置零。 门限消噪又可分为硬阈值和软阈值消噪,前者 设定固定阈值,后者根据估计计算自动获取。
– Scal=‘one’时不用调整; – Scal=‘sln’时,根据第一层的系数进行一次噪声层的估 计来调整阈值; – Scal=‘mln’时,在不同层估计噪声,以此调整阈值。 – XD 消噪后的信号。CXD,LXD消噪后的小波分解结构。
snr=3;%设置信噪比 init=2055615866;%设置随机数 的初始值 [xref,x]=wnoise(3,11,snr,init); lev=5; xd=wden(x,'heursure','s','one',le v,'sym8'); figure(1) subplot(321);plot(xref); axis([1,2048,-10,10]); title('原始信号') subplot(322);plot(x); axis([1,2048,-10,10]); title('含噪信号,信噪比3'); subplot(323);plot(xd); axis([1,2048,-10,10]); title('用heursure阈值去噪后的信 号');
第六章 小波分析方法在滤 波和消噪方面的应用
6.1 小波分析在常规滤波方面的 应用
低通滤波
– 要求:要求保留原信号中特定的低频范围信号,去掉高频分 量。 – 方法:使用小波包算法,保留需要低频部分,高频部分置零。
高通滤波
– 要求:保留原信号中的高频范围信号,去掉低频分量。 – 方法:使用小波包算法,保留需要高频部分,低频部分置零。
TPTR选项 rigrsure sqtwolog heursure 阈值选择规则
采用史坦(stein)的无偏似然估计(Unbiased Risk Estimate)原理(SURE)进行自适应阈值选择 固定的阈值形式,等于sqrt(2*log(length(s)))
启发式阈值选择
minimaxi
用极大极小原理选择的阈值
功能
信号消噪的阈值选择 进行软阈值或硬阈值处理 一维信号的小波系数阈值处理 用小波进行一维信号的自动消噪
获取在消噪或压缩过程中的默认值阈值 (软或硬)、熵标准 wdencmp 用小波进行信号的消噪和压缩
பைடு நூலகம்
thselect
THR = THSELECT(X,TPTR) returns threshold X-adapted value using selection rule defined by string TPTR.
subplot(422) plot(ss1); title('消噪后信号1') subplot(425) plot(ss2); title('消噪后信号2'); subplot(426) plot(ss3); title('消噪后信号3') ss4=wrcoef('a',c,l,'db3',3); subplot(529) plot(ss4); title('消噪后信号4')
一维信号的消噪步骤
一维信号的小波分解。选择一个小波并确 定一个小波分解的层次,然后对信号进行N 层小波分解; 小波分解的高频系数的阈值量化。对第一 到第N层的每一个高频系数,选择一个阈值 进行软阈值量化处理; 一维小波的重构。根据小波分解的第N层低 频系数和经过量化的各层高频系数,进行 一维信号的小波重构。
2.2163
wthresh
Y = wthresh(X,SORH,T) returns soft (if SORH = 's') or hard (if SORH = 'h') Tthresholding of the input vector or matrix X. T is the threshold value. Y = wthresh(X,‘s’,T) returns Y = SIGN(X).(|X|-T)+, 把 信号的绝对值与阈值比较,小于和等于阈值的点变为0, 大于阈值的点变为值与阈值之差。 Y = wthresh(X,'h',T) returns Y = X.1-(|X|>T), 与阈值比较,大于阈值等于原 值,小于等于阈值置零,hard thresholding is cruder.
一维小波重构函数
函数名 idwt idwtper waverec upwlev 功能 单尺度一维离散小波逆变换 单尺度一维离散小波重构(周期性) 多尺度一维小波重构 单尺度一维小波分解的重构
wrcoef upcoef
对一维小波系数进行单支重构 一维系数的直接小波重构
一维小波消噪和压缩函数
函数名
thselect wthresh wthcoef wden ddencmp
load noissin; s=noissin(1:1000); subplot(421) plot(s); title('原始信号') [c,l]=wavedec(s,3,'db3'); n=[1,2,3]; %设置尺度向量 p=[98,99,97]; %设置阈值向量 nc1=wthcoef('d',c,l,n,p);%对高频 系数进行阈值处理 nc2=wthcoef('d',c,l,n); %对n指定 尺度的高频系数全部置零 nc3=wthcoef('a',c,l); %低频系数 置零 %nc4=wthcoef('t',c,l,n); ss1=waverec(nc1,l,'db3'); ss2=waverec(nc2,l,'db3'); ss3=waverec(nc3,l,'db3');
小波分析在平稳信号消噪中的应用
平稳信号往往表现为低频信号。 1)周期信号中混有白噪声 一般使用自相关过程消噪即可 2)时频受限信号 进行小波包分解,剔除频限之外部分,再 进行门限消噪。
小波分析在非平稳信号消噪中的应用
工程实际应用中存在大量的非平稳信号,一方面 需要消除噪声,同时需要保留突变成分,而突变 成分可能就在高频中。一般而言,噪声尤其是白 噪声在高频部分具有均匀的表现,而突变部分只 在某些分量中幅度较大。 在多个尺度下同时进行观察,以减少误判和漏判。 消噪时可以只保留各尺度与突变点对应的模极大 值,其他用零代替;也可以保留突变点及其附近 的模极大值,效果更好。
带通滤波
– 要求:保留原信号中的某个特定频带,去掉其他频率成分。 – 方法:使用小波包算法,保留需要频率部分,其他的部分置 零。
6.2 小波分析在消噪方面的应用
1 白噪声的特点
– – – – 白噪声是随机性的。不同的 1 (t )和 2 (t ) 不相关。 不同时刻的采样值不相关; 零均值且能量无限; 时域表现是均匀密集的; 包含有全部频谱。
wthcoef
进行一维信号小波系数阈值处理。 nc = wthcoef(‘d’,c,l,n,p),返回小波分解结构nc, n为尺度向量,p是一个包含把较小系数置零的百 分比信息向量,与n同长度。 nc = wthcoef(‘d’,c,l,n)将指定尺度的高频系数全部 置零; nc = wthcoef(‘a’,c,l)将低频系数全部置零。 nc = wthcoef(‘t’,c,l,n,t,sorh)返回经阈值处理后的 分解向量。n为指定尺度向量,t为对应的阈值向 量,sorh用来指定硬或软阈值。
wden
用小波进行一维信号的自动消噪 [XD,CXD,LXD] = WDEN(X,TPTR,SORH,SCAL,N,'wname') [XD,CXD,LXD] = WDEN(C,L,TPTR,SORH,SCAL,N,'wname') TPTR阈值选择规则;见前面。 Scal定义所乘的阈值是否需要重新调整:
举例
init=2055415866; rand('seed',init); x=randn(1,1000); plot(x); thr1=thselect(x,'rigrsure'); thr2=thselect(x,'sqtwolog'); thr3=thselect(x,'heursure'); thr4=thselect(x,'minimaxi'); 执行程序后输出: [thr1 thr2,thr3,thr4]= 2.7316 3.7169 3.7169
相关主题