MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。
?。踴d,cxd,lxd]=wden(x,tptr,sorh,scal,n,‘wname’)
式中:
輸入參數(shù)x 為需要去噪的信號(hào);
1.tptr :閾值選擇標(biāo)準(zhǔn)。
1)無(wú)偏似然估計(jì)(rigrsure)原則。它是一種基于史坦無(wú)偏似然估計(jì)(二次方程)原理的自適應(yīng)閾值選擇。對(duì)于一個(gè)給定的閾值t,得到它的似然估計(jì),再將似然t 最小化,就得到了所選的閾值,它是一種軟件閾值估計(jì)器。
2)固定閾值(sqtwolog)原則。固定閾值thr2 的計(jì)算公式為:thr 2log(n) 2 = (6)式中,n 為信號(hào)x(k)的長(zhǎng)度。
3)啟發(fā)式閾值(heursure) 原則。它是rigrsure原則和sqtwolog 原則的折中。如果信噪比很小,按 rigrsure 原則處理的信號(hào)噪聲較大,這時(shí)采用sqtwolog原則。
4)極值閾值(minimaxi)原則。它采用極大極小原理選擇閾值,產(chǎn)生一個(gè)最小均方誤差的極值,而不 是沒(méi)有誤差。
2.sorh :閾值函數(shù)選擇方式,即軟閾值(s) 或硬閾值(h)。
3.scal :閾值處理隨噪聲水平的變化,scal=one 表示不隨噪聲水平變化,scal=sln 表示根據(jù)第一層小波分解的噪聲水平估計(jì)進(jìn)行調(diào)整,scal=mln 表示根據(jù)每一層小波分解的噪聲水平估計(jì)進(jìn)行調(diào)整。
4.n 和wname 表示利用名為wname 的小波對(duì)信號(hào)進(jìn)行n 層分解。輸出去噪后的數(shù)據(jù)xd 及xd 的附加小波分解結(jié)構(gòu)[cxd,lxd]。 常見的幾種小波:haar,db,sym,coif,bior
用MATLAB對(duì)一語(yǔ)音信號(hào)進(jìn)行小波分解,分別用強(qiáng)閾值,軟閾值,默認(rèn)閾植進(jìn)行消噪處理。
復(fù)制內(nèi)容到剪貼板
代碼:
%裝載采集的信號(hào)leleccum.mat
load leleccum;
%=============================
%將信號(hào)中第2000到第3450個(gè)采樣點(diǎn)賦給s
indx=2000:3450;
s=leleccum(indx);
%=============================
%畫出原始信號(hào)
subplot(2,2,1);
plot(s);
title(‘原始信號(hào)’);
%=============================
%用db1小波對(duì)原始信號(hào)進(jìn)行3層分解并提取系數(shù)
[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);
%=============================
%對(duì)信號(hào)進(jìn)行強(qiáng)制性消噪處理并圖示結(jié)果
dd3=zeros(1,length(d3));
dd2=zeros(1,length(d2));
dd1=zeros(1,length(d1));
c1=[a3 dd3 dd2 dd1];
s1=waverec(c1,l,‘db1’);
subplot(2,2,2); plot(s1);grid;
title(‘強(qiáng)制消噪后的信號(hào)’);
%=============================
%用默認(rèn)閾值對(duì)信號(hào)進(jìn)行消噪處理并圖示結(jié)果
%用ddencmp函數(shù)獲得信號(hào)的默認(rèn)閾值
?。踭hr,sorh,keepapp]=ddencmp(‘den’,‘wv’,s); s
2=wdencmp(‘gbl’,c,l,‘db1’,3,thr,sorh,keepapp);
subplot(2,2,3); plot(s2);grid;
title(‘默認(rèn)閾值消噪后的信號(hào)’);
%=============================
%用給定的軟閾值進(jìn)行消噪處理
sosoftd2=wthresh(d2,‘s’,1.823);
softd3=wthresh(d3,‘s’,2.768);
c2=[a3 softd3 softd2 softd1];
s3=waverec(c2,l,‘db1’);
subplot(2,2,4); plot(s3);grid;
title(‘給定軟閾值消噪后的信號(hào)’); f
td1=wthresh(d1,‘s’,1.465);
評(píng)論