使用信号分析器
app 工作流
使用信号分析器检查和比较信号的典型工作流如下:
- 选择 matlab® 工作区中可用的任何信号。该 app 接受具有固有时间信息的数值数组和信号,例如 matlab 数组、 对象和 对象。有关详细信息,请参阅。使用采样率、数值向量、
duration
数组或 matlab 表达式向信号添加时间信息。- 使用修剪、削波、拆分、提取或裁剪操作来编辑信号。低通、高通、带通或带阻滤波器信号。去趋势并计算信号包络。使用移动平均值、回归、savitzky-golay 滤波器或其他方法对信号进行平滑处理。使用小波对信号进行去噪。更改信号的采样率或将非均匀采样的信号插值到均匀网格上。使用您自己的自定义函数预处理信号。生成 matlab 函数来自动执行预处理操作。
- 绘制、测量和比较数据、其频谱、频谱图或尺度图。寻找时域、频域和时频域中的特性和模式。计算持久频谱以分析偶发信号,并使用重排来锐化频谱图估计。从信号中提取感兴趣的区域。测量时域中的信号统计量(如最小值、最大值、均值和均方根值)。
- 将显示内容作为图像从 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。对陡度使用默认值。点击高通按钮以应用滤波器。
转至显示选项卡,通过点击数据游标下方的箭头并选择 two
来放置两个数据游标。将一个游标放在 1.3 秒处,另一个游标放在 3.3 秒处。点击提取信号旁边的箭头,并选择 between time cursors
来提取包含颤音的区域。
清空显示画面并选择原始信号。提取三个呻吟音来比较其频谱:
使平移器缩放窗口的中心位于第一个呻吟音上。频谱有八个清晰定义的峰值,其位置非常接近 170 hz 的倍数。点击提取信号旁边的按钮,并选择
between time limits
。点击平移器以隐藏平移器。按空格键查看完整信号。点击放大 x,划出一个区间长度为 2 秒的时间视图,使其中心位于第二个呻吟音上,将其放大。频谱再次在 170 hz 的倍数位置显示峰值。点击提取信号旁边的按钮,并选择
between time limits
。按空格键查看完整信号。放大第三个呻吟音。同样,在 170 hz 的倍数位置显示峰值。点击提取信号旁边的按钮,并选择
between time limits
。
通过清除 signal 表中原始信号名称旁边的复选框,从显示画面中删除原始信号。显示您刚刚提取的三个感兴趣的区域。其频谱大致重叠在一起。点击显示网格添加第二个显示画面,并绘制包含您提取的颤音的感兴趣区域。颤音和呻吟音的频谱明显不同。
在信号表中选择提取的信号。点击分析器选项卡上的导出,以导出 mat 文件中的四个感兴趣区域。
另请参阅
信号分析器 |