0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

电子设计 来源:郭婷 作者:电子设计 2019-01-09 10:14 次阅读

引 言

信号的平稳性检验在随机信号处理中起着十分基础的作用。由于平稳信号和非平稳信号的性质差别显着,因此在处理信号之前先行判断它的平稳性就显得尤为重要。虽然信号平稳性的定义十分明确,但是实际判断过程却是复杂的,例如观察尺度对信号平稳性判断就有很大的影响。

这一领域的研究已经取得了一定的成果。一些人提出了受限和带参数的非平稳性判定方法,而另一些人则将他们的平稳性判定建立在对原始数据的一些假设上。而对于更一般信号的平稳性检验的研究还没有取得太多成果。提到了这一问题,并且提出了一种新的检验平稳性框架。这一框架混合了时频透视法和有名的替代数据法。它的基本思想是引入“可控噪声”,即替代数据。并且由于替代数据的一些特性,它可以作为平稳性的*判标准。设计了一个信号平稳性检验系统,并在Matlab的GUI开发环境下实现了图形用户界面的设计。实践表明,本系统不但提供了友好的用户界面,并且可以方便地完成信号的平稳性检验。

1平稳性检验原理

1.1 平稳性定义及其检验的重要性

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

另一方面,如果{xl(t))是非平稳的,它的μx(t)和r(t1,t2)就是时变的或者说和时间相关的。这样它的PSD就应该放在时频域分析。

由此可见,平稳性检验是任何信号处理前必不可少的一步,它决定了后续处理可以使用何种方法。

1.2 替代数据

替代数据的概念最初是由Theiler和其合作作者提出的,这种技术是用来产生一种所谓的“替代数据”,这种替代数据是平稳的,同时保持了原数据的一些相关的统计特性。

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

Theiler提出了一种具体的产生替代数据的方法。由这种方法产生的替代数据是平稳的,同时保持了原数据的二阶统计特性。具体地说,替代数据保持了原数据功率谱的幅度值不变。

根据Wiener-Khintchin理论,信号的功率谱等于其傅里叶变换的幅值平方。因此保持信号的功率谱幅度值不变,就是保持其傅里叶变换的幅度值不变。因此,假设原数据为x(t),它的傅里叶变换为

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

产生。其中,φf是在[-π,π]上均匀分布的随机相位。这样就保证了s(t)和x(t)有相同的傅里叶变换幅值。在下面的例子中也可以看到,这样产生的s(t)也是平稳的。

1.3时频分布

时频分布主要用于分析非平稳随机信号的功率谱。由于非平稳随机信号的功率谱是时变的,因此在原来功率谱的基础上再引入时间轴,成为时频分布(TFD)。TFD可以显示出信号的功率谱随时间的变化情况。

具体来说,根据定义,信号x(t)的时频分布Sx,K(t,f)可以表示为:

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

1.4 平稳性检验

平稳性可以体现在频谱随时间的波动上。具体来说,对于平稳信号,其频谱不随时间变化;而对于非平稳信号,其频谱会随时间改变。因此,可以通过比较不同时间点上频谱的相似程度来判断信号的平稳性。

按照文献[4]中的检验方法,定义不同时间点上的频谱与频谱平均值的距离cn(x)为:

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

2用户界面生成

2.1 Matlab中用户界面的生成

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所示。数据生成窗口主要用来产生实验用数据或者打开已经存在的实验数据。

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

“Creat Original Data”按钮用来产生测试用数据。按下此按钮后会提示输入产生数据用的参数。由于数据是通过公式:

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

产生的调频信号,因此需要确定参数P1和P2,另外还要确定t的区间和采样周期。数据成功产生后会在新建窗口中显示该数据时域波形。如果当前存在数据波形,将会覆盖它。

“Open Original Data”按钮用来打开已经存在的数据文件。选择好文件后会提示输人参数。主要包括读人数据的时间起点、时间采样周期和数据长度。数据成功读入后会在新建窗口中显示该数据时域波形。如果当前存在数据波形,将会覆盖它。

“Confirm”按钮用于确认新建窗口显示的数据就是用户想要的数据,并返回主窗口。它在创建或打开的数据存在的情况下才有效。

3数据仿真和分析

将实验数据取为调频信号x(t)=sin(sin(t/8)πt)。t起始为0,采样周期为0.1 s,数据长度为400个点,其时域波形和频域波形如图3所示。

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

由式(6)产生的替代数据s(t)的时域波形和频域波形如图4所示。

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

由图3和图4不难看出,替代数据与原数据的傅里叶变换幅值相同,但替代数据傅里叶变换的相位是随机的。

图5显示了由式(7)计算得到的原数据和替代数据的时频分布图。由图5中可见,原数据的时频分布图有明显的结构性。它表明是非平稳的,而替代数据的时频分布图的结构性较原数据有明显减弱,表明替代数据的平稳性增加。

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

由式(11)计算得到的?0的概率密度函数f(?0)如图6所示,其中一共计算了1 000次替代数据。

在Matlab的GUI开发环境中实现信号平稳性检验系统设计

由图6可见,替代数据的平稳度主要分布在0.02附近。数据的平稳度落在0~0.04之间可以认为是平稳的,而在此之外可以认为是非平稳的。

由式(11)计算得到的?1=0.046。位于上述区间之外,因此判为非平稳。这一结果也与图5所示的结果相吻合。

4结 语

