1、小波去噪实现步骤
(1)二维信号的小波分解。选择一个小波和小波分解的层次n,然后计算信号s到第n层的分解。
(2)对高频系数进行阈值量化。对于从1~n的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。
(3)二维小波重构。根据小波分解的第n层的低频系数和经过修改的从第一层到第n的各层高频系数,计算二维信号的小波重构
2、matlab函数介绍
(1)wavedec2函数
该函数用于对多尺度二维小波进行分解,其常用调用格式:
[c,s] = wavedec2(x,n,‘wname’):用小波函数wname对信号x在尺度n上的二维分解,n是严格正整数。
(2)wrcoef2函数
该函数用于对二维小波系数进行单支重构,其调用格式:
x = wrcoef2(‘type’,c,s,‘wname’,n):用指定的小波函数wname进行n尺度重构。当type = ‘a’时,仅对信号的低频部分进行重构,此时n可以为0;当type = ‘h’(或‘v’/‘d’)时,对信号(水平、垂直、对角)的高频进行重构,n为严格正整数。
(3)wthcoef2函数
该函数用于对二维信号的小波系数阈值进行处理,常用调用格式:
nc = wthcoef2(‘type’,c,s,n,t,sorh):返回经过小波分解结构[c,s]进行处理后的新的小波分解向量nc,[nc,s]即构成一个新的小波分解结构。n是一个包含高频尺度的向量,t是相应的阈值,且n和t长度须相等。返回‘type’(水平、垂直、对角线)方向的小波分解向量nc。参数sorh用来对阈值方式进行选择,当sorh = ‘s’时,为软阈值,当sorh = ‘h’时,为硬阈值。
3、小波去噪matlab实例
实例1:
clear all;
load facets;
subplot(2,2,1);image(x);
colormap(map);
xlabel(‘(a)原始图像’);
axis square
%产生含噪声图像
init = 2055615866;
randn(‘seed’,init);
x = x + 50*randn(size(x));
subplot(2,2,2);image(x);
colormap(map);
xlabel(‘(b)含噪声图像’);
axis square
%下面进行图像的去噪处理
%用小波函数coif3对x进行2层小波分解
[c,s] = wavedec2(x,2,‘coif3’);
%提取小波分解中第一层的低频图像,即实现了低通滤波去噪
%设置尺度向量
n = [1,2];
%设置阈值向量p
p = [10.12,23.28];
%对三个方向高频系数进行阈值处理
nc = wthcoef2(‘h’,c,s,n,p,‘s’);
nc = wthcoef2(‘v’,nc,s,n,p,‘s’);
nc = wthcoef2(‘d’,nc,s,n,p,‘s’);
%对新的小波分解结构[c,s]进行重构
x1 = waverec2(nc,s,‘coif3’);
subplot(2,2,3);image(x1);
colormap(map);
xlabel(‘(c)第一次去噪图像’);
axis square
%对nc再次进行滤波去噪
xx = wthcoef2(‘v’,nc,s,n,p,‘s’);
x2 = waverec2(xx,s,‘coif3’);
subplot(2,2,4);image(x2);
colormap(map);
xlabel(‘(d)第二次去噪图像’);
axis square《span style=“font-size:14px”》《span style=“font-size:14px”》《span style=“font-size:18px; color:#3366ff”》
实例2:
首先使用函数wnoisest获取噪声方差,然后使用函数wbmpen获取小波去噪阈值,最后使用wdencmp实现信号消噪。
load leleccum;
indx = 1:1024;
x = leleccum(indx);
%产生含噪信号
init = 2055615886;
randn(‘seed’,init);
nx = x + 18*randn(size(x));
%使用小波函数‘db6’对信号进行3层分解
[c,l] = wavedec(nx,3,‘db6’);
%估计尺度1的噪声标准差
sigma = wnoisest(c,l,1);
alpha = 2;
%获取消噪过程中的阈值
thr = wbmpen(c,l,sigma,alpha);
keepapp = 1;
%对信号进行消噪
xd = wdencmp(‘gbl’,c,l,‘db6’,3,thr,‘s’,keepapp);
subplot(221);
plot(x);
title(‘原始信号’);
subplot(222);
plot(nx);
title(‘含噪信号’);
subplot(223);
plot(xd);
title(‘消噪后的信号’);
实例3:
本例中,对小波分解系数使用函数wthcoef进行阈值处理,然后利用阈值处理后的小波系数进行重构达到去噪目的。
load leleccum;
indx = 1:1024;
x = leleccum(indx);
%产生含噪信号
init = 2055615866;
randn(‘seed’,init);
nx = x + 18*randn(size(x));
%使用小波函数‘db5’对信号进行3层分解
[c,l] = wavedec(nx,3,‘db5’);
%设置尺度向量
n = [1,2,3];
%设置阈值向量
p = [100,90,80];
%对高频系数进行阈值处理
nc = wthcoef(‘d’,c,l,n,p);
%对修正后的小波分解结构进行重构
rx = waverec(nc,l,‘db5’);
subplot(221);
plot(x);
title(‘原始信号’);
subplot(222);
plot(nx);
title(‘含噪信号’);
subplot(223);
plot(rx);
title(‘消噪后的信号’);
实例4:
本例中,使用一维信号的自动消噪函数wden对信号进行消噪。
load leleccum;
indx = 1:1024;
x = leleccum(indx);
%产生含噪信号
init = 2055615866;
randn(‘seed’,init);
nx = x + 18*randn(size(x));
%将信号nx使用小波函数‘sym5’分解到第5层
%使用mimimaxi阈值选择系数进行处理,消除噪声信号
lev = 5;
xd = wden(nx,‘minimaxi’,‘s’,‘mln’,lev,‘sym5’);
subplot(221);
plot(x);
title(‘原始信号’);
subplot(222);
plot(nx);
title(‘含噪信号’);
subplot(223);
plot(xd);
title(‘消噪后的信号’);
基于红外感应技术电暖器的应用设计与试验
低频功率放大器的工作原理
FPGA在实时基因组测序计算大显身手,把测序时间从30小时缩短到26分钟!
iphone8/iphone8 plus今天上午8点正式开卖:国行iPhone8价格不稳,线下渠道比官网价还低,只为等iphonex?
导轨式多回路电力仪表多种无线通讯方式可应用于电力运维
小波去噪matlab程序代码_步骤及函数介绍
PCB质量问题的造成原因
Atmel MSL2166 16路白光和RGB LED驱动解决方案
深度解析锂离子电池用多孔电极结构设计
倒计时C程序实例 LED数码显示函数应用
画电气原理图到底是使用CAD还是EPLAN有什么区别
超简单!如何自己动手做一个简易的逆变器?
低消耗电流电压调整器 XC6503
普遍的纸吸管机分切工艺方法都有哪些
如何使用RGB格式图像传感器去构建一个通用马赛克算法
TD产业联盟秘书长杨骅认为5G频谱分配无法做到绝对平均
水洗色牢度测试仪的技术参数是怎样的
低噪声音频前置放大器电路图讲解
Cat网线的标准和类别
关于物联网与万物互联之间的联系分析