主要内容

用小波信号去噪器去噪信号

此示例显示如何使用小波信号去噪器应用程序对实值1-D信号进行去噪。您可以使用应用程序创建并比较多个版本的去噪信号,并将所需的去噪信号导出到您的MATLAB®工作区。要在您的工作区中再现去噪信号,或将相同的去噪参数应用于其他数据,您可以生成并编辑MATLAB脚本。此示例le举例说明了一种可能的工作流程。

将数据导入应用程序

将数据加载到MATLAB工作区.垫子文件包含信号的干净版本和嘈杂版本。请绘制信号的两个版本。

负载教学数据库情节(fNoisy,'B-') 抓住情节(FCLean,“r-”,“线宽”,2)传奇(“噪音信号”,'清洁信号') 抓住网格

图中包含一个Axis对象。Axis对象包含2个line类型的对象。这些对象表示嘈杂信号、清洁信号。

打开小波信号Denoiser应用程序。从Matlab Toolstrip,打开应用程序标签和下面信号处理和通信点击小波信号去噪器。您也可以通过键入来启动应用程序WaveletSignaldenoiser.在MATLAB命令提示符下。

通过单击将来自Workspace的嘈杂信号加载到应用程序中进口在toolstrip中。从可加载到应用程序的工作区变量列表中,选择Fnosiy点击进口.

该应用程序导入嘈杂信号并立即使用默认参数立即弃用。

检查导入的数据

检查Fnosiy绘图。应用程序绘图原始信号,Fnosiy,去噪信号,fnoisy1,以及信号的粗略尺度近似值,近似值.

1.去噪信号窗格列出了所有版本的去噪信号。该列表目前仅包含使用默认名称创建的应用程序的信号,fnoisy1.

  • 您可以通过右键单击更改默认名称,选择改名从弹出菜单中,在对话框中输入新名称,然后按Enter键。

  • 您可以通过右键单击去噪信号的名称并选择删除从弹出菜单中。您也可以通过单击删除选定的去噪信号删除在工具串中。

二,当前小波参数窗格列出应用于创建的去噪参数fnoisy1.

3.缩放和平移感兴趣的区域。首先,将光标放在绘图上以显示浮动调色板。然后从选项板中选择所需的操作。

  • 选择放大或缩小时,鼠标滚轮控制缩放。

4.切换屏幕中可见的信号去噪信号绘图人:

  • 点击信号▼ 在toolstrip中,使用下拉菜单切换原始和去噪信号图的可见性。

  • 单击绘图图例中的各个信号。

5.检查系数情节

红色的系数用于重建去噪信号。这个当前小波参数窗格表示使用了9级小波分解对信号进行去噪。

缩放和平移一个感兴趣的区域。首先,将光标放在绘图上以显示浮动调色板。然后从选项板中选择所需的操作。

  • 选择放大或缩小时,鼠标滚轮控制缩放,而不是滚动条。

  • 当您放大,缩小或平移D1系数级别,缩放应用于所有级别。

修改去噪参数

点击子波tab.使用此工具条调整和应用选定去噪信号的去噪参数。

列出的值是用于创建去噪信号的参数,fnoisy1. 要在toolstrip中从左到右修改这些设置的值,请执行以下操作:

1.在子波下拉菜单,选择Daubechies小波族,分贝. 由于这一行动:

  • 这个下拉字段更改为1.. 将值更改为2..

  • 在状态栏中,文本出现在去噪信号绘图,说明有挂起的小波参数变化。只要对信号有任何待处理的更改,就会出现此文本。通过使用使用更改时,状态栏中的文本消失了去噪按钮,或远离信号导航到另一个信号。

2.从方法下拉菜单,选择通用阈值.

3.要定义10级小波分解,请更改水平仪10.

4.改变方法通用阈值这个统治设置已从自动更改中值的软的. 将设置更改为硬的.

5.点击水平相关.

6.通过单击为这些设置应用新值去噪.

这个当前小波参数窗格更新使用用于代位信号的新参数,并且应用程序重新发出去噪,fnoisy1.

:所有参数都是上下文相关的。一个参数的可能值可能取决于另一个参数的当前选定值。您不能进行不兼容的选择。例如,当去噪方法为FDR时,只有可能的阈值规则:硬。在本例中,列表中未列出其他值统治下拉菜单。

复制去噪信号并比较近似值

如果您喜欢特定的去噪信号,但想探索更多的去噪参数,可以复制它。然后可以修改副本的参数,而不会丢失原始参数。

1.从去噪信号窗格中,选择fnoisy1.然后在工具条上,从信号去噪器选项卡,单击复制.

  • 复制信号,FNOSIY1副本,在中突出显示去噪信号.

  • 副本的去噪参数列在中当前小波参数.

  • 副本将在图形中绘制为粗线去噪信号打印。打印图例将更新,以包含副本。