利用替代数据法和时频透视法,并采用Matlab的GUI开发环境,设计了一个信号平稳性检验系统。该系统的用户界面友好。利用该系统可以观察信号及其替代数据的频域和时频域波形,检验信号的平稳性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    182

    文章

    2963

    浏览量

    230165
  • 噪声
    +关注

    关注

    13

    文章

    1118

    浏览量

    47369
  • GUI
    GUI
    +关注

    关注

    3

    文章

    648

    浏览量

    39549
收藏 人收藏

    评论

    相关推荐

    matlabGUI设计方法总结

    附件目录:一.10个小问题二.MATLAB GUI编程几个有用的程序段1、启动2、GUI中使用Axes控件3、
    发表于 02-28 14:36

    matlab独立性检验问题

    matlab独立性检验问题,那个函数代码怎么调用,百度文库里的都是一样的,弄不出来,能给个有用的,详细的例子吗,题目加代码
    发表于 12-18 16:25

    基于Matlab GUI怎么实现串口数据发送和接收?

    的数据采集以及界面设计开发功能。Matlab GUI(Graphic User Interface)就是内置于Matlab的进行图形界面开发
    发表于 10-24 07:20

    怎么设计一个信号平稳检验系统

    本文参考了平稳检验方法,设计了一个信号平稳检验
    发表于 04-30 06:08

    基于MATLABGUI设计伺服驱动系统仿真软件

    0引言计算机仿真技术是设计、研究和开发现代机械电子设备的新型手段,具有巨大的优越,目前我们机床伺服系统的工程设计已广泛采用了这项技术。
    发表于 06-28 13:41

    MATLAB语言信号系统的应用

    本部分的学习主要让学生了解部分MATLAB应用指令信号系统实验仿真和结果分析的应用语法情况,同时对
    发表于 12-09 18:23 102次下载

    基于Matlab信号平稳检验系统

    基于Matlab信号平稳检验系统 0引言信号
    发表于 03-11 10:26 2215次阅读
    基于<b class='flag-5'>Matlab</b>的<b class='flag-5'>信号</b><b class='flag-5'>平稳</b><b class='flag-5'>性</b><b class='flag-5'>检验</b><b class='flag-5'>系统</b>

    基于Matlab GUI的串口通信编程实现

    Matlab是MathWorks公司开发的一种科学计算软件。Matlab运行稳定、可靠、使用方便,是广大科研人员进行科学研究的得力助手。Matlab不仅具有强大的科学计算功能,还具有满
    发表于 01-20 22:49 6546次阅读
    基于<b class='flag-5'>Matlab</b> <b class='flag-5'>GUI</b>的串口通信编程<b class='flag-5'>实现</b>

    基于MATLAB GUI实现随机信号的分析与处理

    MATLAB GUI为软件开发平台,设计了随机信号的分析与处理系统。该系统以随机
    发表于 06-21 15:18 111次下载
    基于<b class='flag-5'>MATLAB</b> <b class='flag-5'>GUI</b><b class='flag-5'>实现</b>随机<b class='flag-5'>信号</b>的分析与处理

    基于Matlab_GUI的新型界面开发方式

    文章先简单介绍Matlab/ GUI 的基本特点,然后详细说明了一种实践工程得到具体应用的GUI 界面,力图说明新型的界面
    发表于 03-02 16:29 76次下载
    基于<b class='flag-5'>Matlab_GUI</b>的新型界面<b class='flag-5'>开发</b>方式

    基于MATLAB GUI的语音信号特征提取系统设计

    语音信号的典型时频特性和核心处理算法是语音识别、合成和说话人识别等系统的关键问题.结合线性预测分析技术(LPC)和美尔倒谱参数(MFCC)的算法原理,基于MATLAB
    发表于 03-31 15:08 146次下载
    基于<b class='flag-5'>MATLAB</b> <b class='flag-5'>GUI</b>的语音<b class='flag-5'>信号</b>特征提取<b class='flag-5'>系统</b>设计

    基于MATLAB GUI的水汽自动处理系统的设计

    利用GAMIT软件解算得出对流层总延迟ZTD的基础上,通过MATLAB GUI各控件的布局设计及其回调函数的编写,利用MATLAB的图形用户开发
    发表于 04-12 14:44 55次下载
    基于<b class='flag-5'>MATLAB</b> <b class='flag-5'>GUI</b>的水汽自动处理<b class='flag-5'>系统</b>的设计

    基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计

    石油钻井,准确测量井眼姿态是进行井眼轨迹控制的前提。为此,本文充分结合单片机和MATLAB的优点,基于事件驱动的通信机制,提出了一种MATLAB
    的头像 发表于 09-29 08:03 2313次阅读
    基于<b class='flag-5'>MATLAB</b><b class='flag-5'>环境</b>下采用C8051F060<b class='flag-5'>实现</b>钻井井眼姿态监测<b class='flag-5'>系统</b>的设计

    EMD信号处理方法如何在LabVIEW和MATLAB实现

    经验模态分解方法( EMD)平稳信号的分析和处理起着重要的作用, 为了能够方便的使用EMD方法对信号进行处理, 现将LabV IEW
    发表于 10-17 16:56 67次下载
    EMD<b class='flag-5'>信号</b>处理方法如何在LabVIEW和<b class='flag-5'>MATLAB</b><b class='flag-5'>中</b>的<b class='flag-5'>实现</b>

    基于MATLAB GUI的水汽自动处理系统的设计与实现

    电子发烧友网站提供《基于MATLAB GUI的水汽自动处理系统的设计与实现.pdf》资料免费下载
    发表于 10-24 10:47 0次下载
    基于<b class='flag-5'>MATLAB</b> <b class='flag-5'>GUI</b>的水汽自动处理<b class='flag-5'>系统</b>的设计与<b class='flag-5'>实现</b>