文档库 最新最全的文档下载
当前位置:文档库 › Matlab实现小波去噪

Matlab实现小波去噪

Matlab实现小波去噪
Matlab实现小波去噪

小波去噪MATLAB实现

第二章图像小波去噪理论

第4章医学图像小波去噪的MATLAB实现

4.1 小波基的确定

不同的小波基具有不同的时频特征,用不同的小波基分析同一个问题会产生不同的结果,故小波分析在应用中便存在一个小波基或小波函数的选取和优化问题。我们在应用中要把握小波函数的特征,根据应用需要,选择合适的小波基。在小波分析应用中要考查小波函数或小波基的连续性、正交性、对称性、消失矩、线性相位、时频窗口的中心和半径以及时频窗的面积等,这些特征关系到如何选择合适的小波基。本节选取了一些常见的小波基,首先固定小波分解层数和阈值,然后改变小波基,运行结果。通过计算峰值信噪比(PSNR)来判定哪个小波基对医学图像去噪效果好。

下表为不同小波基去噪前带噪图像的峰值信噪比(PSNR)和去噪后图像的峰值信噪比(PSNR),通过峰值信噪比对不同小波基的去噪效果进行评价,从而选出对图像去噪效果较好的小波基。

通过去噪效果图4-1和表4-1以及图像评价原则我们可以很容易选出对图像去噪效果好,而又很好的保持图像细节的小波基。从图4-1中我们可以看出选用sym3小波基去噪后噪声得到了明显的抑制,但是图像的细节被弱化了,读图有所影响。选用sym5小波基去噪后,噪声没有得到很好的抑制,而且图像细节已明显消损,对读图有所影响。选用coif2小波基对图像进行去噪后,噪声得到一定的抑制,图像的细节保持的也很好。选用coif5小波基对图像去噪后,图像细节明显消损,对读图有所影响。选用db2小波基对图像去噪后图像的噪声虽然得到抑制但细节变得模糊,很难辨别。选用db6小波基对图像进行去噪后,图像失真比较明显。综上所述,coif2小波基去噪效果很好,所以本次课程设计中我选择coif2小波基进行医学图像小波去噪方法研究。

相应小波变换语句:[c,s]=wavedec2(A,n,wname);

其中:wname为小波基变量,通过改变它来变换程序中运用的小波基。

n为小波分解层数

A为处理图像

4.2 分解层数的选择

在实际的小波图像去噪过程中,不同信号、不同信噪比下都存在一个去噪效果最好或接近最好的分解层数,分解层数对于去噪效果的影响很大。通常分解层数过多,并且对所有的各层小波空间的系数都进行阈值处理会造成信号的信息丢失严重,去噪后的信噪比反而下降,同时导致运算量增大,使处理速度变慢。

分解层数过少则去噪效果不理想,信噪比提高不多。因此分解层数的确定作为一个核心的问题需要解决。

本论文中通过对医学图像进行n层小波分解,从大量的实验数据可以看出层数超过十层后图像以很难辨别,我通过仿真实验对医学图像进行了1-6层小波分解,确定小波基为coif2。仿真实验结果如图4-2所示:

不同分解层数图像去噪效果不同,从上面图中我们就可以看出,为了更有说服力

由图4-3可知由本文研究方法确定的最佳分解层数分别为2和3,在没达到此分解层数之前,分解层数对去噪结果的影响是很大的,去噪后信号的信噪比随着分解层数的增加而迅速增加,在超过这个层数之后,去噪后信号的信噪比要么没有太大的变化,要么就会有较大的下滑,由此需要确定一个合适的分解层数才能达到较好的去噪效果。

综上所述:通过图4-2、表4-2、图4-3的综合评价,我们选取分解层数为2层进行我们后续的研究,力求使我们研究的方法去噪效果更好。

以下是相应的仿真程序

clear; % 清理工作空间

I=imread ('mm、bmp'); %装载原始图像

X1=rgb2gray(I);

X=double(X1);

[m,n]=size(X);

x=imnoise(X1,'gaussian',0、02); %加入高斯噪声

%分层阈值处理

for i=1:6

[c,s]=wavedec2(x,i,'coif2'); % i层小波分解

[thr3,nkeep3]=wdcbm2(c,s,2);% 提取i层阈值

Duo(:,:,i)=wdencmp('lvd',c,s,'coif2',i,thr3,'h');% i层小波去噪

psnr(i)=10*log10(m*n*max(max(X^2))/sum(sum((double(X)-double(Duo(:,:, i)))、^2)));

% i层小波去噪后图像的峰值信噪比

end

% 显示各层去噪后图像

for i=1:6

figure,

imshow(Duo(:,:,i),[])

end

figure,

plot(psnr)

axis([0 6 5 25])

