Main Content

使用信号分析器

App 工作流

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

  1. 选择要分析的信号 - 选择 MATLAB® 工作区中可用的任何信号。该 App 接受具有固有时间信息的数值数组和信号,例如 MATLABtimetable 数组、timeseries 对象和 labeledSignalSet 对象。有关详细信息,请参阅Data Types Supported by Signal Analyzer

  2. Preprocess Signals - 低通、高通、带通或带阻滤波器信号。去趋势并计算信号包络。使用移动平均值、回归、Savitzky-Golay 滤波器或其他方法对信号进行平滑处理。更改信号的采样率或将非均匀采样的信号插值到均匀网格上。使用您自己的自定义函数预处理信号。生成 MATLAB 函数来自动执行预处理操作。

  3. 探查信号 - 使用采样率、数值向量、duration 数组或 MATLAB 表达式向信号添加时间信息。绘制、测量和比较数据、其频谱、频谱图或尺度图。寻找时域、频域和时频域中的特性和模式。计算持久频谱以分析偶发信号,并使用重排来锐化频谱图估计。从信号中提取关注的区域。

  4. 共享分析 - 将显示内容作为图像从 App 复制到剪贴板。将信号导出到 MATLAB 工作区或将其保存到 MAT 文件。生成 MATLAB 脚本,以自动计算功率谱、频谱图或持久频谱估计,并自动提取关注区域。保存信号分析器会话,以便以后或在另一台机器上继续分析。

示例:从鲸鱼音频中提取关注区域

加载一个包含太平洋蓝鲸发出的音频数据的文件,采样频率为 4 kHz。此文件来自于康奈尔大学生物声学研究项目保存的动物发声库。数据中的时间标度压缩了 10 倍,以便提高音调并使叫声更可闻。将信号转换为 MATLAB® 时间表。

whaleFile = fullfile(matlabroot,'examples','matlab','data','bluewhale.au');
[w,fs] = audioread(whaleFile);

whale = timetable(seconds((0:length(w)-1)'/fs),w);

% To hear, type soundsc(w,fs)

打开信号分析器并将时间表拖到显示画面上。噪声中突出了四个特征。第一个称为颤音,其他三个称为呻吟音

显示选项卡上,点击频谱打开频谱视图,然后点击平移器以激活平移器。使用平移器创建一个宽度约为 2 秒的缩放窗口。拖动该缩放窗口,使其位于颤音的中心。频谱显示在 900 Hz 附近有明显的峰值。

通过高通滤波分离单个颤音。右键点击 Signal 表中的信号,并选择生成副本来创建鲸鱼音频的副本。通过清除 Signal 表中原始信号名称旁边的复选框,从显示画面中删除原始信号。在分析器选项卡上,点击预处理 ▼ 并选择 高通。将通带频率设置为 925 Hz,阻带衰减为 80 dB。对陡度使用默认值。

清空显示画面并选择原始信号。提取三个呻吟音来比较其频谱:

  1. 使平移器缩放窗口的中心位于第一个呻吟音上。频谱有八个清晰定义的峰值,其位置非常接近 170 Hz 的倍数。点击提取信号 ▼,然后选择 Between Time Limits

  2. 点击平移器以隐藏平移器。按空格键查看完整信号。点击放大 X,划出一个区间长度为 2 秒的时间视图,使其中心位于第二个呻吟音上,将其放大。频谱再次在 170 Hz 的倍数位置显示峰值。点击提取信号 ▼,然后选择 Between Time Limits

  3. 按空格键查看完整信号。点击数据游标 ▼,然后选择 Two。将时域游标置于框住第三个呻吟音的 2 秒区间之内。同样,在 170 Hz 的倍数位置显示峰值。点击提取信号 ▼,然后选择 Between Time Cursors

绘制经过高通滤波的信号,并将两个数据游标放在 1 秒和 3.5 秒位置。提取包含颤音的区域。

通过清除 Signal 表中原始信号名称旁边的复选框,从显示画面中删除原始信号。显示您刚刚提取的三个关注区域。其频谱大致重叠在一起。

在同一显示画面上,绘制包含您提取的颤音的关注区域。颤音和呻吟音的频谱明显不同。

点击分析器选项卡上的导出,导出 MAT 文件中的四个关注区域。

另请参阅

|

相关主题