基于MATLAB的信号处理工具:信号分析器

信号(或时间序列)是与特定时间相关的一系列数字或测量值,不同的行业和学科将这一与时间相关的数字序列称为信号或时间序列。生物医学或电气工程师会将其称为信号,而统计学家或金融定量分析师会使用时间序列这一术语。例如,每秒测量一次室外温度,生成一个信号或时间序列,描述室外温度与时间的关系------一个一维信号,水平轴是时间,垂直轴是测量数据。

如何对信号进行预处理并提取重要信息,为进一步的数据分析(如机器学习)做准备,从该信号中提取特征是工程师始终持续关注的焦点问题。我们不考虑像视频这样的高维信号的图像处理技术,但是视频可以分解成多个并行的一维信号。

本文会基于MATLAB的工作流程出发,介绍MATLAB中的实用工具信号分析器,帮助工程师更全面的对信号进行如前所述的处理及结果实现。

信号分析器是一款交互式工具,用于在时域、频域和时频域中可视化、预处理、测量、分析和比较信号。启动界面如下图所示,也可在MATLAB命令行输入signalAnalyzer打开。

使用信号分析器检查和比较信号的典型工作流程如下:

1.选择要分析的信号

任何信号处理的工作流程的第一步都是将数据加载到MATLAB中。MATLAB支持各种文件格式,如表格、纯文本文件、图像、音频和视频以及科学的数据格式。

下图展示了MATLAB 常用的外部文件及其对应的读取函数。

2.预处理信号

可以使用信号分析器执行信号预处理任务和编辑操作。如低通、高通、带通或带阻滤波器信号;去趋势并计算信号包络;使用平均值或其他方法对信号进行平滑处理;使用小波对信号进行去噪等。

a.复制和重命名信号:在对信号进行预处理前,我们建议创建副本后在对信号进行处理,保证原始信号的准确性。将MATLAB工作区信号拖拽到信号分析器工作区后,点击生成副本,如下图所示。

也可对信号进行重命名满足下信号名需求,注意不能重命名多通道信号的各个通道。

b.过滤信号:数字滤波器是根据其频率响应来设计来满足先验需要的,目标是修改或操纵其输入信号的频率内容。要过滤一个或多个选定信号,请在分析器选项卡上,单击预处理库中的低通、高通、带通和带阻图标。

c.平滑信号:平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。在分析器选项卡上,单击预处理库中的平滑图标。在平滑栏下有可用的平滑方法:移动均值、移动中位数、高斯、线性回归、二次回归、稳健线性回归、稳健二次回归和Savitzky-Golay 滤波。

d.信号的重采样:在正常情况下,对信号(待处理或分类)进行均匀采样,即在周期性的时间瞬间获得信号采样值(即y轴值)。然而,有时需要处理非均匀采样信号,即信号采样值是在非周期甚至随机的时间瞬间获得的。在数字信号处理中,处理非均匀采样信号的一般方法是将非均匀采样信号转换为均匀采样信号(具有特定采样率)。这是因为大多数数字信号处理算法都假设信号是均匀采样的,因此这些算法无法处理非均匀采样的信号。使用重采样可以确保信号之间的共同时基。

在分析器选项卡上,单击预处理库中的重采样图标。在进行重采样之前,需要输入信号的时间信息,如下图所示。注意不能编辑多通道信号的各个通道的时间信息,必须编辑整个信号的时间信息。

除此之外,信号分析器还可以处理信号中的奇异值和突变值,典型方法是计算数据的平均值或中值来定位,使用MATLAB函数重新填充或者去除奇异值;还可以使用包络谱进行简单信号的故障分析;添加自定义与处理函数实现信号的处理等。

3.探查信号

对信号进行预处理后,可以使用信号分析器对其进行更进一步的信号频谱图相关操作。常用的选项说明如下图所示。

  • 视图:点击视图下的按钮可以可视化信号,除频谱外还可选择时频谱进行查看。

  • 缩放和平移:通过缩放和平移信号可以帮助更好的浏览信号,以查看他们在频率和和时间上的变化。注意不能缩小超出奈奎斯特范围的频率。

  • 测量:通过使用数据游标将一或两个游标添加到所有显示中,可以测量所需数据。时域和频域游标没有链接,可以独立移动。如果信号未在感兴趣的点进行采样,则应用程序会对该值进行线性插值。如果对该值进行插值,则数据光标标签中会出现一个星号。默认情况下,光标会捕捉到最近的数据点。

  • 提取:可以从正在研究的信号中提取感兴趣的区域并将其导出以进行进一步分析,可以选择在时间限制以内或在数据游标以内的区域进行提取。提取出的区域将被添加到左侧信号表的最底部。

4.共享分析结果

复制显示:可以通过将一个或多个显示作为图像复制到剪贴板并将它们粘贴到另一个应用程序来共享您使用Signal Analyzer应用程序生成的图。

导出信号:可以将信号表中的任何信号根据需求导出到 MATLAB工作区或 MAT 文件。

信号的导出方式具体取决于它们的类型:

(1)没有时间信息的信号被导出或保存为数字向量。

(2)存储为时间表的信号被导出或保存为时间表。

(3)具有时间信息但未存储为时间表的信号将导出或另存为数值向量。

生成MATLAB脚本和函数:可以生成MATLAB脚本以提取感兴趣的信号区域,或自动计算通过信号分析器应用程序获得的功率谱、持续谱、频谱图或尺度图估计值 。

相关推荐
工业甲酰苯胺3 小时前
C语言之输入输出
c语言·c++·算法
努力d小白3 小时前
leetcode98.验证二叉搜索树
算法
YueTann3 小时前
Leetcode SQL 刷题与答案-基础篇
sql·算法·leetcode
归寻太乙4 小时前
算法基础Day7(动态规划)
算法·动态规划
hn小菜鸡5 小时前
LeetCode 2320.统计放置房子的方式数
算法·leetcode·职场和发展
高一学习c++会秃头吗5 小时前
leetcode_547 省份数量
算法·leetcode·职场和发展
天赐细莲5 小时前
(仓颉) Cangjie 刷力扣基础语法小结
数据结构·算法·leetcode·职场和发展
dundunmm5 小时前
论文阅读:Statistical Comparisons of Classifiers over Multiple Data Sets
论文阅读·人工智能·算法·机器学习·评估方法
pzx_0015 小时前
【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究
开发语言·论文阅读·python·算法·leetcode·sklearn
小雄abc6 小时前
决定系数R2 浅谈三 : 决定系数R2与相关系数r的关系、决定系数R2是否等于相关系数r的平方
经验分享·笔记·深度学习·算法·机器学习·学习方法·论文笔记