title('不同层次去噪后图像峰值信噪比走势图‘)

4.3 阈值函数的选择

现在有很多关于阈值函数选择方面的研究,人们对阈值函数的优缺点大体上有所了解,小波阈值的选取和阈值函数的选择直接影响着最后的结果。本文选取的方有更好的法克服了硬阈值在阈值点的不连续性和软阈值过度平滑的缺点,实验表明,该方法具去噪效果,能在去噪的同时保留图像的边缘等重要细节。阈值去噪中,阈值函数体现了对超过和低于阈值的小波系数运用不同处理策略,是阈值去噪中关键的一步。经小波分解后,信号的小波系数幅值要大于噪声的系数幅值。可以认为,幅值比较大的小波系数一般以信号为主,而幅值比较小的系数在很大程度上是噪声。于是,采用阈值的办法可以把信号系数保留,而使大部分噪声系数减小至零。小波阈值收缩法去噪的具体处理过程为:将含噪信号在各尺度上进行小波分解,设定一个阈值,幅值低于该阈值的小波系数置为0,高于该阈值的小波系数或者完全保留,或者做相应的“收缩(shrinkage)”最后将处理后获得的小波系数用逆小波变换进行重构,得到去噪后的图像。

从表4-3中我们可以看出,自适应阈值去噪后图像的峰值信噪比(PSNR)比较大,去噪效果较好,所以后续研究中我们选用自适应阈值去噪进行研究。

图4-4为不同阈值函数的去噪效果图,从图中我们可以看出:硬阈值函数可以很

好地保留图像边缘等局部特征,但图像会出现振铃、伪吉布斯效应等视觉失真。而软阈值函数处理相对平滑,但可能会造成边缘模糊等失真现象。相对于以上两种阈值函数,半软阈值函数能表现出很好的去噪效果,只不过半软阈值大都对图像有针对性,没有在各个方面都优秀的阈值函数,并且随着优化程度的提高,算法复杂度也越来越高,实现起来比较困难。但相对而言改善后的阈值函数都会从某种程度上提高信噪比以及保真度。

硬阈值 Birge-Massart Donoho软阈值 Donoho 软阈值

Birge-Massart 硬阈值半软阈值自适应阈值

图4-4 不同阈值函数去噪效果图

以下是相应程序代码

%Donoho全局阈值软阈值公式---------------------------------------------

x_soft_r = wdenoise(xr, 'gbl', 's', thr_r, 'coif2', 2);

x_soft_g = wdenoise(xg, 'gbl', 's', thr_g, 'coif2', 2);

x_soft_b = wdenoise(xb, 'gbl', 's', thr_b, 'coif2', 2);

%

------------------------------------------------------------------ %D onoho全局阈值硬阈值公式---------------------------------------------

x_hard_r = wdenoise(xr, 'gbl', 'h', thr_r, 'coif2', 2);

x_hard_g = wdenoise(xg, 'gbl', 'h', thr_g, 'coif2', 2);

x_hard_b = wdenoise(xb, 'gbl', 'h', thr_b, 'coif2', 2);

%

-------------------------------------------------------------------- % Bige-Massa策略软阈值公式--------------------------------------------

x_soft_lvd_r = wdenoise(xr, 'lvd', 's', thr_lvd_r, 'coif2', 2);

x_soft_lvd_g = wdenoise(xg, 'lvd', 's', thr_lvd_g, 'coif2', 2);

x_soft_lvd_b = wdenoise(xb, 'lvd', 's', thr_lvd_b, 'coif2', 2);

%--------------------------------------------------------

% Bige-Massa策略硬阈值公式--------------------------------------------

x_hard_lvd_r = wdenoise(xr, 'lvd', 'h', thr_lvd_r, 'coif2', 2);

x_hard_lvd_g = wdenoise(xg, 'lvd', 'h', thr_lvd_g, 'coif2', 2);

x_hard_lvd_b = wdenoise(xb, 'lvd', 'h', thr_lvd_b, 'coif2', 2);

%

---------------------------------------------------------------------- %半软阈值--------------------------------------------------------------

x1_r = den1(xr, 'coif2', 2, thr_r);

x1_g = den1(xg, 'coif2', 2, thr_g);

x1_b = den1(xb, 'coif2', 2, thr_b);

%------------------------------------------------------------------- % 自适应阈值--------------------------------------------------------- x4_r = den4(xr, 'coif2', 2);

x4_g = den4(xg, 'coif2', 2);

x4_b = den4(xb, 'coif2', 2);

%

------------------------------------------------------------------- %恢复去噪后的图像========================================================

x_soft = cat(3, x_soft_r, x_soft_g, x_soft_b);

% Donoho 软阈值

x_hard = cat(3, x_hard_r, x_hard_g, x_hard_b);

% Donoho 硬阈值

x_soft_lvd = cat(3, x_soft_lvd_r, x_soft_lvd_g, x_soft_lvd_b);

%Birge-Massart 软阈值

x_hard_lvd = cat(3, x_hard_lvd_r, x_hard_lvd_g, x_hard_lvd_b); %Birge-Massart 硬阈值

x1 = cat(3, x1_r, x1_g, x1_b); % 半软阈值

x1_5 = cat(3, x1_5_r, x1_5_g, x1_5_b); % 半软阈值+均值滤波

x4 = cat(3, x4_r, x4_g, x4_b); % 自适应阈值

===================================================================== ==== psnr_soft = PSNR_color(x_soft, X);

psnr_hard = PSNR_color(x_hard, X);

psnr_soft_lvd = PSNR_color(x_soft_lvd, X);

psnr_hard_lvd = PSNR_color(x_hard_lvd, X);

psnr1 = PSNR_color(x1, X);

psnr1_5 = PSNR_color(x1_5, X);

x4=rgb2gray(x4);

psnr4 = PSNR(x4, X);

===================================================================== ====

===================================================================== ==== function psnr = psnr_color(I, J)

%计算消噪前后图像的峰值信噪比

psnr = 10 * log10( 255^2 / MSE_color(I, J) );

4.4 与传统去噪方法比较

通过前面的研究确定一个完整去噪算法中影响去噪性能的各种因素。在实际的图像处理中,为小波阈值去噪法的选择和改善最终确定了一个比较好的去噪效果。然后通过与传统去噪方法进行比较来证实我们最终确定的方法对医学图像去噪有较好的优势。本文中最后确定的各变量为:coif2小波基、2层小波分解层数、自适应阈值、软阈值函数等等,通过这些变量的确定,使我们所研究的小波自适应阈值去噪方法的去噪效果更优。

由图4-5我们可以看出自适应阈值去噪后的图像比传统方法去噪后图像效果明显好。通过软件仿真我们可以清晰的看出不同方法的优缺点,更加明确了本文研究

的小波阈值去噪的优势。

原始图像加噪图像 3*3的邻域窗的中值滤波图像

均值滤波图像

自适应阈值 5*5的邻域窗的中值滤波图像

维纳处理3 维纳处理5 维纳处理7

图4-5 小波阈值去噪与传统去噪方法效果图

以下是相应的程序代码

%对彩色图像进行去噪

I = imread('mm、bmp'); %读入图像

X = im2double(I); %转换成双精度类型 x_noise = imnoise(X, 'gaussian', 0、02); %加入高斯噪声 %提取三个通道信息

xr = x_noise(:, :, 1); %R通道

xg = x_noise(:, :, 2); %G通道

xb = x_noise(:, :, 3); %B通道

%估计三个通道的阈值

[Cr, Sr] = wavedec2(xr, 2, 'coif2');

[Cg, Sg] = wavedec2(xg, 2, 'coif2');

[Cb, Sb] = wavedec2(xb, 2, 'coif2');

thr_r = Donoho(xr); %R通道全局阈值 thr_g = Donoho(xg); %G通道全局阈值thr_b = Donoho(xb);

%B通道全局阈值 thr_lvd_r = Birge_Massart(Cr, Sr); %R通道局部阈值

thr_lvd_g = Birge_Massart(Cg, Sg); %G通道局部阈值

thr_lvd_b = Birge_Massart(Cb, Sb); %B通道局部阈值

%

------------------------------------------------------------------- % 自适应阈值--------------------------------------------------------- x4_r = den4(xr, 'coif2', 2);

x4_g = den4(xg, 'coif2', 2);

x4_b = den4(xb, 'coif2', 2);

%

------------------------------------------------------------------- %恢复去噪后的图像========================================================

x4 = cat(3, x4_r, x4_g, x4_b); % 自适应阈值

===================================================================== ====

psnr4 = PSNR(x4, X);

figure; imshow(x4);

title('自适应阈值');

%

=====================================================================

function X = den4(x, wname, n)

% "Feature Adaptive Wavelet Shrinkage for Image Denoising"

% 初始化参数值

R = 5; % 窗口大小

alpha = 0.1; %控制小波系数收缩减的程度 beta = 0.3;

delta = DELTA(x); % 噪方差

lambda2 = 4 * delta^2 * log(R); %局部阈值

[C, S] = wavedec2(x, n, wname); %对图像进行小波分解 %提取每层系数并进行处理

for i = n : -1 : 1

cH = detcoef2('h', C, S, i); %水平细节系数

cV = detcoef2('v', C, S, i); %垂直细节系数

cD = detcoef2('d', C, S, i); % 对角线细节系数

dim = size(cH);

%分别处理三个方向的系数

for j = 1 : dim(1)

for k = 1 : dim(2)

S_jk2 = energy(cH, j, k, R);

cH(j, k) = shrink(cH(j, k), S_jk2, alpha, beta, lambda2);

S_jk2 = energy(cV, j, k, R);

cV(j, k) = shrink(cV(j, k), S_jk2, alpha, beta, lambda2);

S_jk2 = energy(cD, j, k, R);

cD(j, k) = shrink(cD(j, k), S_jk2, alpha, beta, lambda2); end

end

%再把系数放回去

k = size(S,1) - i;

first = S(1,1)*S(1,2) + 3 * sum(S(2:k-1, 1)、*S(2:k-1, 2)) + 1; %起始位置 add = S(k,1)*S(k,2); % 系

数长度

C(first : first + add - 1) = reshape(cH, 1, add);

C(first + add : first + 2*add - 1) = reshape(cV, 1, add);

C(first + 2*add : first + 3*add - 1) = reshape(cD, 1, add);

end

X = waverec2(C, S, wname); % 重构图像

%%%

%%% delta

function delta = DELTA(x)

% 估计噪声方差

[C, S] = wavedec2(x, 1, 'db1'); % 小波分解 d = C( prod( S(1,:) ) + 2 * prod( S(2,:) ) + 1 : end); % HH子带系数

delta = median( abs(d) ) / 0、6745; % 计算delta %%%

%%% energy

function S_jk2 = energy(cM, j, k, R)

% 计算小波系数附近的能量

dim = size(cM);

%边界判断

row_min = (j-1 < fix(R/2)) * (1-j) + (j-1 >= fix(R/2)) * fix(-R/2);

row_max = (dim(1)-j < fix(R/2)) * (dim(1)-j) + (dim(1)-j >= fix(R/2)) * fix(R/2); col_min = (k-1 < fix(R/2)) * (1-k) + (k-1 >= fix(R/2)) * fix(-R/2);

col_max = (dim(2)-k < fix(R/2)) * (dim(2)-k) + (dim(2)-k >= fix(R/2)) * fix(R/2); s = 0;

for m = row_min : row_max

for n = col_min : col_max

s = cM(j + m, k + n)^2 + s;

end

end

S_jk2 = s / R^2;

%%% shrink

function d_jk = shrink(d, S_jk2, alpha, beta, lambda2)

% 处理小波系数

if S_jk2 >= beta * lambda2

d_jk = d * (1 - alpha * lambda2 / S_jk2);

else

d_jk = 0;

End

4.5 本章小结

本章通过MATLAB实验仿真对前面相应的理论知识进行实践,根据要确定的变量编写相应的程序对医学图像进行处理,通过处理后的图像效果和去噪后图像的峰值信噪比确定去噪效果较好的变量,最终确定本文中所有的变量,已达到对图像去噪效果最优的选择。通过本章的总结我们对小波阈值去噪的细节更加清晰,能够自己调试程序,并改变相应的参数使图像去噪效果更好。而且我们还学会了判断医学图像去噪好坏的评价标准,能够更好的评价一副图像的质量。实际应用中最常用的阈值函数是软阈值函数。在阈值及阈值函数的选取中,没有最好的,只有最合适的,在运用过程中只有通过不断的试验,才能找到合适的处理方法。

最新小波去噪matlab程序.优选

[转帖]小波去噪matlab程序 ****************************************** clear clc %在噪声环境下语音信号的增强 %语音信号为读入的声音文件 %噪声为正态随机噪声 sound=wavread('c12345.wav'); count1=length(sound); noise=0.05*randn(1,count1); for i=1:count1 signal(i)=sound(i); end for i=1:count1 y(i)=signal(i)+noise(i); end %在小波基'db3'下进行一维离散小波变换[coefs1,coefs2]=dwt(y,'db3'); %[低频高频] count2=length(coefs1); count3=length(coefs2); energy1=sum((abs(coefs1)).^2); energy2=sum((abs(coefs2)).^2);

energy3=energy1+energy2; for i=1:count2 recoefs1(i)=coefs1(i)/energy3; end for i=1:count3 recoefs2(i)=coefs2(i)/energy3; end %低频系数进行语音信号清浊音的判别 zhen=160; count4=fix(count2/zhen); for i=1:count4 n=160*(i-1)+1:160+160*(i-1); s=sound(n); w=hamming(160); sw=s.*w; a=aryule(sw,10); sw=filter(a,1,sw); sw=sw/sum(sw); r=xcorr(sw,'biased'); corr=max(r); %为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0 if corr>=0.8

matlab小波去噪详解

小波去噪 [xd,cxd,lxd]=wden(x,tptr,sorh,scal,n,'wname') 式中: 输入参数x 为需要去噪的信号; 1.tptr :阈值选择标准. 1)无偏似然估计(rigrsure)原则。它是一种基于史坦无偏似然估计(二次方程)原理的自适应阈值选择。对于一个给定的阈值t,得到它的似然估计,再将似然t 最小化,就得到了所选的阈值,它是一种软件阈值估计器。 2)固定阈值(sqtwolog)原则。固定阈值thr2 的计算公式为:thr 2log(n) 2 = (6)式中,n 为信号x(k)的长度。 3)启发式阈值(heursure)原则。它是rigrsure原则和sqtwolog 原则的折中。如果信噪比很小,按rigrsure 原则处理的信号噪声较大,这时采用sqtwolog原则。 4)极值阈值(minimaxi)原则。它采用极大极小原理选择阈值,产生一个最小均方误差的极值,而不是没有误差。 2.sorh :阈值函数选择方式,即软阈值(s) 或硬阈值(h). 3.scal :阈值处理随噪声水平的变化,scal=one 表示不随噪声水平变化,scal=sln 表示根据第一层小波分解的噪声水平估计进行调整,scal=mln 表示根据每一层小波分解的噪声水平估计进行调整. 4.n 和wname 表示利用名为wname 的小波对信号进行n 层分解。输出去噪后的数据xd 及xd 的附加小波分解结构[cxd,lxd]. 常见的几种小波:haar,db,sym,coif,bior haar db db1 db2 db3 db4 db5 db6 db7 db8 db9 db10 sym sym2 sym3 sym4 sym5 sym6 sym7 sym8 coif coif1 coif2 coif3 coif4 coif5 coif6 coif7 coif8 coif9 coif10 bior bior1.1 bior1.3 bior1.5 bior2.2 bior2.4 bior2.6 bior2.8 bior3.5 bior3.7 bior3.9 bior4.4

