基于Matlab的信号平稳性检验系统设计
0引言
信号的平稳性检验在随机信号处理中起着十分基础的作用。由于平稳信号和非平稳信号的性质差别显著,因此在处理信号之前先行判断它的平稳性就显得尤为重要。虽然信号平稳性的定义十分明确,但是实际判断过程却是复杂的,例如观察尺度对信号平稳性判断就有很大的影响。
这一领域的研究已经取得了一定的成果。一些人提出了受限和带参数的非平稳性判定方法,而另一些人则将他们的平稳性判定建立在对原始数据的一些假设上。而对于更一般信号的平稳性检验的研究还没有取得太多成果。文献[2,3]中又提到了这一问题,并且提出了一种新的检验平稳性框架。这一框架混合了时频透视法和有名的替代数据法。它的基本思想是引入“可控噪声”,即替代数据。并且由于替代数据的一些特性,它可以作为平稳性的评判标准。本文参考了文献[6]中的平稳性检验方法,设计了一个信号平稳性检验系统,并在Matlab的GUI开发环境下实现了图形用户界面的设计。实践表明,本系统不但提供了友好的用户界面,并且可以方便地完成信号的平稳性检验。
1平稳性检验原理
1.1平稳性定义及其检验的重要性
假设有一个高斯过程{xl(t))(- ∞l(t)是样本函数。令E为求取平均的符号,则:
为任意确定t时刻的全体平均。同时:
被称为自相关函数(ACF)。
对于一个弱平稳过程,它的μx(t)和r(t1,t2)都是时不变的或者说与时间无关的。因此有:
式中:τ=t1-t2被称为时延。因此,对于平稳高斯过程{xl(t)},它的自相关函数或者它的功率谱密度函数(PSD)为:
足以确定它的性质。
另一方面,如果{xl(t))是非平稳的,它的μx(t)和r(t1,t2)就是时变的或者说和时间相关的。这样它的PSD就应该放在时频域分析。
由此可见,平稳性检验是任何信号处理前必不可少的一步,它决定了后续处理可以使用何种方法。
1.2替代数据
替代数据的概念最初是由Theiler和其合作作者提出的,这种技术是用来产生一种所谓的“替代数据”,这种替代数据是平稳的,同时保持了原数据的一些相关的统计特性。
Theiler在文献[4]中提出了一种具体的产生替代数据的方法。由这种方法产生的替代数据是平稳的,同时保持了原数据的二阶统计特性。具体地说,替代数据保持了原数据功率谱的幅度值不变。
根据Wiener-Khintchin理论,信号的功率谱等于其傅里叶变换的幅值平方。因此保持信号的功率谱幅度值不变,就是保持其傅里叶变换的幅度值不变。因此,假设原数据为x(t),它的傅里叶变换为
产生。其中,φf是在[-π,π]上均匀分布的随机相位。这样就保证了s(t)和x(t)有相同的傅里叶变换幅值。在下面的例子中也可以看到,这样产生的s(t)也是平稳的。
1.3时频分布
时频分布主要用于分析非平稳随机信号的功率谱。由于非平稳随机信号的功率谱是时变的,因此在原来功率谱的基础上再引入时间轴,成为时频分布(TFD)。TFD可以显示出信号的功率谱随时间的变化情况。
具体来说,根据文献[9]中的定义,信号x(t)的时频分布Sx,K(t,f)可以表示为:
1.4平稳性检验
平稳性可以体现在频谱随时间的波动上。具体来说,对于平稳信号,其频谱不随时间变化;而对于非平稳信号,其频谱会随时间改变。因此,可以通过比较不同时间点上频谱的相似程度来判断信号的平稳性。
按照文献[4]中的检验方法,定义不同时间点上的频谱与频谱平均值的距离cn(x)为:
2用户界面生成
2.1Matlab中用户界面的生成
Matlab为用户设计图形界面提供了一个高效、方便的集成环境。在Matlab中,基本的图形对象主要包括坐标轴、控件、下拉菜单和内容菜单。用户可以通过这些对象设计出界面友好,功能强大,操作简单的图形用户界面。图形用户界面的生成主要分为以下几个步骤:
(1)规划所设计的图形用户界面,主要包括:确定需要哪些窗口,每个窗口怎样布局,窗口中的各个对象各有什么功能,对象之间如何配合工作,以及相应的异常处理;
(2)在Matlab提示行下输入GUIDE,载人用户界面开发环境;
(3)利用Layout Editor,完成用户面板以及界面的制作,并对相应的按钮及控件属性进行适当的设置;
(4)在Programme Editot中编辑各个对象的回调函数,实现各个对象韵具体功能;
(5)利用Mfile编译器生成客户端,完成随机数据仿真系统的设计。
2.2用户界面介绍
本文所实现的用户界面主要包括两个窗口,分别是主窗口和数据生成窗口。由于Matlab对保存绘图区域有限制,因此设计时没有在窗口中设置固定的绘图区域。窗口只相当于一个命令菜单,所有的绘图将会以独立窗口的形式根据用户需求动态产生。这样便于用户对比和保存图片。下面对主要窗口分别加以介绍。
2.2.1主窗口介绍
主窗口如图1所示。主窗口主要用于绘制原数据和替代数据的各种波形以及显示平稳性检验结果。
其中,“Create/Open Original Data”按钮用来打开数据生成窗口。
“View/Change Parameters”按钮用来查看或改变当前仿真参数,它在原始数据存在的情况下才有效。主要的仿真参数有:
“Time Scale of TFD”和“Frequency Scale of TFD”用于确定绘制TFD图片时的时间/频率轴采样周期,由于计算和显示时频分布图比较耗费时间,将采样周期设大,可以提高速度,但是相应的时频分布图的分辨率会下降。
“Max Level of Hermite Function”用于确定求TFD时所使用Hermite函数的最高阶数。最高阶数越高,则分辨率越高,但是相应的计算时间会加长。
“The Number of Surrogates”用于确定平稳性检验时所用的参考替代数据个数。个数越多,则检验结果越精确,但是会极大地延长计算时间。
“Create Surrogate”按钮用于产生替代数据,其在原始数据存在的情况下才有效。由于替代数据具有随机性,因此用户可以多次产生不同的替代数据,观察它们的性质。
右上方的下拉菜单用于选择需要绘图或者保存数据的对象,主要包括原始数据的时域、频域和时频域图,替代数据的时域、频域和时频域图,以及替代数据的平稳度分布。它在原始数据存在的情况下才有效。
“Show Selected Plot”按钮用于在新窗口中绘制下拉菜单所选图线,它在原始数据存在的情况下才有效。
“Save Selected Data”按钮用于保存下拉菜单所选图线对应的数据,它在原始数据存在的情况下才有效。
2.2.2数据生成窗口
数据生成窗口如图2所示。数据生成窗口主要用来产生实验用数据或者打开已经存在的实验数据。
“Creat Original Data”按钮用来产生测试用数据。按下此按钮后会提示输入产生数据用的参数。由于数据是通过公式:
产生的调频信号,因此需要确定参数P1和P2,另外还要确定t的区间和采样周期。数据成功产生后会在新建窗口中显示该数据时域波形。如果当前存在数据波形,将会覆盖它。
“Open Original Data”按钮用来打开已经存在的数据文件。选择好文件后会提示输人参数。主要包括读人数据的时间起点、时间采样周期和数据长度。数据成功读入后会在新建窗口中显示该数据时域波形。如果当前存在数据波形,将会覆盖它。
“Confirm”按钮用于确认新建窗口显示的数据就是用户想要的数据,并返回主窗口。它在创建或打开的数据存在的情况下才有效。
3数据仿真和分析
将实验数据取为调频信号x(t)=sin(sin(t/8)πt)。t起始为0,采样周期为0.1 s,数据长度为400个点,其时域波形和频域波形如图3所示。
由式(6)产生的替代数据s(t)的时域波形和频域波形如图4所示。
由图3和图4不难看出,替代数据与原数据的傅里叶变换幅值相同,但替代数据傅里叶变换的相位是随机的。
图5显示了由式(7)计算得到的原数据和替代数据的时频分布图。由图5中可见,原数据的时频分布图有明显的结构性。它表明是非平稳的,而替代数据的时频分布图的结构性较原数据有明显减弱,表明替代数据的平稳性增加。
由式(11)计算得到的0的概率密度函数f(0)如图6所示,其中一共计算了1 000次替代数据。
由图6可见,替代数据的平稳度主要分布在0.02附近。数据的平稳度落在0~0.04之间可以认为是平稳的,而在此之外可以认为是非平稳的。
由式(11)计算得到的1=0.046。位于上述区间之外,因此判为非平稳。这一结果也与图5所示的结果相吻合。
4结语
利用替代数据法和时频透视法,并采用Matlab的GUI开发环境,设计了一个信号平稳性检验系统。该系统的用户界面友好。利用该系统可以观察信号及其替代数据的频域和时频域波形,检验信号的平稳性。
系统 设计 检验 平稳 Matlab 信号 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)