小波分析MATLAB实例
到小波分析
1 背景
传统的信号理论,是建立在Fourier 分析基础上的,而Fourier 变换作为一种全局性的变化,其有一定的局限性。在实际应用中人们开始对Fourier 变换进行各种改进,小波分析由此产生了。小波分析是一种新兴的数学分支,它是泛函数、Fourier 分析、调和分析、数值分析的最完美的结晶;在应用领域,特别是在信号处理、图像处理、语音处理以及众多非线性科学领域,它被认为是继Fourier 分析之后的又一有效的时频分析方法。
小波变换是近年发展起来的一种基于时频域的信号分析工具,它具有良好的时频局部性、选基灵活性和去相关性等优点,可用于光谱信号的噪声滤波和基线校正等。此后,多位物理、数学家的合作共同奠定了小波变换的理论和应用基础。由于小波变换能够更精确地分析信号的局部特征,在很多领域得到了越来越多地应用。小波分析的应用领域十分广泛,它包括:数学领域的许多学科;信号分析、图象处理;量子力学、理论物理;军事电子对抗与武器的智能化;计算机分类与识别;音乐与语言的人工合成;医学成像与诊断;地震勘探数据处理;大型机械的故障诊断等方面;例如,在数学方面,它已用于数值分析、构造快速数值方法、曲线曲面构造、微分方程求解、控制论等。在信号分析方面的滤波、去噪声、压缩、传递等。在图象处理方面的图象压缩、分类、识别与诊断,去污等。以及在医学方面的应用,如核磁共振成像时间、提高CT 、B 超等分辨率。
2 小波变换的产生及去噪的必要性
我们在一维信号分析中,可知傅里叶变换将信号分解成一系列不同频率的正弦或余弦波的叠加,与之类似,小波变换也可将信号分解成一系列小波函数的叠加,这一系列小波函数都由某个母小波函数经过平移和尺度变换得来。以不规则的小波信号来逼近局部信号显然比用光滑的正弦信号逼近程度要好,而用不同尺度小波对同一信号进行逼近又有利于对信号进行逐步细致的分析,这正是小波分析的基本思想。小波变换采用变化的时频窗,窗口面积固定,但形状可变。分析低频信号时,采用拉伸的小波和长的时间窗以获取足够信息,分析高频信号时,采用压缩小波和短时间窗以获取足够精度。常见的小波函数有Meyer 波、Morlet 波、8阶高斯波等。
传统的去噪方法常使用Fourier 变换去噪,将含噪信号变换到频域,然后采用低通滤波器进行滤波,但是基于Fourier 变换的去噪方法存在着保护信号局部性和抑制噪声之间的矛盾。Fourier 变换去噪不能有效的将噪声与有用信号的高频部分和有噪声引起的高频干扰加
以有效的区分开来。这就使得我们在研究信号去噪课题上注意到小波的好处,小波去噪可以很好的保护有用信号的尖峰和突变部分的信号。小波变换具有良好的时频局部化性质,具有以下优点:(1)小波分解可以覆盖整个频域(提供了一个数学上完备的描述) ;(2)小波变换通过选取合适的滤波器,可以极大的减小或去除所提取得不同特征之间的相关性;(3)小波变换具有“变焦”特性,在低频段可用高频率分辨率和低时间分辨率(宽分析窗口) ,在高频段,可用低频率分辨率和高时间分辨率(窄分析窗口) ;(4)小波变换实现上有快速算法(Mallat小波分解算法) 。因此采用小波去噪是具有必要性的。
3 小波变换理论
3.1 小波定义
满足以下条件
⎰
或其等价条件
∞ψ(ω) 20ωω
-∞ψ(t ) dt =0 (2)
的函数ψ(t ) 称为基本小波,或母小波。其中ψ(ω) 为ψ(t ) 的傅里叶变换。式(2)说明母小波函数具有一定的振荡性,即包含某种频率特性。
ψa , b (t ) =a ψ(-1
2t -b ) (3) a
式中a , b 均为常数,且a >0。显然,ψa , b (t ) 是基本函数ψ(t ) 先作移位再作伸缩以后得到的。若a , b 不断地变化,我们可得到一族函数ψa , b (t ) 。a 为伸缩因子,反映函数的尺度,a1波形被拉伸,越大拉伸越多。b 为平移因子,表示沿t 轴的平移位置。ψa , b (t ) 是母小波经移位和伸缩所产生的一族函数,我们称之为小波基函数,或简称小波基。
3.2 小波的特性
连续小波ψa , b (t ) 的时频窗口中心和宽度可以精确定位,且都随尺度a 的变化而伸缩。若将时、频域窗口综合考虑,根据公式推导可得时频窗口的面积与尺度a 无关, 即时间分辨率和频率分辨率是相互制约的。小波尺度a 与频率ω相对应。当a 变小时,对x (t ) 的时域观察范围变窄,但对X (Ω) 在频率观察的范围变宽,且观察的中心频率向高频处移动;反之,当a 变大时,对x (t ) 的时域观察范围变宽,频域的观察范围变窄,且分析的中心频率向低频处移动。小波变换恒Q 性质。带宽/中心频率=∆Ω/a =∆Ω/Ω0=Q ,不论a 为何值Ω0/a
t (a >0) ,ψ() 始终保持了和ψ(t ) 具有性同的品质因数。恒Q 性质是小波变换的一个重要a
性质,也是区别于其它类型的变换且被广泛应用的一个重要原因。
3.3 连续小波变换和反变换定义
函数f (x ) 以小波ψ(x ) 为基的连续小波变换定义为函数f (x ) 和ψa , b (x ) 的内积,
W f (a , b ) ==⎰f (x ) -∞∞1a ψ(x -b ) dx a
在1984年,A.Grossman 和J.Morlet 指出,连续小波的逆变换为,
2f (x ) =C ψ⎰⎰∞∞-∞-∞ψa , b (x ) a -2dadb
其中,C ψ为母小波y (x ) 的允许条件(admissible condition),
C ψ=⎰∞ˆ(ω) ψ
-∞ωd ω
ˆ(ω) 为ψ(x ) 的傅立叶变换,而ψ(x ) 是在平方可积的实数空间L 2(R ) 。 其中,ψ
3.4 离散小波变换
在计算连续小波变换时,实际上也是用离散的数据进行计算的,只是所用的缩放因子和
平移参数比较小而已。不难想象,连续小波变换的计算量是惊人的。为了解决计算量的问题,缩放因子和平移参数都选择2(j>0的整数) 的倍数。使用这样的缩放因子和平移参数的小波变换叫做双尺度小波变换,它是离散小波变换的一种形式。执行离散小波变换的有效方法是使用滤波器。该方法是Mallat 在1988年开发的,叫做Mallat 算法,这种方法实际上是一种信号的分解方法,在数字信号处理中称为双通道子带编码。
3.5 傅里叶分析与小波包分析的比较
从以上分析中可以看出通过傅立叶分析进行滤波得到的结果与小波分析得到的结果有
些差异, 主要是由于信号集中在低频部分, 噪声分布在高频部分, 所以通过低通滤波器进行滤波, 不能将有用信号的高频部分和由噪声引起的高频干扰加以有效地区分。若低通滤波器太窄, 则在滤波后, 信号中仍存在大量的噪声, 若低通滤波器太宽, 则将一部分有用信号当作噪声被滤掉。因此小波分析对非平稳信号的消噪有着傅立叶分析不可比拟的优点。 j
4 小波去噪
4.1 小波去噪的原理
小波变换之所以在去噪方面取得成功,在于它的几个特点:1)低熵性。小波系数的稀
疏分布使得信号变换后的熵降低;2)多分辨率性质。由于采用了多分辨率的方法,可以非
常好的刻画信号的非平稳特性,如边缘、尖峰、断点等,以便于特征提取和保护;3)去相关性。因为小波变换可以对信号进行去相关,且噪声在变换后有白化趋势,所以在小波域比在时域更利于去噪;4)小波基选择的多样性。由于小波变换可以灵活选择变换基,所以可以针对不同应用场合选用不同的小波函数,以获得最佳的处理效果。
4.2 小波去噪的模型建立
4.2.1去噪的Matlab 程序
局部放电试验所采集的信号中往往混有白噪声、周期干扰信号去除。此处采用常用db
系列小波中的db6小波进行9尺度的多分辨分解后,根据白噪声能量特性,估算各尺度的阈值大小,采用硬值进行处理,后进行重构。Matlab 程序如下:
function sd=liu_denoise(mix_signal)
%此函数用于去除白躁信号&周期性干扰信号
%输入参数mix_signal为采集到的信号波形
p=0.6745;
w_dept=9;
w_name='db6';
coef=cell(1,w_dept);
thr=zeros(1,w_dept+1);
[c,l]=wavedec(mix_signal,w_dept,w_name); %对混合信号S 进行db6的9尺度一维分解
coef(1)={appcoef(c,l,w_name,w_dept)};%计算尺度为9的一维分解低频系数
cs=[cs,coef_soft{j}];
thr(1)=median(abs(coef{1}))/p*sqrt(2*log(length(coef{1})));%计算1尺度上的阈值
coef_soft(1)={wthresh(coef{1},'h',thr(1))};%对小波系数进行阈值为thr(1)的硬阈值处理
cs=[coef_soft{1}];
for j=2:w_dept+1
coef(j)={detcoef(c,l,w_dept-j+2)};%计算尺度为9到2的各尺度高频小波系数
coef1(j)={detcoef(c,l,w_dept-j+2)};
thr(j)=median(abs(coef{j}))/p*sqrt(2*log(length(coef{j})));%计算9到2各尺度上的阈值
coef_soft(j)={wthresh(coef{j},'h',thr(j))};%对小波系数进行阈值为thr(j)的硬阈值处理 cs=[cs,coef_soft{j}];
end
sd=waverec(cs,l,w_name); %根据小波系数[cs,l]对信号进行重构
4.2.2 仿真分析
为了验证去噪的有效性,先仿真产生一个局放脉冲然后叠加0.1倍白噪声和周期干扰,利用前面的程序去造,结果如图1,从图上可以看到去噪后信号与原始信号幅值、相位都基本没有变化程序如下:
fc=40e4; %振荡频率
t4=0.8e-3; %脉冲起始时间
tn=1e-3; %总时间
x=0:step:tn;
x4=t4:step:tn;
%s4=(exp((t4-x4)*13/t)-exp((t4-x4)*22/t)).*sin(2*pi*fc*x4);
s4=(exp((t4-x4)/tr)-exp((t4-x4)/td)).*sin(2*pi*fc*x4);
s4=[zeros(1,t4/step),s4];
p=tn/step;
n=0.1*randn(1,p); %产生白噪信号
n=[n,0];
s5=0.1*sin(2*pi*10000000*x); %产生周期性干扰信号
s6=s4+n+s5;
sd=liu_denoise(s6);
subplot(311);plot(x,s4);title('单个局放脉冲仿真波形');
subplot(312);plot(x,mix_signal);title('染噪后波形');
subplot(313);plot(x,sd);title('小波去噪后波形');
小波去噪对比图
5 结束语
从上述的利用小波分析对非线性信号的处理中可以看出,小波变换是一种信号的时频分析方法,有很多优点,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,有效区分信号中的突变部分和噪声。小波变换正广泛应用在各种领域里,通过Matlab 编制程序进行给定信号的噪声抑制和非平稳信号的噪声消除。基于小波变换的消噪方法是一种提取有用信号、展示噪声和突变信号的优越方法,具有广阔的实用价值。