小波去噪matlab程序

小波去噪matlab程序 ****************************************** clear clc %在噪声环境下语音信号的增强 %语音信号为读入的声音文件 %噪声为正态随机噪声 sound=wavread('c12345.wav'); count1=length(sound); noise=0.05*randn(1,count1); for i=1:count1 signal(i)=sound(i); end for i=1:count1 y(i)=signal(i)+noise(i); end %在小波基'db3'下进行一维离散小波变换 [coefs1,coefs2]=dwt(y,'db3');%[低频高频] count2=length(coefs1); count3=length(coefs2); energy1=sum((abs(coefs1)).^2); energy2=sum((abs(coefs2)).^2); energy3=energy1+energy2; for i=1:count2 recoefs1(i)=coefs1(i)/energy3; end for i=1:count3 recoefs2(i)=coefs2(i)/energy3; end %低频系数进行语音信号清浊音的判别 zhen=160; count4=fix(count2/zhen); for i=1:count4 n=160*(i-1)+1:160+160*(i-1); s=sound(n); w=hamming(160); sw=s.*w; a=aryule(sw,10); sw=filter(a,1,sw);

基于MATLAB的小波消噪仿真实现 (1)

收稿日期:2007-12-10 作者简介:史振江(1979-),男,汉,河北唐山人,学士,讲师,研究方向智能检测与控制技术。 基金项目:河北省教育厅自然科学项目(Z2006442) 基于MATLAB 的小波消噪仿真实现 史振江1) 安建龙 2) 赵玉菊1) (石家庄铁路职业技术学院1) 河北石家庄 050041 衡水学院2) 河北衡水 053000)  摘要:小波阈值消噪方法是利用小波变换技术对含噪信号进行分解和重构,通过对小波分解后的小波系数限定阈值来消除噪声的方法。分析小波消噪的算法和实现步骤,并基于MATLAB 软件平台编写仿真程序。进行光纤光栅反射信号的小波消噪仿真实验,消噪效果良好。  关键词:小波消噪 阈值 分解 重构 光纤光栅  中图分类号:TP272 文献标识码:A 文章编号:1673-1816(2008)01-0063-04 1 引言  微弱信号检测[1]是关于如何提取和测量强噪声背景下微弱信号的方法,有效的去除信号中的噪声是实现微弱信号检测的关键。小波变换[2]是一种信号的时间、频率分析方法,具有多分辨分析的特点,是时间窗和频率窗都可以改变的时频局部化分析方法,已经广泛应用于信号消噪、信号处理、图像处理、语音识别与合成等领域。小波消噪[3~5]的方法可以分为三类:模极大值法、相关法以及阈值方法。其中,小波阈值消噪方法是利用小波变换技术对含噪信号进行分解和重构,通过对小波分解后的各层系数限定阈值来消除噪声的方法,因其实现简单、计算量小,取得了广泛应用。 MATLAB 即矩阵实验室,是一种建立在向量、数组和矩阵基础上,面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络、图像处理于一体,具有极高的编程效率[6]。其中的小波处理工具箱可以方便实现小波消噪算法,对含噪信号进行消噪处理和研究。 本文详细分析了小波消噪算法,利用MATLAB 软件编写了程序,并对光纤光栅反射谱信号进行了小波消噪仿真实验。 2 小波变换与Mallat 算法  小波变换是指,把某一被称为基本小波的函数()t ψ平移位移b 后, 在不同尺度a 下作伸缩变换,得到连续小波序列,()a b t ψ,再与待分析信号()f t 作内积: 1/2(,)()()f R t b W a b a f t dt a ψ??=∫ (1) 在实际应用中,经常将,()a b t ψ作离散化处理,令2j a =,2j b k =g ,Z k j ∈,则得到相应的离散

