此示例显示如何使用小波信号去噪器应用程序对实值1-D信号进行去噪。您可以使用应用程序创建并比较多个版本的去噪信号,并将所需的去噪信号导出到您的MATLAB®工作区。要在您的工作区中再现去噪信号,或将相同的去噪参数应用于其他数据,您可以生成并编辑MATLAB脚本。此示例le举例说明了一种可能的工作流程。
将数据加载到MATLAB工作区.垫子
文件包含信号的干净版本和嘈杂版本。请绘制信号的两个版本。
负载教学数据库情节(fNoisy,'B-') 抓住在情节(FCLean,“r-”,“线宽”,2)传奇(“噪音信号”,'清洁信号') 抓住关网格在
打开小波信号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副本
高亮显示时,将绘制其近似值。应用程序始终绘制当前选定去噪信号的近似值。您可以如下所示演示此行为。在绘图图例中,单击fnoisy1
和FNOSIY1副本
。两个去噪信号的名称都会褪色,并且不再绘制这两个信号。只有原始信号和近似图可见。
图中的虚线表示近似值。因为FNOSIY1副本
在中突出显示去噪信号列表中,绘制的近似值是两级小波分解的结果。近似值比较嘈杂。现在选择fnoisy1
10级小波分解的近似值是不同的。
通过添加新的去噪信号,始终可以返回使用原始默认参数。从工具条,在信号去噪器选项卡,单击添加.
添加的去噪信号,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)标题(“去噪时间序列”)网格在
点击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
小波。