2.在网上子波选项卡,更改水平仪2.,然后单击去噪. 应用程序使用两级小波分解对信号进行去噪。此外,该应用程序:

  • 重新计算并绘制副本的近似值。

  • 更新系数打印以显示副本的级别。

因为FNOSIY1副本高亮显示时,将绘制其近似值。应用程序始终绘制当前选定去噪信号的近似值。您可以如下所示演示此行为。在绘图图例中,单击fnoisy1FNOSIY1副本。两个去噪信号的名称都会褪色,并且不再绘制这两个信号。只有原始信号和近似图可见。

图中的虚线表示近似值。因为FNOSIY1副本在中突出显示去噪信号列表中,绘制的近似值是两级小波分解的结果。近似值比较嘈杂。现在选择fnoisy110级小波分解的近似值是不同的。

恢复原始参数

通过添加新的去噪信号,始终可以返回使用原始默认参数。从工具条,在信号去噪器选项卡,单击添加.

  • 添加的去噪信号,fnoisy3.,将在中突出显示去噪信号列表。默认的去噪参数列于当前小波参数.

  • 新的去噪信号绘制为粗线。同时计算并绘制近似值。绘图图例将更新,以包括fnoisy3..

输出结果

如果要将相同的去噪参数应用于其他数据,可以使用该应用程序生成一个脚本,用于复制选定的去噪信号。然后,您可以出于自己的目的修改并保存该脚本。要进行进一步分析,您可以将去噪信号导出到工作区。

出口脚本

点击fnoisy3.在里面去噪信号. 上信号去噪器工具条的选项卡,从出口▼ 菜单,选择生成MATLAB脚本。将在MATLAB编辑器中打开一个无标题脚本,其中包含以下可执行代码:

fNoisy3=wdenoise(fNoisy,9,...“小波”,“sym4”,...“去噪法”,“贝耶斯”,...“阈值规则”,“中位数”,...“噪音估计”,“水平独立”);

这个wdenoise输入参数由用于创建的值填充fnoisy3.。保存脚本,然后运行。这将创建变量fnoisy3.在您的工作区中。

加载文件弗达塔茨。该文件包含100个时间序列的噪声数据。每个时间序列有4096个数据点。数据包含在一个类型中时间表变量调用弗达塔茨.

负载弗达塔茨

将去噪参数应用于弗达塔茨,通过替换来编辑脚本Fnosiy具有弗达塔茨fnoisy3.具有FDATTSCLEAN。然后运行脚本。

fdataTSclean=wdenoise(fdataTS,9,...“小波”,“sym4”,...“去噪法”,“贝耶斯”,...“阈值规则”,“中位数”,...“噪音估计”,“水平独立”);

将第15个嘈杂的时间序列与其去噪版本进行比较。

子图(2,1,1)绘图(FDATATS.TIME,FDATATS.FTS15)标题('原始时间序列')网格子地块(2,1,2)地块(FDATTSCLEAN.Time,FDATTSCLEAN.fTS15)标题(“去噪时间序列”)网格

图中包含2个轴对象。标题为原始时间序列的轴对象1包含line类型的对象。标题为去噪时间序列的轴对象2包含line类型的对象。

输出去噪信号

点击fnoisy3.在里面去噪信号.然后在工具条上,从信号去噪器选项卡上,单击上的绿色复选标记出口▼. 自从fnoisy3.您的工作区中已经存在,您可以强制导出并覆盖工作区变量。或者,您可以取消导出,重命名应用程序中的去噪信号或工作区变量,然后再次导出。状态栏中显示的文本将确认信号已导出。选择其他去噪信号或导入触发新信号将清除状态栏中的文本。

因为您的工作区中有干净的信号,所以计算去噪信号的符号噪声比。

snrWavelet=-20*log10(标准(abs(fClean-Fnosiy3))/norm(fClean))
snrWavelet=35.9623

如果你有信号处理工具箱™, 使用移动平均滤波器和Savitzky-Golay滤波器对信号进行去噪,并计算每个去噪信号的信噪比。

fmv=平滑数据(fNoisy,“我的意思是”,25);Snrmovingaverage = -20 * log10(常见(abs(fclean-fmv))/ norm(fclean))
snrmovingaverage = 26.0040.
fsg = smoothdata(fnoisy,“斯戈莱”,25); snrSavitskyGolay=-20*log10(标准(abs(fClean fsg))/norm(fClean))
snrSavitskyGolay=28.8932

使用sym4小波。

另见

功能

应用程序

相关话题