基于小波去噪matlab程序示例

clear all clc %在噪声环境下语音信号的增强 %语音信号为读入的声音文件 %噪声为正态随机噪声 sound=wavread('c12345.wav'); count1=length(sound); noise=0.05*randn(1,count1); for i=1:count1 signal(i)=sound(i); end for i=1:count1 y(i)=signal(i)+noise(i); end %在小波基'db3'下进行一维离散小波变换 [coefs1,coefs2]=dwt(y,'db3'); %[低频高频] count2=length(coefs1); count3=length(coefs2); energy1=sum((abs(coefs1)).^2); energy2=sum((abs(coefs2)).^2); energy3=energy1+energy2; for i=1:count2 recoefs1(i)=coefs1(i)/energy3; end for i=1:count3 recoefs2(i)=coefs2(i)/energy3; end %低频系数进行语音信号清浊音的判别 zhen=160; count4=fix(count2/zhen); for i=1:count4 n=160*(i-1)+1:160+160*(i-1); s=sound(n); w=hamming(160); sw=s.*w; a=aryule(sw,10); sw=filter(a,1,sw); sw=sw/sum(sw); r=xcorr(sw,'biased'); corr=max(r); %为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0 if corr>=0.8 output1(i)=0; elseif corr<=0.1

小波图像去噪及matlab分析

