方法的使用小波信号去噪器应用程序去噪一个实值1-D信号。您可以使用应用程序创建和比较去噪信号的多个版本,并将所需的去噪信号导出到MATLAB®工作区。要在工作空间中重现去噪信号,或将相同的去噪参数应用于其他数据,可以生成和编辑MATLAB脚本。这个例子说明了一个可能的工作流。
将数据加载到MATLAB工作区。的.mat
文件包含一个信号的干净版本和一个噪声版本。画出信号的两个版本。
负载fdata情节(fNoisy“b -”)举行在情节(fClean的r -,“线宽”2)传说(噪声信号的,“干净的信号”)举行从网格在
打开小波信号去噪器应用程序。从MATLAB工具条,打开应用程序TAB和下面信号处理与通信,点击小波信号去噪器.你也可以通过输入启动应用程序waveletSignalDenoiser
在MATLAB命令提示符。
通过单击将工作区中的噪声信号加载到应用程序中进口在工具条中。从可以加载到应用程序中的工作区变量列表中,选择fNoisy
并点击进口.
该应用程序导入噪声信号,并立即使用默认参数去噪。
检查fNoisy情节。该应用程序绘制原始信号,fNoisy
,去噪后的信号,fNoisy1
,以及信号的粗尺度近似,近似
.
1.的去噪信号窗格列出去噪信号的所有版本。该列表目前只包含应用程序使用默认名称创建的信号,fNoisy1
.
您可以通过右键单击它,选择更改默认名称重命名,在对话框中输入新的名称,然后按Enter键。
您可以通过右键单击其名称并选择删除去噪信号删除从弹出式菜单。单击,也可以删除所选去噪信号删除在工具条中。
2.的当前小波参数窗格列出应用于创建的去噪参数fNoisy1
.
3.缩放和平移感兴趣的区域。首先,将光标放在图上,显示一个浮动的调色板。然后从调色板中选择所需的操作。
当您选择放大或缩小时,鼠标滚轮控制缩放。
4.控件中可见的信号去噪信号情节:
点击信号在工具条中,并使用下拉菜单切换原始和去噪信号图的可见性。
点击情节图例中的个别信号。
5.检查系数情节。
红色的系数用于重建去噪后的信号。的当前小波参数Pane表示使用9级小波分解对信号进行去噪。
缩放和平移感兴趣的区域。首先,将光标放在图上,显示一个浮动的调色板。然后从调色板中选择所需的操作。
当您选择放大或缩小时,鼠标滚轮控制缩放,而不是滚动条。
放大、缩小或平移D1
系数级别,缩放适用于所有级别。
单击小波选项卡。使用此工具条调整和应用所选去噪信号的去噪参数。
列出的值是用于创建去噪信号的参数,fNoisy1
.要修改这些设置的值,请从左到右在工具条中工作:
1.在小波下拉菜单,选择Daubechies小波家族,db
.因为这个动作:
的数量下拉字段更改为1
.将值更改为2
.
的状态栏中显示文本去噪信号图,说明有未决的小波参数变化。每当您对信号有任何挂起的更改时,就会出现此文本。控件应用更改时,状态栏中的文本将消失消除干扰按钮,或从信号导航到另一个信号。
2.从方法下拉菜单,选择通用阈值
.
3.如果需要定义10级小波分解,可以修改的值水平来10
.
4.通过改变方法来通用阈值
,规则设置从中位数
来软
.将设置更改为硬
.
5.点击等级相关.
6.通过单击应用这些设置的新值消除干扰.
的当前小波参数窗格更新了用于去噪信号的新参数,应用程序重新绘制去噪信号,fNoisy1
.
请注意:所有参数都是上下文相关的。一个参数的可能值取决于另一个参数的当前选定值。你不能做出不兼容的选择。例如,当去噪方法为FDR时,只有可能的阈值规则:hard。类中没有列出其他值规则下拉菜单。
如果你喜欢一个特定的去噪信号,但想要探索更多的去噪参数,你可以复制它。然后,您可以修改副本的参数,而不会丢失原始参数。
1.从去噪信号窗格中,选择fNoisy1
.然后在工具条上,从信号降噪选项卡上,单击重复的.
重复的信号,fNoisy1Copy
,在去噪信号.
中列出了副本的去噪参数当前小波参数.
控件中的粗线表示副本去噪信号情节。情节图例更新以包括副本。
2.在小波选项卡,更改水平来2
,然后按消除干扰.该应用程序使用两级小波分解去噪信号。此外,该应用程序:
重新计算并绘制副本的近似值。
更新系数绘制以显示副本的级别。
因为fNoisy1Copy
突出显示,它的近似值被绘制出来。该应用程序总是为当前选择的去噪信号绘制近似值。您可以如下所示演示此行为。在情节图例中,单击fNoisy1
而且fNoisy1Copy
.两个去噪信号的名称将逐渐消失,并且两个信号不再被绘制。只有原始信号和近似图可见。
图中的虚线表示近似值。因为fNoisy1Copy
的突出显示。去噪信号表中,所绘制的近似值是两级小波分解的结果。近似是相对嘈杂的。现在选择fNoisy1
在列表中。10级小波分解的近似是不同的。
您总是可以通过添加新的去噪信号返回到使用原始的默认参数。的工具条上信号降噪选项卡上,单击添加.
加上去噪信号,fNoisy3
的去噪信号列表。中列出了默认去噪参数当前小波参数.
新的去噪信号被绘制成一条粗线。近似的计算和绘制以及。剧情传说更新包括fNoisy3
.
如果你想对其他数据应用相同的去噪参数,你可以使用该应用程序生成一个脚本,重现所选去噪信号。然后,您可以根据自己的需要修改和保存脚本。为了进行进一步的分析,您可以将去噪信号导出到您的工作区。
点击fNoisy3
在去噪信号.在信号降噪选项卡中的出口▼菜单,选择生成MATLAB脚本
.在MATLAB编辑器中打开一个未命名的脚本,其中包含以下可执行代码:
fNoisy3 = wdenoise(fnoise,9,...“小波”,“sym4”,...“DenoisingMethod”,“贝叶斯,...“ThresholdRule”,“中值”,...“NoiseEstimate”,“LevelIndependent”);
的wdenoise
输入参数由用于创建的值填充fNoisy3
.保存脚本,然后运行。这将创建变量fNoisy3
在你的工作空间。
加载文件fdataTS
.该文件包含100个时间序列的噪声数据。每个时间序列有4096个数据点。数据包含在类型中时间表
变量fdataTS
.
负载fdataTS
将去噪参数应用于fdataTS
,通过替换来编辑脚本fNoisy
与fdataTS
而且fNoisy3
与fdataTSclean
.然后运行脚本。
fdataTSclean = wdenoise(fdatat,9,...“小波”,“sym4”,...“DenoisingMethod”,“贝叶斯,...“ThresholdRule”,“中值”,...“NoiseEstimate”,“LevelIndependent”);
比较第15个噪声时间序列与其去噪后的版本。
subplot(2,1,1) plot(fdataTS.Time,fdataTS.fTS15) title(“原始时间序列”网格)在subplot(2,1,2) plot(fdatatclean . time, fdatatclean . fts15) title(“去噪时间序列”网格)在
点击fNoisy3
在去噪信号.然后在工具条上,从信号降噪选项卡,单击上的绿色复选标记出口▼。自fNoisy3
在您的工作空间中已经存在,您可以强制导出并覆盖工作空间变量。或者,您可以取消导出,重命名应用程序或工作区变量中的去噪信号,然后再次导出。状态栏中出现确认信号已导出的文本。选择不同的去噪信号或导入新的信号将清除状态栏中的文本。
因为工作空间中有干净的信号,所以计算去噪信号的信噪比。
snrWavelet = -20*log10(norm(abs(fClean- fnoisy3))/norm(fClean))
snrWavelet = 35.9623
如果您有信号处理工具箱™,使用移动平均滤波器和Savitzky-Golay滤波器去噪信号,并计算每个去噪信号的信噪比。
fmv =平滑数据(fnoise,“movmean”25);snrMovingAverage = -20*log10(norm(abs(fClean-fmv))/norm(fClean))
snrMovingAverage = 26.0040
fsg =平滑数据(fnoise,“sgolay”25);snrSavitskyGolay = -20*log10(norm(abs(fClean-fsg))/norm(fClean)))
snrSavitskyGolay = 28.8932
你获得了优越的结果去噪与sym4
小波。