小波图像去噪及matlab实例 图像去噪 图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性方法进行,常用的是维纳滤波,但是去噪效果不太好(维纳滤波在图像复原中的作用)。 小波去噪 随着小波理论的日益完善,其以自身良好的时频特性在图像去噪领域受到越来越多的关注,开辟了用非线性方法去噪的先河。具体来说,小波能够去噪主要得益于小波变换有如下特点: (1)低熵性。小波系数的稀疏分布,使图像变换后的熵降低。意思是对信号(即图像)进行分解后,有 更多小波基系数趋于0(噪声),而信号主要部分多集中于某些小波基,采用阈值去噪可以更好的保留原 始信号。 (2)多分辨率特性。由于采用了多分辨方法,所以可以非常好地刻画信号的非平稳性,如突变和断点等(例如0-1突变是傅里叶变化无法合理表示的),可以在不同分辨率下根据信号和噪声的分布来消除噪声。(3)去相关性。小波变换可对信号去相关,且噪声在变换后有白化趋势,所以小波域比时域更利于去噪。(4)基函数选择灵活。小波变换可灵活选择基函数,也可根据信号特点和去噪要求选择多带小波和小波 包等(小波包对高频信号再次分解,可提高时频分辨率),对不同场合,选择不同小波基函数。 根据基于小波系数处理方式的不同,常见去噪方法可分为三类: (1)基于小波变换模极大值去噪(信号与噪声模极大值在小波变换下会呈现不同变化趋势)

(2)基于相邻尺度小波系数相关性去噪(噪声在小波变换的各尺度间无明显相关性,信号则相反)(3)基于小波变换阈值去噪 小波阈值去噪是一种简单而实用的方法,应用广泛,因此重点介绍。 阈值函数选择 阈值处理函数分为软阈值和硬阈值,设w是小波系数的大小,wλ是施加阈值后小波系数大小,λ为阈值。(1)硬阈值 当小波系数的绝对值小于给定阈值时,令其为0,而大于阈值时,保持其不变,即: (2)软阈值 当小波系数的绝对值小于给定阈值时,令其为0,大于阈值时,令其都减去阈值,即: 如下图,分别是原始信号,硬阈值处理结果,软阈值处理结果。硬阈值函数在|w| = λ处是不连续的,容易造成去噪后图像在奇异点附近出现明显的伪吉布斯现象。 阈值大小的选取 阈值的选择是离散小波去噪中最关键的一部。在去噪过程中,小波阈值λ起到了决定性作用:如果阈值太小,则施加阈值后的小波系数将包含过多的噪声分量,达不到去噪的效果;反之,阈值太大,则去除了有用的成分,造成失真。小波阈值估计方法很多,这里暂不介绍。 小波去噪实现步骤 (1)二维信号的小波分解。选择一个小波和小波分解的层次N,然后计算信号s到第N层的分解。

matlab图像去噪算法设计(精)

数字图像去噪典型算法及matlab实现 希望得到大家的指点和帮助 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。实验一:均值滤波对高斯噪声的效果 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5 K3=filter2(fspecial('average',7),J)/255; %模板尺寸为7 K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9 subplot(2,3,3);imshow(K1); title('改进后的图像1'); subplot(2,3,4); imshow(K2); title('改进后的图像2');

matlab小波函数

Matlab小波函数 一、Matlab小波去噪基本原理 1、带噪声的信号一般是由含有噪声的高频信号和原始信号所在的低频 信号。利用多层小波,将高频噪声信号从混合信号中分解出来。 2、选择合适的阈值对图像的高频信号进行量化处理 3、重构小波图像:依据图像小波分解的低频信号与处理之后的高频信 号来重构图像的信息。 二、第二代小波变换 1、构造方法特点: (1)继承了第一代小波的多分辨率的特性。 (2)不依赖fourior变换,直接在时域完成小波变换。 (3)变换之后的系数可以是整数。 (4)图像恢复质量与变换是边界采用何种延拓方式无关。 2、优点:算法简单,速度快,适合并行处理。对内存需求量小,便于DSP 芯片实现、可用于本位操作运算。 3、提升原理:构造紧支集双正交小波 (1)步骤:分裂—预测—更新 (2)分解与重构 三、matlab小波函数库 1、matlab小波通用函数: (1)wavemngr函数【小波管理器(用于小波管理,添加、删除、储存、读取小波)】 wavemngr(‘add’,FN,FSN,WT,NUMS,FILE) wavemngr(‘add’,FN,FSN,WT,NUMS,FILE,B) % 添加小波函数,FN为family name,FSN为family short name WT为小波类型:WT=1表示正交小波,=2表示非正交小波,=3表示带尺度函数的小波,=4表示无尺度函数的小波,=5表示 无尺度函数的复小波。 小波族只有一个小波,则NUMS=“,否则NUMS表示小波参数的字符串 FILE表示文件名 B=[lb ub]指定小波有效支撑的上下界 wavemngr(‘del’,N) %删除小波 wavemngr(‘restore’)/ wavemngr(‘restore’,IN2) %保存原始小波 OUT1= wavemngr(‘read’) %返回小波族的名称 OUT1= wavemngr(‘read’,IN2) %返回所有小波的名称 OUT1= wavemngr(‘read_asc’) %读取wavelets.asc文件并返回小波信息 (2)scal2frq函数【尺度转换频率】 F=scal2frq(A,’wname’,DELTA) %返回由尺度A,小波函数“wname”和采样周期DELTA决定的准 频率。 (3)orthfilt函数【正交小波滤波器组】

小波变换图像去噪MATLAB实现

基于小波图像去噪的MATLAB 实现 一、 论文背景 数字图像处理(Digital Image Processing ,DIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠定了基础,使得DIP 技术成为信息技术中最重要的学科分支之一。在现实生活中,DIP 应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活和工作的各个方面。 然而,在图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。根据研究表明,当一图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。 二、 课题原理 1.小波基本原理 在数学上,小波定义为对给定函数局部化的新领域,小波可由一个定义在有限区域的函数()x ψ来构造,()x ψ称为母小波,(mother wavelet )或者叫做基本小波。一组小波基函数,()}{,x b a ψ,可以通过缩放和平移基本小波 来生成:

())(1 ,a b 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 a b x a x f f x W b a b a )(1)(,,,-ψ= ψ=?+∞∞- (3) 与时域函数对应,在频域上则有: ())(,ωωa e a x j b a ψ=ψ- (4) 可以看出,当|a|减小时,时域宽度减小,而频域宽度增大,而且()x b a ,ψ的窗口中心向|ω|增大方向移动。这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。总体说来,小波变换具有更好的时频窗口特性。 2. 图像去噪综述 所谓噪声,就是指妨碍人的视觉或相关传感器对图像信息进行理解或分析的各种因素。通常噪声是不可预测的随机信号。由于噪声影响图像的输入、采集、处理以及输出的各个环节,尤其是图像输入、采集中的噪声必然影响图像处理全过程乃至最终结果,因此抑制噪声已成为图像处理中极其重要的一个步骤。 依据噪声对图像的影响,可将噪声分为加性噪声和乘性噪声两大类。由于乘性噪声可以通过变换当加性噪声来处理,因此我们一般重点研究加性噪声。设

小波变换的原理及matlab仿真程序

基于小波变换的信号降噪研究 2 小波分析基本理论 设Ψ(t)∈L 2( R) ( L 2( R) 表示平方可积的实数空间,即能量有限的信号空间) , 其傅立叶变换为Ψ(t)。当Ψ(t)满足条件[4,7]: 2 () R t dw w C ψψ =<∞? (1) 时,我们称Ψ(t)为一个基本小波或母小波,将母小波函数Ψ(t)经伸缩和平移后,就可以得到一个小波序列: ,()( )a b t b t a ψ -= ,,0a b R a ∈≠ (2) 其中a 为伸缩因子,b 为平移因子。 对于任意的函数f(t)∈L 2( R)的连续小波变换为: ,(,),()( )f a b R t b W a b f f t dt a ψψ-=<>= ? (3) 其逆变换为: 211()(,)()f R R t b f t W a b dadb C a a ψ ψ+-= ?? (4) 小波变换的时频窗是可以由伸缩因子a 和平移因子b 来调节的,平移因子b,可以改变窗口在相平面时间轴上的位置,而伸缩因子b 的大小不仅能影响窗口在频率轴上的位置,还能改变窗口的形状。小波变换对不同的频率在时域上的取样步长是可调节的,在低频时,小波变换的时间分辨率较低,频率分辨率较高:在高频时,小波变换的时间分辨率较高,而频率分辨率较低。使用小波变换处理信号时,首先选取适当的小波函数对信号进行分解,其次对分解出的参数进行阈值处理,选取合适的阈值进行分析,最后利用处理后的参数进行逆小波变换,对信号进行重构。 3 小波降噪的原理和方法 3.1 小波降噪原理 从信号学的角度看 ,小波去噪是一个信号滤波的问题。尽管在很大程度上小波去噪可以看成是低通滤波 ,但由于在去噪后 ,还能成功地保留信号特征 ,所以在这一点上又优于传统的低通滤波器。由此可见 ,小波去噪实际上是特征提取和低通滤波的综合 ,其流程框图如 图所示[6] : 小波分析的重要应用之一就是用于信号消噪 ,一个含噪的一维信号模型可表示为如下

五种常用小波基含MATLAB实现

1.给出五种常用小波基的时域和频域波形图。 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数(t)ψ 具有多样性。小波分析在工程应用中,一个十分重要的问题就是最优小波基的选择问题,因为用不同的小波基分析同一个问题会产生不同的结果。目前我们主要是通过用小波分析方法处理信号的结果与理论结果的误差来判定小波基的好坏,由此决定小波基。常用小波基有Haar 小波、Daubechies(dbN)小波、Mexican Hat(mexh)小波、Morlet 小波、Meyer 小波等5种。 (1)Haar 小波 Haar 函数是小波分析中最早用到的一个具有紧支撑的正交小波函数,也是最简答的一个小波函数,它是支撑域在[0,1]∈t 围的单个矩形波。 Haar 函数的 定义如下:其他 1212 1 001-1(t)≤≤≤≤?????=ψt t Haar 小波在时域上是不连续的,所以作为基本小波性能不是特别好。但它也有自己的优点,如: 计算简单; (t)ψ不但与t)2(j ψz][j ∈正交,而且与自己的整数位移正交。 因此,在2j a =的多分辨率系统中Haar 小波构成一组最简单的正交归一的小波 族。 ()t ψ的傅里叶变换是: 2/24=sin ()j e a ψ-ΩΩ ΩΩ()j

Haar 小波的时域和频域波形图 -1.5 -1 -0.5 0.5 1 1.5 t haar 时域 x 10 5 1 2 3 4 5 6 75 f haar 频域 i=20; wav = 'haar'; [phi,g1,xval] = wavefun(wav,i); subplot(1,2,1); plot(xval,g1,'-r','LineWidth',1.5); xlabel('t') title('haar 时域'); g2=fft(g1); g3=abs(g2); subplot(1,2,2);plot(g3); xlabel('f') title('haar 频域')

matlab小波去噪实现的函数原理

函数wdencmp 功能:小波去噪,得到去噪后的图像 [XC,CXC,LXC,PERF0,PERFL2] = WDENCMP('gbl',X,'wname',N,THR,SORH,KEEPAPP) 其中XC为去噪后的图像信号 在wdencmp中通过xc = waverec2(cxc,lxc,w) ,重构函数得到信号xc Waverec2如何工作的呢? X = W A VEREC2(C,S,'wname') reconstructs the matrix X based on the multi-level wavelet decomposition structure [C,S] 利用经过阈值处理过得系数C和它对应的长度S按照分解时选择的小波来重构;Waverec2涉及到的函数x = appcoef2(c,s,varargin{:},0) Appcoef2函数得到x的方法:x= idwt(a,d,Lo_R,Hi_R,l(imax-p)),综合滤波器重构 Idwt中包含了上采用和卷积函数upsconv1 x = upsconv1(a,Lo_R,lx,dwtEXTM,shift) + upsconv1(d,Hi_R,lx,dwtEXTM,shift); 里面分别调用了采样函数和卷积函数 完成!! 函数wavedec2 功能:返回N层小波分解系数,使用指定滤波器 [C,S] = WA VEDEC2(X,N,'wname') returns the wavelet decomposition of the matrix X at level N,using the wavelet named in string 'wname' ,输出C小波系数,S是对应的系数长度;Wavedec2中通过dwt获得低频系数和小波系数 for i=1:n [x,h,v,d] = dwt2(x,Lo_D,Hi_D); % decomposition c = [h(:)' v(:)' d(:)' c]; % store details s = [size(x);s]; % store size end % Last approximation. c = [x(:)' c]; s = [size(x) ; s]; Dwt2函数如何实现此功能?包含卷积conv2和下采样convdown函数 根据二维mallat变换 输入信号先与滤波器卷积conv2,再下采样得到系数[x,h,v,d] ;

MATLAB中的阈值获取和阈值去噪(超级有用)

1.阈值获取 MATLAB中实现阈值获取的函数有ddencmp、thselect、wbmpen和wwdcbm,下面对它们的用法进行简单的说明。 (1)ddencmp的调用格式有以下三种: (1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X) (2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wp',X) (3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wv',X) 函数ddencmp用于获取信号在消噪或压缩过程中的默认阈值。输入参数X为一维或二维信号;IN1取值为'den'或'cmp','den'表示进行去噪,'cmp'表示进行压缩;IN2取值为'wv'或'wp',wv表示选择小波,wp表示选择小波包。返回值THR是返回的阈值;SORH是软阈值或硬阈值选择参数;KEEPAPP表示保存低频信号;CRIT是熵名(只在选择小波包时使用)。 (2)函数thselect的调用格式如下: THR=thselect(X,TPTR); THR=thselect(X,TPTR)根据字符串TPTR定义的阈值选择规则来选择信号X的自适应阈值。 自适应阈值的选择规则包括以下四种: *TPTR='rigrsure',自适应阈值选择使用Stein的无偏风险估计原理。 *TPTR='heursure',使用启发式阈值选择。 *TPTR='sqtwolog',阈值等于sqrt(2*log(length(X))).

*TPTR='minimaxi',用极大极小原理选择阈值。 阈值选择规则基于模型 y = f(t) + e,e是高斯白噪声N(0,1)。(3)函数wbmpen的调用格式如下: THR=wbmpen(C,L,SIGMA,ALPHA); THR=wbmpen(C,L,SIGMA,ALPHA)返回去噪的全局阈值THR。THR 通过给定的一种小波系数选择规则计算得到,小波系数选择规则使用Birge-Massart的处罚算法。{C,L]是进行去噪的信号或图像的小波分解结构;SIGMA是零均值的高斯白噪声的标准偏差;ALPHA是用于处罚的调整参数,它必须是一个大于1的实数,一般去ALPHA=2。 设t*使crit(t)=-sum(c(k)^2,k<=t) + 2 * SIGMA^2 * t*(ALPHA+log(n/t))的最小值,其中c(k)是按绝对值从大到小排列的小波包系数,n是系数的个数,则THR=|c(t*)|。 wbmpen(C,L,SIGMA,ALPHA,ARG)计算阈值并画出三条曲线。 2 * SIGMA^2 * t*(ALPHA+log(n/t)) sum(c(k)^2, k<=t) crit(t) (4)wdcbm的调用格式有以下两种: (1)[THR,NKEEP]=wdcbm(C,L,ALPHA); (2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M); 函数wdcbm是使用Birge-Massart算法获取一维小波变换的阈值。返回值THR是与尺度无关的阈值,NKEEP是系数的个数。[C,L]是要进行压缩或消噪的信号在j=length(L)-2层的分解结构;LAPHA

小波去噪matlab学习指令

MATLAB中实现阈值获取的函数有ddencmp、thselect、wbmpen和wwdcbm,下面对它们的用法进行简单的说明。 ddencmp的调用格式有以下三种: (1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X) (2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wp',X) (3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wv',X) 函数ddencmp用于获取信号在消噪或压缩过程中的默认阈值。输入参数X为一维或二维信号;IN1取值为'den'或'cmp','den'表示进行去噪,'cmp'表示进行压缩;IN2取值为'wv'或'wp',wv表示选择小波,wp表示选择小波包。返回值THR是返回的阈值;SORH是软阈值或硬阈值选择参数;KEEPAPP表示保存低频信号;CRIT是熵名(只在选择小波包时使用)。 函数thselect的调用格式如下: THR=thselect(X,TPTR); THR=thselect(X,TPTR)根据字符串TPTR定义的阈值选择规则来选择信号X的自适应阈值。 自适应阈值的选择规则包括以下四种: *TPTR='rigrsure',自适应阈值选择使用Stein的无偏风险估计原理。 *TPTR='heursure',使用启发式阈值选择。 *TPTR='sqtwolog',阈值等于sqrt(2*log(length(X))). *TPTR='minimaxi',用极大极小原理选择阈值。

阈值选择规则基于模型y = f(t) + e,e是高斯白噪声N(0,1)。 函数wbmpen的调用格式如下: THR=wbmpen(C,L,SIGMA,ALPHA); THR=wbmpen(C,L,SIGMA,ALPHA)返回去噪的全局阈值THR。THR通过给定的一种小波系数选择规则计算得到,小波系数选择规则使用Birge-Massart的处罚算法。{C,L]是进行去噪的信号或图像的小波分解结构;SIGMA是零均值的高斯白噪声的标准偏差;ALPHA是用于处罚的调整参数,它必须是一个大于1的实数,一般去ALPHA=2。 设t*使crit(t)=-sum(c(k)^2,k<=t) + 2 * SIGMA^2 * t*(ALPHA+log(n/t))的最小值,其中c(k)是按绝对值从大到小排列的小波包系数,n是系数的个数,则THR=|c(t*)|。 wbmpen(C,L,SIGMA,ALPHA,ARG)计算阈值并画出三条曲线。 2 * SIGMA^2 * t*(ALPHA+log(n/t)) sum(c(k)^2, k<=t) crit(t) wdcbm的调用格式有以下两种: (1)[THR,NKEEP]=wdcbm(C,L,ALPHA); (2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M); 函数wdcbm是使用Birge-Massart算法获取一维小波变换的阈值。返回值THR是与尺度无关的阈值,NKEEP是系数的个数。[C,L]是要进行压缩或消噪的信号在j=length(L)-2层的分解结构;LAPHA和M必须是大于1的实数;THR是关于j的向量,THR(i)是第i层的阈值;NKEEP也是关于j的向量,NKEEP(i)是第i层的系数个数。一般

基于小波空域相关法去噪MATLAB源程序

close all; clc; clear; snr=5; init=2055615866; [xref,x]=wnoise(1,10,snr,init); signal=x; points=1024; level=5; wf='bior 1.5'; %sym8,bior 1.5 [Lo_D,Hi_D,Lo_R,Hi_R]=wfilters(wf); [swa,swd] = swt(signal,level,Lo_D,Hi_D);%swd是细节系数,swa是近似系数Swd_n=swd; swd_org=swd; mask_n=zeros(size(Swd_n)); %先把系数处理矩阵设置为全0。 for j=1:(level-1) %在1:(level-1)分解层次上对高频系数处理,最后一层无法求相关系数,所以不作处理。 Noise_d1=swd_org(j,:); Noise_d1=Noise_d1(1:80); Noise_var=var(Noise_d1); %以信号的前80个只含有噪声的点估计噪声在各层的方差。 Pw_var=var(swd_org(j,:)); Corr=swd_org(j,:).*swd_org(j+1,:); %定义相关系数为相邻两层的乘积。 cc=1.7; %_______用以设定停止迭代的噪声能量阈值,需要根据情况调节。________% while Pw_var>cc*Noise_var Pw=sum(abs(swd(j,:)).^2); %计算小波能量 Pcorr=sum(abs(Corr).^2); %计算相关系数能量 Corr_new=Corr.*((Pw/Pcorr)^0.5); %归一化 corr_mod=abs(Corr_new); w_mod=abs(swd(j,:)); swd_n=swd(j,:).*(corr_mod>w_mod);%(corr_mod>w_mod)返回0或者1 swd_n1=(swd_n~=0); mask_n(j,:)=mask_n(j,:)+swd_n1; %将选出的点赋给系数处理矩阵相应位置。 swd_n0=ones(size(swd_n1)); swd_n0=swd_n0-swd_n1; swd(j,:)=swd(j,:).*swd_n0; %将高频系数选出大值后的地方置0。 Pw_var=var(swd(j,:)); Corr_new=Corr_new.*swd_n0; %将相关系数选出大值后的地方置0。 Corr=Corr_new;

Matlab实现小波去噪

小波去噪MATLAB实现 第二章图像小波去噪理论 第4章医学图像小波去噪的MATLAB实现 4.1 小波基的确定 不同的小波基具有不同的时频特征,用不同的小波基分析同一个问题会产生不同的结果,故小波分析在应用中便存在一个小波基或小波函数的选取和优化问题。我们在应用中要把握小波函数的特征,根据应用需要,选择合适的小波基。在小波分析应用中要考查小波函数或小波基的连续性、正交性、对称性、消失矩、线性相位、时频窗口的中心和半径以及时频窗的面积等,这些特征关系到如何选择合适的小波基。本节选取了一些常见的小波基,首先固定小波分解层数和阈值,然后改变小波基,运行结果。通过计算峰值信噪比(PSNR)来判定哪个小波基对医学图像去噪效果好。 下表为不同小波基去噪前带噪图像的峰值信噪比(PSNR)和去噪后图像的峰值信噪比(PSNR),通过峰值信噪比对不同小波基的去噪效果进行评价,从而选出对图像去噪效果较好的小波基。 通过去噪效果图4-1和表4-1以及图像评价原则我们可以很容易选出对图像去噪效果好,而又很好的保持图像细节的小波基。从图4-1中我们可以看出选用sym3小波基去噪后噪声得到了明显的抑制,但是图像的细节被弱化了,读图有所影响。选用sym5小波基去噪后,噪声没有得到很好的抑制,而且图像细节已明显消损,对读图有所影响。选用coif2小波基对图像进行去噪后,噪声得到一定的抑制,图像的细节保持的也很好。选用coif5小波基对图像去噪后,图像细节明显消损,对读图有所影响。选用db2小波基对图像去噪后图像的噪声虽然得到抑制但细节变得模糊,很难辨别。选用db6小波基对图像进行去噪后,图像失真比较明显。综上所述,coif2小波基去噪效果很好,所以本次课程设计中我选择coif2小波基进行医学图像小波去噪方法研究。 相应小波变换语句:[c,s]=wavedec2(A,n,wname); 其中:wname为小波基变量,通过改变它来变换程序中运用的小波基。 n为小波分解层数 A为处理图像 4.2 分解层数的选择

小波变换图像去噪MATLAB实现

基于小波图像去噪的MATLAB实现 一、论文背景数字图像处理(Digital Image Processing,DIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠 定了基础,使得DIP技术成为信息技术中最重要的学科分支之一。在现实生活中,DIP应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活 和工作的各个方面。然而,在图像的采集、获取、 编码和传输的过程中,都存在不同程度被各种噪声所 “污染”的现象。如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。根据研究表明,当一张图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。本论文以小波变换作为分析工具处

理图像噪声,研究数字图像的滤波去噪问题,以提高 图像质量。二、课题原理 1.小波基本原理在 数学上,小波定义为对给定函数局部化的新领域,小 限区域的函数来构 波可由一个定义在有 造,称为母小波,(mother wavelet)或者叫做基 小波。一组小波基函数,,可 本 x x { x} 以通过缩放和平移基本小波来生成:a,b 1x b (1) a,baa其中,a为进行缩放的缩放参数, x () 反映特定基函数的宽度,b为进行平移的j平移参数,指定沿x轴平移的位置。当a=2和b=ia的情况下,一维小波基函数序列定义为: j j x 2 2x 1 (2) 2i,j () x其中,i为平移参数,j为缩放因子,函数fx以小波为基的连续小 () x波 变换定义为函数fx和的内积: a,b 1x b (3)Wx f, f(x) ()dx a,ba,baa 与时域函数对应,在频域上则有: j (4) x ae (a)a,b 可以看出,当|a|减小时,时域宽度减小,而频域宽 度增大,而且的 x a,b窗口中心向|ω|增大方向移动。

小波分析中MATLAB阈值获取函数及其应用附程序代码

1、小波分析中MATLAB阈值获取函数 MATLAB中实现阈值获取的函数有ddencmp、thselect、wbmpen和wwdcbm,下面对它们的用法进行简单的说明。 一、ddencmp的调用格式有以下三种: (1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X) (2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wp',X) (3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wv',X) 函数ddencmp用于获取信号在消噪或压缩过程中的默认阈值。输入参数X 为一维或二维信号;IN1取值为'den'或'cmp','den'表示进行去噪,'cmp'表示进行压缩;IN2取值为'wv'或'wp',wv表示选择小波,wp表示选择小波包。返回值THR是返回的阈值;SORH是软阈值或硬阈值选择参数;KEEPAPP表示保存低频信号;CRIT是熵名(只在选择小波包时使用)。 例题1: clear all clc load noisbump; x=noisbump; [c,l]=wavedec(x,5,'sym6'); %对小波进行5层分解 [thr,sorh,keepapp]=ddencmp('den','wv',x) xd=wdencmp('gbl',c,l,'sym6',5,thr,sorh,keepapp);%显示降噪信号 subplot(211),plot(x),title('x','fontsize',10); subplot(212),plot(xd),title('xd','fontsize',10); x xd 020040060080010001200

相关文档
相关文档 最新文档